goudengine 0.0.825 → 0.0.826
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/goud-engine-node.darwin-arm64.node +0 -0
- package/goud-engine-node.darwin-x64.node +0 -0
- package/goud-engine-node.linux-x64-gnu.node +0 -0
- package/goud-engine-node.win32-x64-msvc.node +0 -0
- package/index.d.ts +113 -85
- package/index.js +542 -278
- package/package.json +15 -15
- package/wasm/goud_engine.d.ts +186 -161
- package/wasm/goud_engine.js +1562 -1498
- package/wasm/goud_engine_bg.wasm +0 -0
- package/wasm/goud_engine_bg.wasm.d.ts +6 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "goudengine",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.826",
|
|
4
4
|
"description": "GoudEngine — build 2D and 3D games with TypeScript for Node.js and web",
|
|
5
5
|
"main": "dist/generated/index.g.js",
|
|
6
6
|
"types": "dist/generated/index.g.d.ts",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"scripts": {
|
|
34
|
-
"build:native": "napi build --
|
|
35
|
-
"build:native:debug": "napi build --
|
|
34
|
+
"build:native": "napi build --manifest-path native/Cargo.toml --platform --release --output-dir .",
|
|
35
|
+
"build:native:debug": "napi build --manifest-path native/Cargo.toml --platform --output-dir .",
|
|
36
36
|
"build:ts": "tsc",
|
|
37
37
|
"build:ts:web": "tsc -p tsconfig.web.json",
|
|
38
38
|
"build:wasm": "wasm-pack build ../../goud_engine --target web --out-dir ../sdks/typescript/wasm --features web --no-default-features",
|
|
@@ -47,15 +47,15 @@
|
|
|
47
47
|
"size": "node -e \"const fs=require('fs');try{const s=fs.statSync('wasm/goud_engine_bg.wasm');console.log((s.size/1024).toFixed(1)+'KB')}catch{console.log('No wasm build found')}\""
|
|
48
48
|
},
|
|
49
49
|
"napi": {
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
50
|
+
"binaryName": "goud-engine-node",
|
|
51
|
+
"targets": [
|
|
52
|
+
"x86_64-apple-darwin",
|
|
53
|
+
"aarch64-apple-darwin",
|
|
54
|
+
"x86_64-unknown-linux-gnu",
|
|
55
|
+
"x86_64-pc-windows-msvc",
|
|
56
|
+
"aarch64-unknown-linux-gnu",
|
|
57
|
+
"aarch64-unknown-linux-musl"
|
|
58
|
+
]
|
|
59
59
|
},
|
|
60
60
|
"keywords": [
|
|
61
61
|
"game-engine",
|
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
"url": "https://github.com/aram-devdocs/GoudEngine/issues"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
|
-
"@napi-rs/cli": "^
|
|
83
|
-
"
|
|
84
|
-
"
|
|
82
|
+
"@napi-rs/cli": "^3.5.1",
|
|
83
|
+
"@types/node": "^20.0.0",
|
|
84
|
+
"typescript": "^5.0.0"
|
|
85
85
|
},
|
|
86
86
|
"engines": {
|
|
87
87
|
"node": ">=16.0.0"
|
package/wasm/goud_engine.d.ts
CHANGED
|
@@ -1,182 +1,207 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Chroma subsampling format
|
|
6
|
+
*/
|
|
7
|
+
export enum ChromaSampling {
|
|
8
|
+
/**
|
|
9
|
+
* Both vertically and horizontally subsampled.
|
|
10
|
+
*/
|
|
11
|
+
Cs420 = 0,
|
|
12
|
+
/**
|
|
13
|
+
* Horizontally subsampled.
|
|
14
|
+
*/
|
|
15
|
+
Cs422 = 1,
|
|
16
|
+
/**
|
|
17
|
+
* Not subsampled.
|
|
18
|
+
*/
|
|
19
|
+
Cs444 = 2,
|
|
20
|
+
/**
|
|
21
|
+
* Monochrome.
|
|
22
|
+
*/
|
|
23
|
+
Cs400 = 3,
|
|
24
|
+
}
|
|
25
|
+
|
|
4
26
|
export class WasmGame {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
27
|
+
free(): void;
|
|
28
|
+
[Symbol.dispose](): void;
|
|
29
|
+
add_name(entity_bits: bigint, name: string): void;
|
|
30
|
+
add_scroll_delta(dx: number, dy: number): void;
|
|
31
|
+
add_transform2d(entity_bits: bigint, px: number, py: number, rotation: number, sx: number, sy: number): void;
|
|
32
|
+
begin_frame(delta_time: number): void;
|
|
33
|
+
/**
|
|
34
|
+
* Creates a game instance with wgpu rendering attached to a canvas.
|
|
35
|
+
*/
|
|
36
|
+
static createWithCanvas(canvas: HTMLCanvasElement, width: number, height: number, title: string): Promise<WasmGame>;
|
|
37
|
+
despawn(entity_bits: bigint): boolean;
|
|
38
|
+
destroy_texture(handle: number): void;
|
|
39
|
+
draw_quad(x: number, y: number, w: number, h: number, r: number, g: number, b: number, a: number): void;
|
|
40
|
+
draw_sprite(texture: number, x: number, y: number, w: number, h: number, rotation: number, r: number, g: number, b: number, a: number): void;
|
|
41
|
+
end_frame(): void;
|
|
42
|
+
entity_count(): number;
|
|
43
|
+
get_name(entity_bits: bigint): string | undefined;
|
|
44
|
+
get_transform2d(entity_bits: bigint): WasmTransform2D | undefined;
|
|
45
|
+
has_name(entity_bits: bigint): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether wgpu rendering is active.
|
|
48
|
+
*/
|
|
49
|
+
has_renderer(): boolean;
|
|
50
|
+
has_transform2d(entity_bits: bigint): boolean;
|
|
51
|
+
is_alive(entity_bits: bigint): boolean;
|
|
52
|
+
is_key_just_pressed(key_code: number): boolean;
|
|
53
|
+
is_key_just_released(key_code: number): boolean;
|
|
54
|
+
is_key_pressed(key_code: number): boolean;
|
|
55
|
+
is_mouse_button_just_pressed(button: number): boolean;
|
|
56
|
+
is_mouse_button_pressed(button: number): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Loads a texture from a URL. Returns the texture handle (1-based;
|
|
59
|
+
* 0 is reserved for the white fallback texture used by draw_quad).
|
|
60
|
+
*/
|
|
61
|
+
load_texture(url: string): Promise<number>;
|
|
62
|
+
mouse_x(): number;
|
|
63
|
+
mouse_y(): number;
|
|
64
|
+
/**
|
|
65
|
+
* Creates a new game instance without rendering (ECS-only mode).
|
|
66
|
+
*/
|
|
67
|
+
constructor(width: number, height: number, title: string);
|
|
68
|
+
press_key(key_code: number): void;
|
|
69
|
+
press_mouse_button(button: number): void;
|
|
70
|
+
release_key(key_code: number): void;
|
|
71
|
+
release_mouse_button(button: number): void;
|
|
72
|
+
remove_name(entity_bits: bigint): boolean;
|
|
73
|
+
remove_transform2d(entity_bits: bigint): boolean;
|
|
74
|
+
scroll_dx(): number;
|
|
75
|
+
scroll_dy(): number;
|
|
76
|
+
/**
|
|
77
|
+
* Reconfigures the wgpu surface after a canvas resize.
|
|
78
|
+
*/
|
|
79
|
+
set_canvas_size(width: number, height: number): void;
|
|
80
|
+
/**
|
|
81
|
+
* Sets the background clear color (called before begin_frame or via
|
|
82
|
+
* the TypeScript SDK's beginFrame parameters).
|
|
83
|
+
*/
|
|
84
|
+
set_clear_color(r: number, g: number, b: number, a: number): void;
|
|
85
|
+
set_mouse_position(x: number, y: number): void;
|
|
86
|
+
set_transform2d(entity_bits: bigint, px: number, py: number, rotation: number, sx: number, sy: number): void;
|
|
87
|
+
spawn_batch(count: number): BigUint64Array;
|
|
88
|
+
spawn_empty(): bigint;
|
|
89
|
+
readonly delta_time: number;
|
|
90
|
+
readonly fps: number;
|
|
91
|
+
readonly frame_count: bigint;
|
|
92
|
+
readonly title: string;
|
|
93
|
+
readonly total_time: number;
|
|
94
|
+
readonly window_height: number;
|
|
95
|
+
readonly window_width: number;
|
|
74
96
|
}
|
|
75
97
|
|
|
76
98
|
export class WasmTransform2D {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
99
|
+
private constructor();
|
|
100
|
+
free(): void;
|
|
101
|
+
[Symbol.dispose](): void;
|
|
102
|
+
position_x: number;
|
|
103
|
+
position_y: number;
|
|
104
|
+
rotation: number;
|
|
105
|
+
scale_x: number;
|
|
106
|
+
scale_y: number;
|
|
85
107
|
}
|
|
86
108
|
|
|
87
109
|
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
|
88
110
|
|
|
89
111
|
export interface InitOutput {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
112
|
+
readonly memory: WebAssembly.Memory;
|
|
113
|
+
readonly __wbg_get_wasmtransform2d_position_x: (a: number) => number;
|
|
114
|
+
readonly __wbg_get_wasmtransform2d_position_y: (a: number) => number;
|
|
115
|
+
readonly __wbg_get_wasmtransform2d_rotation: (a: number) => number;
|
|
116
|
+
readonly __wbg_get_wasmtransform2d_scale_x: (a: number) => number;
|
|
117
|
+
readonly __wbg_get_wasmtransform2d_scale_y: (a: number) => number;
|
|
118
|
+
readonly __wbg_set_wasmtransform2d_position_x: (a: number, b: number) => void;
|
|
119
|
+
readonly __wbg_set_wasmtransform2d_position_y: (a: number, b: number) => void;
|
|
120
|
+
readonly __wbg_set_wasmtransform2d_rotation: (a: number, b: number) => void;
|
|
121
|
+
readonly __wbg_set_wasmtransform2d_scale_x: (a: number, b: number) => void;
|
|
122
|
+
readonly __wbg_set_wasmtransform2d_scale_y: (a: number, b: number) => void;
|
|
123
|
+
readonly __wbg_wasmgame_free: (a: number, b: number) => void;
|
|
124
|
+
readonly __wbg_wasmtransform2d_free: (a: number, b: number) => void;
|
|
125
|
+
readonly wasmgame_add_name: (a: number, b: bigint, c: number, d: number) => void;
|
|
126
|
+
readonly wasmgame_add_scroll_delta: (a: number, b: number, c: number) => void;
|
|
127
|
+
readonly wasmgame_add_transform2d: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number) => void;
|
|
128
|
+
readonly wasmgame_begin_frame: (a: number, b: number) => void;
|
|
129
|
+
readonly wasmgame_createWithCanvas: (a: any, b: number, c: number, d: number, e: number) => any;
|
|
130
|
+
readonly wasmgame_delta_time: (a: number) => number;
|
|
131
|
+
readonly wasmgame_despawn: (a: number, b: bigint) => number;
|
|
132
|
+
readonly wasmgame_destroy_texture: (a: number, b: number) => void;
|
|
133
|
+
readonly wasmgame_draw_quad: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
|
|
134
|
+
readonly wasmgame_draw_sprite: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
|
|
135
|
+
readonly wasmgame_end_frame: (a: number) => void;
|
|
136
|
+
readonly wasmgame_entity_count: (a: number) => number;
|
|
137
|
+
readonly wasmgame_fps: (a: number) => number;
|
|
138
|
+
readonly wasmgame_frame_count: (a: number) => bigint;
|
|
139
|
+
readonly wasmgame_get_name: (a: number, b: bigint) => [number, number];
|
|
140
|
+
readonly wasmgame_get_transform2d: (a: number, b: bigint) => number;
|
|
141
|
+
readonly wasmgame_has_name: (a: number, b: bigint) => number;
|
|
142
|
+
readonly wasmgame_has_renderer: (a: number) => number;
|
|
143
|
+
readonly wasmgame_has_transform2d: (a: number, b: bigint) => number;
|
|
144
|
+
readonly wasmgame_is_alive: (a: number, b: bigint) => number;
|
|
145
|
+
readonly wasmgame_is_key_just_pressed: (a: number, b: number) => number;
|
|
146
|
+
readonly wasmgame_is_key_just_released: (a: number, b: number) => number;
|
|
147
|
+
readonly wasmgame_is_key_pressed: (a: number, b: number) => number;
|
|
148
|
+
readonly wasmgame_is_mouse_button_just_pressed: (a: number, b: number) => number;
|
|
149
|
+
readonly wasmgame_is_mouse_button_pressed: (a: number, b: number) => number;
|
|
150
|
+
readonly wasmgame_load_texture: (a: number, b: number, c: number) => any;
|
|
151
|
+
readonly wasmgame_mouse_x: (a: number) => number;
|
|
152
|
+
readonly wasmgame_mouse_y: (a: number) => number;
|
|
153
|
+
readonly wasmgame_new: (a: number, b: number, c: number, d: number) => number;
|
|
154
|
+
readonly wasmgame_press_key: (a: number, b: number) => void;
|
|
155
|
+
readonly wasmgame_press_mouse_button: (a: number, b: number) => void;
|
|
156
|
+
readonly wasmgame_release_key: (a: number, b: number) => void;
|
|
157
|
+
readonly wasmgame_release_mouse_button: (a: number, b: number) => void;
|
|
158
|
+
readonly wasmgame_remove_name: (a: number, b: bigint) => number;
|
|
159
|
+
readonly wasmgame_remove_transform2d: (a: number, b: bigint) => number;
|
|
160
|
+
readonly wasmgame_scroll_dx: (a: number) => number;
|
|
161
|
+
readonly wasmgame_scroll_dy: (a: number) => number;
|
|
162
|
+
readonly wasmgame_set_canvas_size: (a: number, b: number, c: number) => void;
|
|
163
|
+
readonly wasmgame_set_clear_color: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
164
|
+
readonly wasmgame_set_mouse_position: (a: number, b: number, c: number) => void;
|
|
165
|
+
readonly wasmgame_set_transform2d: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number) => void;
|
|
166
|
+
readonly wasmgame_spawn_batch: (a: number, b: number) => [number, number];
|
|
167
|
+
readonly wasmgame_spawn_empty: (a: number) => bigint;
|
|
168
|
+
readonly wasmgame_title: (a: number) => [number, number];
|
|
169
|
+
readonly wasmgame_total_time: (a: number) => number;
|
|
170
|
+
readonly wasmgame_window_height: (a: number) => number;
|
|
171
|
+
readonly wasmgame_window_width: (a: number) => number;
|
|
172
|
+
readonly wasm_bindgen__closure__destroy__h34b32f47e9536ad7: (a: number, b: number) => void;
|
|
173
|
+
readonly wasm_bindgen__closure__destroy__hb7ee5c5d3fd608d4: (a: number, b: number) => void;
|
|
174
|
+
readonly wasm_bindgen__convert__closures_____invoke__h6c9ef6970fdda1f4: (a: number, b: number, c: any) => [number, number];
|
|
175
|
+
readonly wasm_bindgen__convert__closures_____invoke__h40c8324309a93f8a: (a: number, b: number, c: any, d: any) => void;
|
|
176
|
+
readonly wasm_bindgen__convert__closures_____invoke__h8b43903f8a91b24f: (a: number, b: number, c: any) => void;
|
|
177
|
+
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
178
|
+
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
179
|
+
readonly __wbindgen_exn_store: (a: number) => void;
|
|
180
|
+
readonly __externref_table_alloc: () => number;
|
|
181
|
+
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
182
|
+
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
183
|
+
readonly __externref_table_dealloc: (a: number) => void;
|
|
184
|
+
readonly __wbindgen_start: () => void;
|
|
160
185
|
}
|
|
161
186
|
|
|
162
187
|
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
|
163
188
|
|
|
164
189
|
/**
|
|
165
|
-
* Instantiates the given `module`, which can either be bytes or
|
|
166
|
-
* a precompiled `WebAssembly.Module`.
|
|
167
|
-
*
|
|
168
|
-
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
169
|
-
*
|
|
170
|
-
* @returns {InitOutput}
|
|
171
|
-
*/
|
|
190
|
+
* Instantiates the given `module`, which can either be bytes or
|
|
191
|
+
* a precompiled `WebAssembly.Module`.
|
|
192
|
+
*
|
|
193
|
+
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
194
|
+
*
|
|
195
|
+
* @returns {InitOutput}
|
|
196
|
+
*/
|
|
172
197
|
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
|
173
198
|
|
|
174
199
|
/**
|
|
175
|
-
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
176
|
-
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
177
|
-
*
|
|
178
|
-
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
179
|
-
*
|
|
180
|
-
* @returns {Promise<InitOutput>}
|
|
181
|
-
*/
|
|
200
|
+
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
201
|
+
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
202
|
+
*
|
|
203
|
+
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
204
|
+
*
|
|
205
|
+
* @returns {Promise<InitOutput>}
|
|
206
|
+
*/
|
|
182
207
|
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|