vanta-engine 1.0.2 → 1.0.4

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.
Files changed (156) hide show
  1. package/dist/chunk-BDKR3WGZ.mjs +35 -0
  2. package/dist/chunk-BDKR3WGZ.mjs.map +1 -0
  3. package/dist/index.d.cts +755 -0
  4. package/dist/index.d.ts +755 -27
  5. package/dist/index.js +8406 -26
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +8369 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/module-62JUDQR5.mjs +11 -0
  10. package/dist/module-62JUDQR5.mjs.map +1 -0
  11. package/package.json +10 -7
  12. package/dist/engine.d.ts +0 -18
  13. package/dist/engine.d.ts.map +0 -1
  14. package/dist/engine.js +0 -23
  15. package/dist/engine.js.map +0 -1
  16. package/dist/graphics/assets/asset_format/format.d.ts +0 -115
  17. package/dist/graphics/assets/asset_format/format.d.ts.map +0 -1
  18. package/dist/graphics/assets/asset_format/format.js +0 -29
  19. package/dist/graphics/assets/asset_format/format.js.map +0 -1
  20. package/dist/graphics/assets/asset_loaders/obj.d.ts +0 -127
  21. package/dist/graphics/assets/asset_loaders/obj.d.ts.map +0 -1
  22. package/dist/graphics/assets/asset_loaders/obj.js +0 -762
  23. package/dist/graphics/assets/asset_loaders/obj.js.map +0 -1
  24. package/dist/graphics/assets/material.d.ts +0 -33
  25. package/dist/graphics/assets/material.d.ts.map +0 -1
  26. package/dist/graphics/assets/material.js +0 -104
  27. package/dist/graphics/assets/material.js.map +0 -1
  28. package/dist/graphics/assets/mesh.d.ts +0 -17
  29. package/dist/graphics/assets/mesh.d.ts.map +0 -1
  30. package/dist/graphics/assets/mesh.js +0 -47
  31. package/dist/graphics/assets/mesh.js.map +0 -1
  32. package/dist/graphics/assets/model.d.ts +0 -13
  33. package/dist/graphics/assets/model.d.ts.map +0 -1
  34. package/dist/graphics/assets/model.js +0 -18
  35. package/dist/graphics/assets/model.js.map +0 -1
  36. package/dist/graphics/assets/texture.d.ts +0 -93
  37. package/dist/graphics/assets/texture.d.ts.map +0 -1
  38. package/dist/graphics/assets/texture.js +0 -318
  39. package/dist/graphics/assets/texture.js.map +0 -1
  40. package/dist/graphics/assets/uniform_buffer.d.ts +0 -28
  41. package/dist/graphics/assets/uniform_buffer.d.ts.map +0 -1
  42. package/dist/graphics/assets/uniform_buffer.js +0 -132
  43. package/dist/graphics/assets/uniform_buffer.js.map +0 -1
  44. package/dist/graphics/assets/vaos.d.ts +0 -9
  45. package/dist/graphics/assets/vaos.d.ts.map +0 -1
  46. package/dist/graphics/assets/vaos.js +0 -98
  47. package/dist/graphics/assets/vaos.js.map +0 -1
  48. package/dist/graphics/framebuffer.d.ts +0 -77
  49. package/dist/graphics/framebuffer.d.ts.map +0 -1
  50. package/dist/graphics/framebuffer.js +0 -265
  51. package/dist/graphics/framebuffer.js.map +0 -1
  52. package/dist/graphics/graphics_manager.d.ts +0 -70
  53. package/dist/graphics/graphics_manager.d.ts.map +0 -1
  54. package/dist/graphics/graphics_manager.js +0 -503
  55. package/dist/graphics/graphics_manager.js.map +0 -1
  56. package/dist/graphics/shader_program.d.ts +0 -66
  57. package/dist/graphics/shader_program.d.ts.map +0 -1
  58. package/dist/graphics/shader_program.js +0 -92
  59. package/dist/graphics/shader_program.js.map +0 -1
  60. package/dist/graphics/utility.d.ts +0 -14
  61. package/dist/graphics/utility.d.ts.map +0 -1
  62. package/dist/graphics/utility.js +0 -81
  63. package/dist/graphics/utility.js.map +0 -1
  64. package/dist/hook_manager.d.ts +0 -33
  65. package/dist/hook_manager.d.ts.map +0 -1
  66. package/dist/hook_manager.js +0 -102
  67. package/dist/hook_manager.js.map +0 -1
  68. package/dist/index.d.ts.map +0 -1
  69. package/dist/input/input_manager.d.ts +0 -41
  70. package/dist/input/input_manager.d.ts.map +0 -1
  71. package/dist/input/input_manager.js +0 -121
  72. package/dist/input/input_manager.js.map +0 -1
  73. package/dist/node/camera3d.d.ts +0 -10
  74. package/dist/node/camera3d.d.ts.map +0 -1
  75. package/dist/node/camera3d.js +0 -25
  76. package/dist/node/camera3d.js.map +0 -1
  77. package/dist/node/lights/directional_light.d.ts +0 -20
  78. package/dist/node/lights/directional_light.d.ts.map +0 -1
  79. package/dist/node/lights/directional_light.js +0 -111
  80. package/dist/node/lights/directional_light.js.map +0 -1
  81. package/dist/node/lights/light.d.ts +0 -15
  82. package/dist/node/lights/light.d.ts.map +0 -1
  83. package/dist/node/lights/light.js +0 -24
  84. package/dist/node/lights/light.js.map +0 -1
  85. package/dist/node/lights/point_light.d.ts +0 -26
  86. package/dist/node/lights/point_light.d.ts.map +0 -1
  87. package/dist/node/lights/point_light.js +0 -109
  88. package/dist/node/lights/point_light.js.map +0 -1
  89. package/dist/node/lights/spot_light.d.ts +0 -13
  90. package/dist/node/lights/spot_light.d.ts.map +0 -1
  91. package/dist/node/lights/spot_light.js +0 -35
  92. package/dist/node/lights/spot_light.js.map +0 -1
  93. package/dist/node/object3d.d.ts +0 -10
  94. package/dist/node/object3d.d.ts.map +0 -1
  95. package/dist/node/object3d.js +0 -60
  96. package/dist/node/object3d.js.map +0 -1
  97. package/dist/node/skybox.d.ts +0 -15
  98. package/dist/node/skybox.d.ts.map +0 -1
  99. package/dist/node/skybox.js +0 -33
  100. package/dist/node/skybox.js.map +0 -1
  101. package/dist/node/sprite2d.d.ts +0 -14
  102. package/dist/node/sprite2d.d.ts.map +0 -1
  103. package/dist/node/sprite2d.js +0 -33
  104. package/dist/node/sprite2d.js.map +0 -1
  105. package/dist/node.d.ts +0 -76
  106. package/dist/node.d.ts.map +0 -1
  107. package/dist/node.js +0 -308
  108. package/dist/node.js.map +0 -1
  109. package/dist/scene.d.ts +0 -19
  110. package/dist/scene.d.ts.map +0 -1
  111. package/dist/scene.js +0 -50
  112. package/dist/scene.js.map +0 -1
  113. package/dist/shaders/default_2d.fs.d.ts +0 -3
  114. package/dist/shaders/default_2d.fs.d.ts.map +0 -1
  115. package/dist/shaders/default_2d.fs.js +0 -14
  116. package/dist/shaders/default_2d.fs.js.map +0 -1
  117. package/dist/shaders/default_2d.vs.d.ts +0 -3
  118. package/dist/shaders/default_2d.vs.d.ts.map +0 -1
  119. package/dist/shaders/default_2d.vs.js +0 -16
  120. package/dist/shaders/default_2d.vs.js.map +0 -1
  121. package/dist/shaders/default_3d.fs.d.ts +0 -3
  122. package/dist/shaders/default_3d.fs.d.ts.map +0 -1
  123. package/dist/shaders/default_3d.fs.js +0 -327
  124. package/dist/shaders/default_3d.fs.js.map +0 -1
  125. package/dist/shaders/default_3d.vs.d.ts +0 -3
  126. package/dist/shaders/default_3d.vs.d.ts.map +0 -1
  127. package/dist/shaders/default_3d.vs.js +0 -36
  128. package/dist/shaders/default_3d.vs.js.map +0 -1
  129. package/dist/shaders/default_directional_shadow.fs.d.ts +0 -3
  130. package/dist/shaders/default_directional_shadow.fs.d.ts.map +0 -1
  131. package/dist/shaders/default_directional_shadow.fs.js +0 -6
  132. package/dist/shaders/default_directional_shadow.fs.js.map +0 -1
  133. package/dist/shaders/default_directional_shadow.vs.d.ts +0 -3
  134. package/dist/shaders/default_directional_shadow.vs.d.ts.map +0 -1
  135. package/dist/shaders/default_directional_shadow.vs.js +0 -11
  136. package/dist/shaders/default_directional_shadow.vs.js.map +0 -1
  137. package/dist/shaders/default_point_shadow.fs.d.ts +0 -3
  138. package/dist/shaders/default_point_shadow.fs.d.ts.map +0 -1
  139. package/dist/shaders/default_point_shadow.fs.js +0 -18
  140. package/dist/shaders/default_point_shadow.fs.js.map +0 -1
  141. package/dist/shaders/default_point_shadow.vs.d.ts +0 -3
  142. package/dist/shaders/default_point_shadow.vs.d.ts.map +0 -1
  143. package/dist/shaders/default_point_shadow.vs.js +0 -14
  144. package/dist/shaders/default_point_shadow.vs.js.map +0 -1
  145. package/dist/shaders/default_skybox.fs.d.ts +0 -3
  146. package/dist/shaders/default_skybox.fs.d.ts.map +0 -1
  147. package/dist/shaders/default_skybox.fs.js +0 -14
  148. package/dist/shaders/default_skybox.fs.js.map +0 -1
  149. package/dist/shaders/default_skybox.vs.d.ts +0 -3
  150. package/dist/shaders/default_skybox.vs.d.ts.map +0 -1
  151. package/dist/shaders/default_skybox.vs.js +0 -23
  152. package/dist/shaders/default_skybox.vs.js.map +0 -1
  153. package/dist/utility.d.ts +0 -5
  154. package/dist/utility.d.ts.map +0 -1
  155. package/dist/utility.js +0 -19
  156. package/dist/utility.js.map +0 -1
@@ -1,92 +0,0 @@
1
- import { get_uniform_label_index, normalize_uniform_label } from "./utility.js";
2
- export var WebGLUniformType;
3
- (function (WebGLUniformType) {
4
- WebGLUniformType[WebGLUniformType["TEXTURE_2D"] = 0] = "TEXTURE_2D";
5
- WebGLUniformType[WebGLUniformType["TEXTURE_2D_ARRAY"] = 1] = "TEXTURE_2D_ARRAY";
6
- WebGLUniformType[WebGLUniformType["TEXTURE_CUBE_MAP"] = 2] = "TEXTURE_CUBE_MAP";
7
- WebGLUniformType[WebGLUniformType["SHADOW_2D"] = 3] = "SHADOW_2D";
8
- WebGLUniformType[WebGLUniformType["SHADOW_2D_ARRAY"] = 4] = "SHADOW_2D_ARRAY";
9
- WebGLUniformType[WebGLUniformType["SHADOW_CUBE_MAP"] = 5] = "SHADOW_CUBE_MAP";
10
- WebGLUniformType[WebGLUniformType["STRUCT"] = 6] = "STRUCT";
11
- WebGLUniformType[WebGLUniformType["F"] = 7] = "F";
12
- WebGLUniformType[WebGLUniformType["I"] = 8] = "I";
13
- WebGLUniformType[WebGLUniformType["B"] = 9] = "B";
14
- WebGLUniformType[WebGLUniformType["F2V"] = 10] = "F2V";
15
- WebGLUniformType[WebGLUniformType["I2V"] = 11] = "I2V";
16
- WebGLUniformType[WebGLUniformType["F3V"] = 12] = "F3V";
17
- WebGLUniformType[WebGLUniformType["I3V"] = 13] = "I3V";
18
- WebGLUniformType[WebGLUniformType["F4V"] = 14] = "F4V";
19
- WebGLUniformType[WebGLUniformType["I4V"] = 15] = "I4V";
20
- WebGLUniformType[WebGLUniformType["F2M"] = 16] = "F2M";
21
- WebGLUniformType[WebGLUniformType["F3M"] = 17] = "F3M";
22
- WebGLUniformType[WebGLUniformType["F4M"] = 18] = "F4M";
23
- })(WebGLUniformType || (WebGLUniformType = {}));
24
- ;
25
- export class ShaderProgram {
26
- constructor(name, gm, gl) {
27
- this.shaders = [];
28
- this.webgl_shader_program = null;
29
- this.uniforms = {};
30
- this.uniform_locs = {};
31
- this.texture_counter = 0;
32
- this.ubo_counter = 0;
33
- this.ubos = {};
34
- this.gm = gm;
35
- this.gl = gl;
36
- this.name = name;
37
- }
38
- add_shader(type, source) {
39
- const shader = this.gl.createShader(type);
40
- this.gl.shaderSource(shader, source);
41
- this.gl.compileShader(shader);
42
- if (!this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS)) {
43
- console.error(this.gl.getShaderInfoLog(shader));
44
- }
45
- this.shaders.push(shader);
46
- }
47
- add_uniform(label, uniform_type) {
48
- const uniform_size = Math.max(1, get_uniform_label_index(label));
49
- let label_normalized = normalize_uniform_label(label);
50
- label = label_normalized.replace("[]", "");
51
- this.uniforms[label] = {
52
- label,
53
- type: uniform_type,
54
- is_array: label_normalized.startsWith("[]")
55
- };
56
- if ([
57
- WebGLUniformType.TEXTURE_2D,
58
- WebGLUniformType.TEXTURE_2D_ARRAY,
59
- WebGLUniformType.TEXTURE_CUBE_MAP,
60
- WebGLUniformType.SHADOW_2D,
61
- WebGLUniformType.SHADOW_2D_ARRAY,
62
- WebGLUniformType.SHADOW_CUBE_MAP,
63
- ].includes(uniform_type)) {
64
- this.uniforms[label].texture_unit = this.texture_counter;
65
- this.texture_counter += uniform_size;
66
- }
67
- }
68
- build() {
69
- this.webgl_shader_program = this.gl.createProgram();
70
- for (let shader of this.shaders) {
71
- this.gl.attachShader(this.webgl_shader_program, shader);
72
- }
73
- this.gl.linkProgram(this.webgl_shader_program);
74
- if (!this.gl.getProgramParameter(this.webgl_shader_program, this.gl.LINK_STATUS)) {
75
- console.error(this.gl.getProgramInfoLog(this.webgl_shader_program));
76
- }
77
- this.use();
78
- // find uniform locs
79
- for (let [label, uniform] of Object.entries(this.uniforms)) {
80
- const loc = this.gl.getUniformLocation(this.webgl_shader_program, label);
81
- if (!loc) {
82
- console.warn(`Uniform "${label}" not in use in shader program "${this.name}".`);
83
- }
84
- this.uniform_locs[label] = loc;
85
- }
86
- this.gm.clear_shader();
87
- }
88
- use() {
89
- this.gm.use_shader(this.name);
90
- }
91
- }
92
- //# sourceMappingURL=shader_program.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shader_program.js","sourceRoot":"","sources":["../../src/graphics/shader_program.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export declare function degrees_to_radians(degrees: number): number;
2
- export declare function get_uniform_label_index(raw_label: string): number;
3
- export declare function normalize_uniform_label(raw_label: string): string;
4
- export declare function parse_path(p: string): {
5
- root: string;
6
- dir: string;
7
- base: string;
8
- ext: string;
9
- name: string;
10
- };
11
- export declare function join_path(...parts: string[]): string;
12
- export declare function basename_path(path: string, ext?: string): string;
13
- export declare function dirname_path(path: string): string;
14
- //# sourceMappingURL=utility.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/graphics/utility.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,OAAO,EAAC,MAAM,GAAE,MAAM,CAExD;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAC,MAAM,GAAE,MAAM,CAG/D;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAC,MAAM,UA2BvD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM;;;;;;EAgBnC;AAED,wBAAgB,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAOpD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAchE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAcjD"}
@@ -1,81 +0,0 @@
1
- export function degrees_to_radians(degrees) {
2
- return degrees * (Math.PI / 180);
3
- }
4
- ;
5
- export function get_uniform_label_index(raw_label) {
6
- const match = raw_label.match(/\[(\d+)\][^\[]*$/);
7
- return match ? parseInt(match[1], 10) : 0;
8
- }
9
- export function normalize_uniform_label(raw_label) {
10
- var return_label = "";
11
- var start_ignore = false;
12
- var is_array = false;
13
- for (const char of raw_label) {
14
- switch (char) {
15
- case '[':
16
- start_ignore = true;
17
- is_array = true;
18
- break;
19
- case ']':
20
- start_ignore = false;
21
- is_array = true;
22
- break;
23
- default:
24
- if (!start_ignore)
25
- return_label += char;
26
- break;
27
- }
28
- }
29
- if (is_array)
30
- return_label = "[]" + return_label;
31
- return return_label;
32
- }
33
- export function parse_path(p) {
34
- const parts = p.split("/");
35
- const base = parts.pop() || "";
36
- const dir = parts.join("/") || "";
37
- const extIndex = base.lastIndexOf(".");
38
- const ext = extIndex !== -1 ? base.slice(extIndex) : "";
39
- const name = extIndex !== -1 ? base.slice(0, extIndex) : base;
40
- return {
41
- root: p.startsWith("/") ? "/" : "",
42
- dir,
43
- base,
44
- ext,
45
- name
46
- };
47
- }
48
- export function join_path(...parts) {
49
- return parts
50
- .filter(part => part && typeof part === "string")
51
- .join("/")
52
- .replace(/\/+/g, "/") // collapse multiple slashes
53
- .replace(/\/\.\//g, "/") // remove "/./"
54
- .replace(/(^|\/)(?!\.\.)[^\/]+\/\.\.\//g, "$1"); // resolve "../"
55
- }
56
- export function basename_path(path, ext) {
57
- if (!path)
58
- return "";
59
- // remove trailing slashes
60
- path = path.replace(/\/+$/, "");
61
- const idx = path.lastIndexOf("/");
62
- let base = idx === -1 ? path : path.slice(idx + 1);
63
- if (ext && base.endsWith(ext)) {
64
- base = base.slice(0, -ext.length);
65
- }
66
- return base;
67
- }
68
- export function dirname_path(path) {
69
- if (!path)
70
- return ".";
71
- const hasRoot = path.startsWith("/");
72
- // remove trailing slashes
73
- path = path.replace(/\/+$/, "");
74
- const idx = path.lastIndexOf("/");
75
- if (idx === -1)
76
- return ".";
77
- if (idx === 0)
78
- return "/";
79
- return path.slice(0, idx);
80
- }
81
- //# sourceMappingURL=utility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utility.js","sourceRoot":"","sources":["../../src/graphics/utility.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { LuaEngine, LuaFactory } from "wasmoon";
2
- import Engine from "./engine.ts";
3
- import { Node } from "./node.ts";
4
- export declare class HookManager {
5
- engine: Engine;
6
- lua_factory: LuaFactory;
7
- lua_engine_promise: Promise<LuaEngine>;
8
- lua: LuaEngine | null;
9
- on_ready_callbacks: {
10
- [key: string]: (node: Node, engine: Engine) => void;
11
- };
12
- on_removed_callbacks: {
13
- [key: string]: (node: Node, engine: Engine, parent: Node) => void;
14
- };
15
- on_update_callbacks: {
16
- [key: string]: (node: Node, engine: Engine, time: number, delta_time: number) => void;
17
- };
18
- on_render_callbacks: {
19
- [key: string]: (node: Node, engine: Engine, time: number, delta_time: number) => void;
20
- };
21
- constructor(engine: Engine);
22
- call_on_ready_callback(url: string, node: Node, engine: Engine): void;
23
- call_on_removed_callback(url: string, node: Node, engine: Engine, parent: Node): void;
24
- call_on_update_callback(url: string, node: Node, engine: Engine, time: number, delta_time: number): void;
25
- call_on_render_callback(url: string, node: Node, engine: Engine, time: number, delta_time: number): void;
26
- private do_lua_file_url;
27
- add_on_ready_callback(url: string): Promise<void>;
28
- add_on_removed_callback(url: string): Promise<void>;
29
- add_on_update_callback(url: string): Promise<void>;
30
- add_on_render_callback(url: string): Promise<void>;
31
- set_globals(): Promise<void>;
32
- }
33
- //# sourceMappingURL=hook_manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook_manager.d.ts","sourceRoot":"","sources":["../src/hook_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,IAAI,EAAkB,MAAM,WAAW,CAAC;AASjD,qBAAa,WAAW;IACpB,MAAM,EAAC,MAAM,CAAC;IACd,WAAW,EAAC,UAAU,CAAC;IACvB,kBAAkB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,EAAC,SAAS,GAAC,IAAI,CAAQ;IAE1B,kBAAkB,EAAC;QAAC,CAAC,GAAG,EAAC,MAAM,GAAE,CAAC,IAAI,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,KAAK,IAAI,CAAA;KAAC,CAAM;IAC1E,oBAAoB,EAAC;QAAC,CAAC,GAAG,EAAC,MAAM,GAAE,CAAC,IAAI,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,IAAI,KAAK,IAAI,CAAA;KAAC,CAAM;IACzF,mBAAmB,EAAC;QAAC,CAAC,GAAG,EAAC,MAAM,GAAE,CAAC,IAAI,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,KAAK,IAAI,CAAA;KAAC,CAAM;IAC3G,mBAAmB,EAAC;QAAC,CAAC,GAAG,EAAC,MAAM,GAAE,CAAC,IAAI,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,KAAK,IAAI,CAAA;KAAC,CAAM;gBAE/F,MAAM,EAAC,MAAM;IAYzB,sBAAsB,CAAC,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM;IAI3D,wBAAwB,CAAC,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,IAAI;IAI1E,uBAAuB,CAAC,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM;IAI5F,uBAAuB,CAAC,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM;YAI9E,eAAe;IAavB,qBAAqB,CAAC,GAAG,EAAC,MAAM;IAahC,uBAAuB,CAAC,GAAG,EAAC,MAAM;IAalC,sBAAsB,CAAC,GAAG,EAAC,MAAM;IAajC,sBAAsB,CAAC,GAAG,EAAC,MAAM;IAajC,WAAW;CAmBpB"}
@@ -1,102 +0,0 @@
1
- import { LuaFactory } from "wasmoon";
2
- import { Node, Node2D, Node3D } from "./node.js";
3
- import { Vec2, Vec3, Vec4, Mat2, Mat3, Mat4, Quat } from "@vicimpa/glm";
4
- import { Object3D } from "./node/object3d.js";
5
- import { Sprite2D } from "./node/sprite2d.js";
6
- // This class handles all of the lua hooks into different nodes.
7
- // It uses a single lua engine since webgl2 cant be multithreaded.
8
- // maybe in the future we will use webgpu and use multiple engines.
9
- export class HookManager {
10
- constructor(engine) {
11
- this.lua = null;
12
- this.on_ready_callbacks = {};
13
- this.on_removed_callbacks = {};
14
- this.on_update_callbacks = {};
15
- this.on_render_callbacks = {};
16
- this.engine = engine;
17
- this.lua_factory = new LuaFactory();
18
- this.lua_engine_promise = this.lua_factory.createEngine();
19
- this.lua_engine_promise
20
- .then(async (engine) => {
21
- this.lua = engine;
22
- await this.set_globals();
23
- })
24
- .catch((reason) => { throw new Error(reason); });
25
- }
26
- call_on_ready_callback(url, node, engine) {
27
- this.on_ready_callbacks[url](node, engine);
28
- }
29
- call_on_removed_callback(url, node, engine, parent) {
30
- this.on_removed_callbacks[url](node, engine, parent);
31
- }
32
- call_on_update_callback(url, node, engine, time, delta_time) {
33
- this.on_update_callbacks[url](node, engine, time, delta_time);
34
- }
35
- call_on_render_callback(url, node, engine, time, delta_time) {
36
- this.on_render_callbacks[url](node, engine, time, delta_time);
37
- }
38
- async do_lua_file_url(url) {
39
- await this.lua_engine_promise;
40
- if (!this.lua)
41
- return;
42
- const res = await fetch(url);
43
- if (!res.ok)
44
- throw new Error("Failed to load Lua file");
45
- const code = await res.text();
46
- return this.lua.doString(code);
47
- }
48
- async add_on_ready_callback(url) {
49
- await this.lua_engine_promise;
50
- if (!this.lua)
51
- return;
52
- await this.do_lua_file_url(url);
53
- const callback = this.lua.global.get("on_ready");
54
- this.on_ready_callbacks[url] = callback;
55
- }
56
- async add_on_removed_callback(url) {
57
- await this.lua_engine_promise;
58
- if (!this.lua)
59
- return;
60
- await this.do_lua_file_url(url);
61
- const callback = this.lua.global.get("on_removed");
62
- this.on_removed_callbacks[url] = callback;
63
- }
64
- async add_on_update_callback(url) {
65
- await this.lua_engine_promise;
66
- if (!this.lua)
67
- return;
68
- await this.do_lua_file_url(url);
69
- const callback = this.lua.global.get("on_update");
70
- this.on_update_callbacks[url] = callback;
71
- }
72
- async add_on_render_callback(url) {
73
- await this.lua_engine_promise;
74
- if (!this.lua)
75
- return;
76
- await this.do_lua_file_url(url);
77
- const callback = this.lua.global.get("on_render");
78
- this.on_render_callbacks[url] = callback;
79
- }
80
- async set_globals() {
81
- await this.lua_engine_promise;
82
- if (!this.lua)
83
- return;
84
- this.lua.global.set("Vec2", create_lua_constructor(Vec2));
85
- this.lua.global.set("Vec3", create_lua_constructor(Vec3));
86
- this.lua.global.set("Vec4", create_lua_constructor(Vec4));
87
- this.lua.global.set("Mat2", create_lua_constructor(Mat2));
88
- this.lua.global.set("Mat3", create_lua_constructor(Mat3));
89
- this.lua.global.set("Mat4", create_lua_constructor(Mat4));
90
- this.lua.global.set("Quat", create_lua_constructor(Quat));
91
- this.lua.global.set("Node", create_lua_constructor(Node));
92
- this.lua.global.set("Node3D", create_lua_constructor(Node3D));
93
- this.lua.global.set("Node2D", create_lua_constructor(Node2D));
94
- this.lua.global.set("Object3D", create_lua_constructor(Object3D));
95
- this.lua.global.set("Sprite2D", create_lua_constructor(Sprite2D));
96
- }
97
- }
98
- ;
99
- function create_lua_constructor(cls) {
100
- return (...args) => new cls(...args);
101
- }
102
- //# sourceMappingURL=hook_manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook_manager.js","sourceRoot":"","sources":["../src/hook_manager.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,eAAe,MAAM,CAAC"}
@@ -1,41 +0,0 @@
1
- import Engine from "../engine.ts";
2
- export declare enum MouseButton {
3
- Left = 0,
4
- Middle = 1,
5
- Right = 2
6
- }
7
- export declare class InputManager {
8
- private target;
9
- engine: Engine;
10
- private keysDown;
11
- private keysPressed;
12
- private keysReleased;
13
- private mouseDown;
14
- private mousePressed;
15
- private mouseReleased;
16
- mouseX: number;
17
- mouseY: number;
18
- mouse_delta_x: number;
19
- mouse_delta_y: number;
20
- wheelDelta: number;
21
- constructor(engine: Engine, target?: HTMLElement);
22
- destroy(): void;
23
- update(): void;
24
- is_key_down(code: string): boolean;
25
- was_key_pressed(code: string): boolean;
26
- was_key_released(code: string): boolean;
27
- is_mouse_down(button: MouseButton): boolean;
28
- was_mouse_pressed(button: MouseButton): boolean;
29
- was_mouse_released(button: MouseButton): boolean;
30
- lock_mouse(): void;
31
- unlock_mouse(): void;
32
- private attach;
33
- private detach;
34
- private onKeyDown;
35
- private onKeyUp;
36
- private onMouseDown;
37
- private onMouseUp;
38
- private onMouseMove;
39
- private onWheel;
40
- }
41
- //# sourceMappingURL=input_manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input_manager.d.ts","sourceRoot":"","sources":["../../src/input/input_manager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,oBAAY,WAAW;IACnB,IAAI,IAAI;IACR,MAAM,IAAI;IACV,KAAK,IAAI;CACZ;AAED,qBAAa,YAAY;IAkBM,OAAO,CAAC,MAAM;IAjBzC,MAAM,EAAC,MAAM,CAAC;IAEd,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,aAAa,CAAqB;IAEnC,MAAM,SAAK;IACX,MAAM,SAAK;IACX,aAAa,SAAK;IAClB,aAAa,SAAK;IAElB,UAAU,SAAK;gBAEV,MAAM,EAAC,MAAM,EAAU,MAAM,GAAE,WAAkC;IAK7E,OAAO;IAIP,MAAM;IAWN,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIvC,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI3C,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI/C,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAIhD,UAAU;IAIV,YAAY;IAIZ,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,SAAS,CAKf;IAEF,OAAO,CAAC,OAAO,CAIb;IAEF,OAAO,CAAC,WAAW,CAMjB;IAEF,OAAO,CAAC,SAAS,CAIf;IAEF,OAAO,CAAC,WAAW,CAkBjB;IAEF,OAAO,CAAC,OAAO,CAEb;CACL"}
@@ -1,121 +0,0 @@
1
- export var MouseButton;
2
- (function (MouseButton) {
3
- MouseButton[MouseButton["Left"] = 0] = "Left";
4
- MouseButton[MouseButton["Middle"] = 1] = "Middle";
5
- MouseButton[MouseButton["Right"] = 2] = "Right";
6
- })(MouseButton || (MouseButton = {}));
7
- export class InputManager {
8
- constructor(engine, target = window.document.body) {
9
- this.target = target;
10
- this.keysDown = new Set();
11
- this.keysPressed = new Set();
12
- this.keysReleased = new Set();
13
- this.mouseDown = new Set();
14
- this.mousePressed = new Set();
15
- this.mouseReleased = new Set();
16
- this.mouseX = 0;
17
- this.mouseY = 0;
18
- this.mouse_delta_x = 0;
19
- this.mouse_delta_y = 0;
20
- this.wheelDelta = 0;
21
- this.onKeyDown = (e) => {
22
- if (!this.keysDown.has(e.code)) {
23
- this.keysDown.add(e.code);
24
- this.keysPressed.add(e.code);
25
- }
26
- };
27
- this.onKeyUp = (e) => {
28
- if (this.keysDown.delete(e.code)) {
29
- this.keysReleased.add(e.code);
30
- }
31
- };
32
- this.onMouseDown = (e) => {
33
- if (!this.mouseDown.has(e.button)) {
34
- this.mouseDown.add(e.button);
35
- this.mousePressed.add(e.button);
36
- }
37
- };
38
- this.onMouseUp = (e) => {
39
- if (this.mouseDown.delete(e.button)) {
40
- this.mouseReleased.add(e.button);
41
- }
42
- };
43
- this.onMouseMove = (e) => {
44
- if (document.pointerLockElement === this.engine.canvas) {
45
- // Pointer lock mode → use raw movement
46
- this.mouse_delta_x = e.movementX;
47
- this.mouse_delta_y = e.movementY;
48
- }
49
- else {
50
- // Normal mouse mode
51
- const rect = this.target.getBoundingClientRect();
52
- const x = e.clientX - rect.left;
53
- const y = e.clientY - rect.top;
54
- this.mouse_delta_x += x - this.mouseX;
55
- this.mouse_delta_y += y - this.mouseY;
56
- this.mouseX = x;
57
- this.mouseY = y;
58
- }
59
- };
60
- this.onWheel = (e) => {
61
- this.wheelDelta += e.deltaY;
62
- };
63
- this.engine = engine;
64
- this.attach();
65
- }
66
- destroy() {
67
- this.detach();
68
- }
69
- update() {
70
- this.keysPressed.clear();
71
- this.keysReleased.clear();
72
- this.mousePressed.clear();
73
- this.mouseReleased.clear();
74
- this.mouse_delta_x = 0;
75
- this.mouse_delta_y = 0;
76
- this.wheelDelta = 0;
77
- }
78
- is_key_down(code) {
79
- return this.keysDown.has(code);
80
- }
81
- was_key_pressed(code) {
82
- return this.keysPressed.has(code);
83
- }
84
- was_key_released(code) {
85
- return this.keysReleased.has(code);
86
- }
87
- is_mouse_down(button) {
88
- return this.mouseDown.has(button);
89
- }
90
- was_mouse_pressed(button) {
91
- return this.mousePressed.has(button);
92
- }
93
- was_mouse_released(button) {
94
- return this.mouseReleased.has(button);
95
- }
96
- lock_mouse() {
97
- this.engine.canvas.requestPointerLock();
98
- }
99
- unlock_mouse() {
100
- document.exitPointerLock();
101
- }
102
- attach() {
103
- window.addEventListener("keydown", this.onKeyDown);
104
- window.addEventListener("keyup", this.onKeyUp);
105
- this.target.addEventListener("mousedown", this.onMouseDown);
106
- window.addEventListener("mouseup", this.onMouseUp);
107
- this.target.addEventListener("mousemove", this.onMouseMove);
108
- this.target.addEventListener("wheel", this.onWheel, { passive: true });
109
- // Prevent context menu
110
- this.target.addEventListener("contextmenu", e => e.preventDefault());
111
- }
112
- detach() {
113
- window.removeEventListener("keydown", this.onKeyDown);
114
- window.removeEventListener("keyup", this.onKeyUp);
115
- this.target.removeEventListener("mousedown", this.onMouseDown);
116
- window.removeEventListener("mouseup", this.onMouseUp);
117
- this.target.removeEventListener("mousemove", this.onMouseMove);
118
- this.target.removeEventListener("wheel", this.onWheel);
119
- }
120
- }
121
- //# sourceMappingURL=input_manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input_manager.js","sourceRoot":"","sources":["../../src/input/input_manager.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { Mat4 } from "@vicimpa/glm";
2
- import { Node3D } from "../node.ts";
3
- export declare class Camera3D extends Node3D {
4
- fov: number;
5
- near_plane: number;
6
- far_plane: number;
7
- get_projection_matrix(canvas: HTMLCanvasElement): Mat4;
8
- get_view_matrix(): Mat4;
9
- }
10
- //# sourceMappingURL=camera3d.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"camera3d.d.ts","sourceRoot":"","sources":["../../src/node/camera3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIpC,qBAAa,QAAS,SAAQ,MAAM;IAChC,GAAG,EAAC,MAAM,CAA0B;IACpC,UAAU,EAAC,MAAM,CAAO;IACxB,SAAS,EAAC,MAAM,CAAU;IAE1B,qBAAqB,CAAC,MAAM,EAAC,iBAAiB,GAAG,IAAI;IAWrD,eAAe,IAAI,IAAI;CAY1B"}
@@ -1,25 +0,0 @@
1
- import { Mat4 } from "@vicimpa/glm";
2
- import { Node3D } from "../node.js";
3
- import { degrees_to_radians } from "../graphics/utility.js";
4
- export class Camera3D extends Node3D {
5
- constructor() {
6
- super(...arguments);
7
- this.fov = degrees_to_radians(60);
8
- this.near_plane = 0.1;
9
- this.far_plane = 1000.0;
10
- }
11
- get_projection_matrix(canvas) {
12
- const aspect = canvas.width / canvas.height;
13
- return new Mat4().perspectiveNO(this.fov, aspect, this.near_plane, this.far_plane);
14
- }
15
- get_view_matrix() {
16
- const view = new Mat4().identity();
17
- // Inverse rotation
18
- const invRot = this.rotation.clone().invert();
19
- view.mul(new Mat4().fromQuat(invRot));
20
- // Inverse translation
21
- view.translate(this.position.clone().negate());
22
- return view;
23
- }
24
- }
25
- //# sourceMappingURL=camera3d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"camera3d.js","sourceRoot":"","sources":["../../src/node/camera3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,MAAM,OAAO,QAAS,SAAQ,MAAM;IAApC;;QACI,QAAG,GAAU,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACpC,eAAU,GAAU,GAAG,CAAC;QACxB,cAAS,GAAU,MAAM,CAAC;IAyB9B,CAAC;IAvBG,qBAAqB,CAAC,MAAwB;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAE5C,OAAO,IAAI,IAAI,EAAE,CAAC,aAAa,CAC3B,IAAI,CAAC,GAAG,EACR,MAAM,EACN,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;IAED,eAAe;QACX,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QAEnC,mBAAmB;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAEtC,sBAAsB;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -1,20 +0,0 @@
1
- import { Mat4, Vec3, Vec4 } from "@vicimpa/glm";
2
- import Engine from "../../engine.ts";
3
- import { Framebuffer } from "../../graphics/framebuffer.ts";
4
- import { ShaderProgram } from "../../graphics/shader_program.ts";
5
- import { Node } from "../../node.ts";
6
- import { Light } from "./light.ts";
7
- export declare class DirectionalLight extends Light {
8
- shader_program: ShaderProgram;
9
- shadow_index: number;
10
- framebuffer: Framebuffer;
11
- directional_light_space_matrix: Mat4;
12
- constructor(engine: Engine, name: string, color: Vec3, ambient: number, diffuse: number, specular: number, energy: number, shader_program?: ShaderProgram | null);
13
- draw_shadow_map(view_matrix: Mat4, projection_matrix_3d: Mat4, projection_matrix_2d: Mat4, time: number, delta_time: number): void;
14
- set_uniforms(array_name: string, index: number): void;
15
- protected on_parented(): void;
16
- protected on_removed(node: this, engine: Engine, parent: Node): void;
17
- get_frustum_corners_world_space(projection_matrix: Mat4, view_matrix: Mat4): Vec4[];
18
- get_light_space_matrix(light_dir: Vec3, corners: Vec4[]): Mat4;
19
- }
20
- //# sourceMappingURL=directional_light.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"directional_light.d.ts","sourceRoot":"","sources":["../../../src/node/lights/directional_light.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAQ,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAkB,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,qBAAa,gBAAiB,SAAQ,KAAK;IAEvC,cAAc,EAAC,aAAa,CAAC;IAC7B,YAAY,EAAC,MAAM,CAAC;IACpB,WAAW,EAAC,WAAW,CAAC;IAExB,8BAA8B,EAAC,IAAI,CAAc;gBAG7C,MAAM,EAAC,MAAM,EACb,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,IAAI,EACV,OAAO,EAAC,MAAM,EACd,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,MAAM,EACf,MAAM,EAAC,MAAM,EACb,cAAc,GAAC,aAAa,GAAC,IAAW;IAW5C,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA6ClI,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAerD,SAAS,CAAC,WAAW,IAAI,IAAI;IAK7B,SAAS,CAAC,UAAU,CAAC,IAAI,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,IAAI,GAAG,IAAI;IAQjE,+BAA+B,CAAC,iBAAiB,EAAC,IAAI,EAAE,WAAW,EAAC,IAAI,GAAE,IAAI,EAAE;IAmBhF,sBAAsB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAC,IAAI,EAAE,GAAE,IAAI;CAkD/D"}