@needle-tools/engine 2.40.0-pre → 2.41.0-pre
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/CHANGELOG.md +7 -0
- package/dist/needle-engine.d.ts +269 -123
- package/dist/needle-engine.js +389 -389
- package/dist/needle-engine.js.map +4 -4
- package/dist/needle-engine.min.js +41 -41
- package/dist/needle-engine.min.js.map +4 -4
- package/lib/engine/engine_gizmos.d.ts +1 -0
- package/lib/engine/engine_gizmos.js +16 -4
- package/lib/engine/engine_gizmos.js.map +1 -1
- package/lib/engine/engine_math.d.ts +9 -6
- package/lib/engine/engine_math.js +9 -0
- package/lib/engine/engine_math.js.map +1 -1
- package/lib/engine/engine_physics.js +14 -6
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_serialization_core.js +2 -0
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/engine_utils.d.ts +1 -0
- package/lib/engine/engine_utils.js +3 -0
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine-components/AnimationCurve.js +20 -5
- package/lib/engine-components/AnimationCurve.js.map +1 -1
- package/lib/engine-components/Light.d.ts +2 -0
- package/lib/engine-components/Light.js +33 -9
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/ParticleSystem.d.ts +15 -26
- package/lib/engine-components/ParticleSystem.js +251 -184
- package/lib/engine-components/ParticleSystem.js.map +1 -1
- package/lib/engine-components/ParticleSystemModules.d.ts +208 -63
- package/lib/engine-components/ParticleSystemModules.js +640 -153
- package/lib/engine-components/ParticleSystemModules.js.map +1 -1
- package/lib/engine-components/WebXR.js +8 -3
- package/lib/engine-components/WebXR.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +6 -0
- package/lib/engine-components/codegen/components.js +6 -0
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/package.json +3 -1
- package/src/engine/codegen/register_types.js +24 -0
- package/src/engine/engine_gizmos.ts +19 -4
- package/src/engine/engine_math.ts +19 -6
- package/src/engine/engine_physics.ts +17 -7
- package/src/engine/engine_serialization_core.ts +1 -0
- package/src/engine/engine_utils.ts +5 -0
- package/src/engine-components/AnimationCurve.ts +25 -11
- package/src/engine-components/Light.ts +39 -8
- package/src/engine-components/ParticleSystem.ts +314 -194
- package/src/engine-components/ParticleSystemModules.ts +537 -154
- package/src/engine-components/WebXR.ts +11 -8
- package/src/engine-components/codegen/components.ts +6 -0
- package/src/engine/dist/engine_physics.js +0 -739
- package/src/engine/dist/engine_setup.js +0 -777
- package/src/engine-components/dist/CharacterController.js +0 -123
- package/src/engine-components/dist/RigidBody.js +0 -458
|
@@ -1,777 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
exports.__esModule = true;
|
|
39
|
-
exports.Context = exports.registerComponent = exports.XRSessionMode = exports.FrameEvent = exports.ContextArgs = exports.build_scene_functions = void 0;
|
|
40
|
-
var three_1 = require("three");
|
|
41
|
-
var THREE = require("three");
|
|
42
|
-
var engine_input_1 = require("./engine_input");
|
|
43
|
-
var engine_physics_1 = require("./engine_physics");
|
|
44
|
-
var engine_time_1 = require("./engine_time");
|
|
45
|
-
var engine_networking_1 = require("./engine_networking");
|
|
46
|
-
var engine_networking_instantiate_1 = require("./engine_networking_instantiate");
|
|
47
|
-
var looputils = require("./engine_mainloop_utils");
|
|
48
|
-
var utils = require("./engine_utils");
|
|
49
|
-
var EffectComposer_js_1 = require("three/examples/jsm/postprocessing/EffectComposer.js");
|
|
50
|
-
var RenderPass_1 = require("three/examples/jsm/postprocessing/RenderPass");
|
|
51
|
-
var engine_networking_files_1 = require("./engine_networking_files");
|
|
52
|
-
var engine_assetdatabase_1 = require("./engine_assetdatabase");
|
|
53
|
-
var engine_three_utils_1 = require("./engine_three_utils");
|
|
54
|
-
var Stats = require("three/examples/jsm/libs/stats.module");
|
|
55
|
-
var engine_rendererdata_1 = require("./engine_rendererdata");
|
|
56
|
-
var engine_addressables_1 = require("./engine_addressables");
|
|
57
|
-
var engine_application_1 = require("./engine_application");
|
|
58
|
-
var engine_lightdata_1 = require("./engine_lightdata");
|
|
59
|
-
var engine_playerview_1 = require("./engine_playerview");
|
|
60
|
-
var engine_gameobject_1 = require("./engine_gameobject");
|
|
61
|
-
var debug = utils.getParam("debugSetup");
|
|
62
|
-
var stats = utils.getParam("stats");
|
|
63
|
-
// this is where functions that setup unity scenes will be pushed into
|
|
64
|
-
// those will be accessed from our custom html element to load them into their context
|
|
65
|
-
exports.build_scene_functions = {};
|
|
66
|
-
var ContextArgs = /** @class */ (function () {
|
|
67
|
-
function ContextArgs(domElement) {
|
|
68
|
-
this.alias = undefined;
|
|
69
|
-
this.renderer = undefined;
|
|
70
|
-
this.domElement = domElement !== null && domElement !== void 0 ? domElement : document.body;
|
|
71
|
-
}
|
|
72
|
-
return ContextArgs;
|
|
73
|
-
}());
|
|
74
|
-
exports.ContextArgs = ContextArgs;
|
|
75
|
-
var FrameEvent;
|
|
76
|
-
(function (FrameEvent) {
|
|
77
|
-
FrameEvent[FrameEvent["EarlyUpdate"] = 0] = "EarlyUpdate";
|
|
78
|
-
FrameEvent[FrameEvent["Update"] = 1] = "Update";
|
|
79
|
-
FrameEvent[FrameEvent["LateUpdate"] = 2] = "LateUpdate";
|
|
80
|
-
FrameEvent[FrameEvent["OnBeforeRender"] = 3] = "OnBeforeRender";
|
|
81
|
-
FrameEvent[FrameEvent["OnAfterRender"] = 4] = "OnAfterRender";
|
|
82
|
-
FrameEvent[FrameEvent["PrePhysicsStep"] = 9] = "PrePhysicsStep";
|
|
83
|
-
FrameEvent[FrameEvent["PostPhysicsStep"] = 10] = "PostPhysicsStep";
|
|
84
|
-
})(FrameEvent = exports.FrameEvent || (exports.FrameEvent = {}));
|
|
85
|
-
var XRSessionMode;
|
|
86
|
-
(function (XRSessionMode) {
|
|
87
|
-
XRSessionMode["ImmersiveVR"] = "immersive-vr";
|
|
88
|
-
XRSessionMode["ImmersiveAR"] = "immersive-ar";
|
|
89
|
-
})(XRSessionMode = exports.XRSessionMode || (exports.XRSessionMode = {}));
|
|
90
|
-
function registerComponent(script, context) {
|
|
91
|
-
var _a;
|
|
92
|
-
if (!script)
|
|
93
|
-
return;
|
|
94
|
-
var new_scripts = (_a = context === null || context === void 0 ? void 0 : context.new_scripts) !== null && _a !== void 0 ? _a : Context.Current.new_scripts;
|
|
95
|
-
if (!new_scripts.includes(script)) {
|
|
96
|
-
new_scripts.push(script);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
exports.registerComponent = registerComponent;
|
|
100
|
-
var Context = /** @class */ (function () {
|
|
101
|
-
function Context(args) {
|
|
102
|
-
var _this = this;
|
|
103
|
-
this.isManagedExternally = false;
|
|
104
|
-
this._resolutionScaleFactor = 1;
|
|
105
|
-
this.xrSessionMode = undefined;
|
|
106
|
-
this.composer = null;
|
|
107
|
-
// all scripts
|
|
108
|
-
this.scripts = [];
|
|
109
|
-
// scripts with update event
|
|
110
|
-
this.scripts_earlyUpdate = [];
|
|
111
|
-
this.scripts_update = [];
|
|
112
|
-
this.scripts_lateUpdate = [];
|
|
113
|
-
this.scripts_onBeforeRender = [];
|
|
114
|
-
this.scripts_onAfterRender = [];
|
|
115
|
-
this.scripts_WithCorroutines = [];
|
|
116
|
-
this.coroutines = {};
|
|
117
|
-
this.post_setup_callbacks = [];
|
|
118
|
-
this.pre_update_callbacks = [];
|
|
119
|
-
this.pre_render_callbacks = [];
|
|
120
|
-
this.post_render_callbacks = [];
|
|
121
|
-
this.new_scripts = [];
|
|
122
|
-
this.new_script_start = [];
|
|
123
|
-
this.new_scripts_pre_setup_callbacks = [];
|
|
124
|
-
this.new_scripts_post_setup_callbacks = [];
|
|
125
|
-
this.mainLight = null;
|
|
126
|
-
this._sizeChanged = false;
|
|
127
|
-
this._isCreated = false;
|
|
128
|
-
this._stats = stats ? Stats["default"]() : null;
|
|
129
|
-
this._cameraStack = [];
|
|
130
|
-
this._onBeforeRenderListeners = {};
|
|
131
|
-
this._requireDepthTexture = false;
|
|
132
|
-
this._requireColorTexture = false;
|
|
133
|
-
this._isRendering = false;
|
|
134
|
-
this.name = (args === null || args === void 0 ? void 0 : args.name) || "";
|
|
135
|
-
this.alias = args === null || args === void 0 ? void 0 : args.alias;
|
|
136
|
-
this.domElement = (args === null || args === void 0 ? void 0 : args.domElement) || document.body;
|
|
137
|
-
if (args === null || args === void 0 ? void 0 : args.renderer) {
|
|
138
|
-
this.renderer = args.renderer;
|
|
139
|
-
this.isManagedExternally = true;
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
var useComposer = utils.getParam("postfx");
|
|
143
|
-
this.renderer = new three_1.WebGLRenderer({ antialias: true });
|
|
144
|
-
// some tonemapping other than "NONE" is required for adjusting exposure with EXR environments
|
|
145
|
-
this.renderer.toneMappingExposure = 1; // range [0...inf] instead of the usual -15..15
|
|
146
|
-
this.renderer.toneMapping = THREE.NoToneMapping; // could also set to LinearToneMapping, ACESFilmicToneMapping
|
|
147
|
-
this.renderer.setClearColor(new THREE.Color('lightgrey'), 0);
|
|
148
|
-
// @ts-ignore
|
|
149
|
-
this.renderer.antialias = true;
|
|
150
|
-
// @ts-ignore
|
|
151
|
-
this.renderer.alpha = false;
|
|
152
|
-
this.renderer.shadowMap.enabled = true;
|
|
153
|
-
this.renderer.shadowMap.type = THREE.PCFSoftShadowMap;
|
|
154
|
-
this.renderer.setSize(this.domWidth, this.domHeight);
|
|
155
|
-
this.renderer.outputEncoding = THREE.sRGBEncoding;
|
|
156
|
-
this.renderer.physicallyCorrectLights = true;
|
|
157
|
-
this.composer = useComposer ? new EffectComposer_js_1.EffectComposer(this.renderer) : null;
|
|
158
|
-
}
|
|
159
|
-
this.scene = new THREE.Scene();
|
|
160
|
-
this.application = new engine_application_1.Application(this);
|
|
161
|
-
this.time = new engine_time_1.Time();
|
|
162
|
-
this.input = new engine_input_1.Input(this);
|
|
163
|
-
this.physics = new engine_physics_1.Physics(this);
|
|
164
|
-
this.connection = new engine_networking_1.NetworkConnection(this);
|
|
165
|
-
this.assets = new engine_assetdatabase_1.AssetDatabase();
|
|
166
|
-
this.rendererData = new engine_rendererdata_1.RendererData(this);
|
|
167
|
-
this.addressables = new engine_addressables_1.Addressables(this);
|
|
168
|
-
this.lightmaps = new engine_lightdata_1.LightDataRegistry(this);
|
|
169
|
-
this.players = new engine_playerview_1.PlayerViewManager(this);
|
|
170
|
-
window.addEventListener('resize', function () { return _this._sizeChanged = true; });
|
|
171
|
-
var ro = new ResizeObserver(function (_) { return _this._sizeChanged = true; });
|
|
172
|
-
ro.observe(this.domElement);
|
|
173
|
-
}
|
|
174
|
-
Object.defineProperty(Context, "Current", {
|
|
175
|
-
get: function () {
|
|
176
|
-
return this._current;
|
|
177
|
-
},
|
|
178
|
-
set: function (context) {
|
|
179
|
-
this._current = context;
|
|
180
|
-
},
|
|
181
|
-
enumerable: false,
|
|
182
|
-
configurable: true
|
|
183
|
-
});
|
|
184
|
-
Object.defineProperty(Context.prototype, "resolutionScaleFactor", {
|
|
185
|
-
get: function () { return this._resolutionScaleFactor; },
|
|
186
|
-
/** use to scale the resolution up or down of the renderer. default is 1 */
|
|
187
|
-
set: function (val) {
|
|
188
|
-
if (val === this._resolutionScaleFactor)
|
|
189
|
-
return;
|
|
190
|
-
if (typeof val !== "number")
|
|
191
|
-
return;
|
|
192
|
-
if (val <= 0) {
|
|
193
|
-
console.error("Invalid resolution scale factor", val);
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
this._resolutionScaleFactor = val;
|
|
197
|
-
this.updateSize();
|
|
198
|
-
},
|
|
199
|
-
enumerable: false,
|
|
200
|
-
configurable: true
|
|
201
|
-
});
|
|
202
|
-
Object.defineProperty(Context.prototype, "domWidth", {
|
|
203
|
-
get: function () { return this.domElement.clientWidth; },
|
|
204
|
-
enumerable: false,
|
|
205
|
-
configurable: true
|
|
206
|
-
});
|
|
207
|
-
Object.defineProperty(Context.prototype, "domHeight", {
|
|
208
|
-
get: function () { return this.domElement.clientHeight; },
|
|
209
|
-
enumerable: false,
|
|
210
|
-
configurable: true
|
|
211
|
-
});
|
|
212
|
-
Object.defineProperty(Context.prototype, "domX", {
|
|
213
|
-
get: function () { return this.domElement.offsetLeft; },
|
|
214
|
-
enumerable: false,
|
|
215
|
-
configurable: true
|
|
216
|
-
});
|
|
217
|
-
Object.defineProperty(Context.prototype, "domY", {
|
|
218
|
-
get: function () { return this.domElement.offsetTop; },
|
|
219
|
-
enumerable: false,
|
|
220
|
-
configurable: true
|
|
221
|
-
});
|
|
222
|
-
Object.defineProperty(Context.prototype, "isInXR", {
|
|
223
|
-
get: function () { var _a; return ((_a = this.renderer.xr) === null || _a === void 0 ? void 0 : _a.isPresenting) || false; },
|
|
224
|
-
enumerable: false,
|
|
225
|
-
configurable: true
|
|
226
|
-
});
|
|
227
|
-
Object.defineProperty(Context.prototype, "isInVR", {
|
|
228
|
-
get: function () { return this.xrSessionMode === XRSessionMode.ImmersiveVR; },
|
|
229
|
-
enumerable: false,
|
|
230
|
-
configurable: true
|
|
231
|
-
});
|
|
232
|
-
Object.defineProperty(Context.prototype, "isInAR", {
|
|
233
|
-
get: function () { return this.xrSessionMode === XRSessionMode.ImmersiveAR; },
|
|
234
|
-
enumerable: false,
|
|
235
|
-
configurable: true
|
|
236
|
-
});
|
|
237
|
-
Object.defineProperty(Context.prototype, "xrSession", {
|
|
238
|
-
get: function () { var _a; return (_a = this.renderer.xr) === null || _a === void 0 ? void 0 : _a.getSession(); },
|
|
239
|
-
enumerable: false,
|
|
240
|
-
configurable: true
|
|
241
|
-
});
|
|
242
|
-
Object.defineProperty(Context.prototype, "arOverlayElement", {
|
|
243
|
-
get: function () {
|
|
244
|
-
var el = this.domElement;
|
|
245
|
-
if (typeof el.getAROverlayContainer === "function")
|
|
246
|
-
return el.getAROverlayContainer();
|
|
247
|
-
return this.domElement;
|
|
248
|
-
},
|
|
249
|
-
enumerable: false,
|
|
250
|
-
configurable: true
|
|
251
|
-
});
|
|
252
|
-
Object.defineProperty(Context.prototype, "mainCamera", {
|
|
253
|
-
get: function () {
|
|
254
|
-
if (this.mainCameraComponent) {
|
|
255
|
-
var cam = this.mainCameraComponent;
|
|
256
|
-
if (!cam.cam)
|
|
257
|
-
cam.buildCamera();
|
|
258
|
-
return cam.cam;
|
|
259
|
-
}
|
|
260
|
-
return null;
|
|
261
|
-
},
|
|
262
|
-
enumerable: false,
|
|
263
|
-
configurable: true
|
|
264
|
-
});
|
|
265
|
-
// private _requestSizeUpdate : boolean = false;
|
|
266
|
-
Context.prototype.updateSize = function () {
|
|
267
|
-
if (!this.isManagedExternally && !this.renderer.xr.isPresenting) {
|
|
268
|
-
this._sizeChanged = false;
|
|
269
|
-
var scaleFactor = this.resolutionScaleFactor;
|
|
270
|
-
var width = this.domWidth * scaleFactor;
|
|
271
|
-
var height = this.domHeight * scaleFactor;
|
|
272
|
-
var camera = this.mainCamera;
|
|
273
|
-
this.updateAspect(camera);
|
|
274
|
-
this.renderer.setSize(width, height);
|
|
275
|
-
this.renderer.setPixelRatio(window.devicePixelRatio);
|
|
276
|
-
// avoid setting pixel values here since this can cause pingpong updates
|
|
277
|
-
// e.g. when system scale is set to 125%
|
|
278
|
-
// https://github.com/needle-tools/needle-engine-support/issues/69
|
|
279
|
-
this.renderer.domElement.style.width = "100%";
|
|
280
|
-
this.renderer.domElement.style.height = "100%";
|
|
281
|
-
if (this.composer) {
|
|
282
|
-
this.composer.setSize(width, height);
|
|
283
|
-
this.composer.setPixelRatio(window.devicePixelRatio);
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
};
|
|
287
|
-
Context.prototype.updateAspect = function (camera) {
|
|
288
|
-
if (!camera)
|
|
289
|
-
return;
|
|
290
|
-
var width = this.domWidth;
|
|
291
|
-
var height = this.domHeight;
|
|
292
|
-
var pa = camera.aspect;
|
|
293
|
-
camera.aspect = width / height;
|
|
294
|
-
if (pa !== camera.aspect)
|
|
295
|
-
camera.updateProjectionMatrix();
|
|
296
|
-
};
|
|
297
|
-
Context.prototype.onCreate = function (buildScene, opts) {
|
|
298
|
-
if (this._isCreated) {
|
|
299
|
-
console.warn("Context already created");
|
|
300
|
-
return null;
|
|
301
|
-
}
|
|
302
|
-
this._isCreated = true;
|
|
303
|
-
return this.internalOnCreate(buildScene, opts);
|
|
304
|
-
};
|
|
305
|
-
Context.prototype.onDestroy = function () {
|
|
306
|
-
var _a, _b;
|
|
307
|
-
if (!this._isCreated)
|
|
308
|
-
return;
|
|
309
|
-
this._isCreated = false;
|
|
310
|
-
engine_gameobject_1.destroy(this.scene, true);
|
|
311
|
-
(_a = this.renderer) === null || _a === void 0 ? void 0 : _a.setAnimationLoop(null);
|
|
312
|
-
if (!this.isManagedExternally) {
|
|
313
|
-
(_b = this.renderer) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
314
|
-
}
|
|
315
|
-
};
|
|
316
|
-
Context.prototype.registerCoroutineUpdate = function (script, coroutine, evt) {
|
|
317
|
-
if (!this.coroutines[evt])
|
|
318
|
-
this.coroutines[evt] = [];
|
|
319
|
-
this.coroutines[evt].push({ comp: script, main: coroutine });
|
|
320
|
-
return coroutine;
|
|
321
|
-
};
|
|
322
|
-
Context.prototype.unregisterCoroutineUpdate = function (coroutine, evt) {
|
|
323
|
-
if (!this.coroutines[evt])
|
|
324
|
-
return;
|
|
325
|
-
var idx = this.coroutines[evt].findIndex(function (c) { return c.main === coroutine; });
|
|
326
|
-
if (idx >= 0)
|
|
327
|
-
this.coroutines[evt].splice(idx, 1);
|
|
328
|
-
};
|
|
329
|
-
Context.prototype.stopAllCoroutinesFrom = function (script) {
|
|
330
|
-
for (var evt in this.coroutines) {
|
|
331
|
-
var rout = this.coroutines[evt];
|
|
332
|
-
for (var i = rout.length - 1; i >= 0; i--) {
|
|
333
|
-
var r = rout[i];
|
|
334
|
-
if (r.comp === script) {
|
|
335
|
-
rout.splice(i, 1);
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
};
|
|
340
|
-
Context.prototype.setCurrentCamera = function (cam) {
|
|
341
|
-
var _a;
|
|
342
|
-
if (!cam)
|
|
343
|
-
return;
|
|
344
|
-
if (!cam.cam)
|
|
345
|
-
cam.buildCamera(); // < to build camera
|
|
346
|
-
if (!cam.cam) {
|
|
347
|
-
console.warn("Camera component is missing camera", cam);
|
|
348
|
-
return;
|
|
349
|
-
}
|
|
350
|
-
var index = this._cameraStack.indexOf(cam);
|
|
351
|
-
if (index >= 0)
|
|
352
|
-
this._cameraStack.splice(index, 1);
|
|
353
|
-
this._cameraStack.push(cam);
|
|
354
|
-
this.mainCameraComponent = cam;
|
|
355
|
-
var camera = cam.cam;
|
|
356
|
-
if (camera.isPerspectiveCamera)
|
|
357
|
-
this.updateAspect(camera);
|
|
358
|
-
(_a = this.mainCameraComponent) === null || _a === void 0 ? void 0 : _a.applyClearFlagsIfIsActiveCamera();
|
|
359
|
-
};
|
|
360
|
-
Context.prototype.removeCamera = function (cam) {
|
|
361
|
-
if (!cam)
|
|
362
|
-
return;
|
|
363
|
-
var index = this._cameraStack.indexOf(cam);
|
|
364
|
-
if (index >= 0)
|
|
365
|
-
this._cameraStack.splice(index, 1);
|
|
366
|
-
if (this.mainCameraComponent === cam) {
|
|
367
|
-
this.mainCameraComponent = undefined;
|
|
368
|
-
if (this._cameraStack.length > 0) {
|
|
369
|
-
var last = this._cameraStack[this._cameraStack.length - 1];
|
|
370
|
-
this.setCurrentCamera(last);
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
};
|
|
374
|
-
/** use this to subscribe to onBeforeRender events on threejs objects */
|
|
375
|
-
Context.prototype.addBeforeRenderListener = function (target, callback) {
|
|
376
|
-
var _this = this;
|
|
377
|
-
if (!this._onBeforeRenderListeners[target.uuid]) {
|
|
378
|
-
this._onBeforeRenderListeners[target.uuid] = [];
|
|
379
|
-
var onBeforeRenderCallback = function (renderer, scene, camera, geometry, material, group) {
|
|
380
|
-
var arr = _this._onBeforeRenderListeners[target.uuid];
|
|
381
|
-
if (!arr)
|
|
382
|
-
return;
|
|
383
|
-
for (var i = 0; i < arr.length; i++) {
|
|
384
|
-
var fn = arr[i];
|
|
385
|
-
fn(renderer, scene, camera, geometry, material, group);
|
|
386
|
-
}
|
|
387
|
-
};
|
|
388
|
-
target.onBeforeRender = onBeforeRenderCallback;
|
|
389
|
-
}
|
|
390
|
-
this._onBeforeRenderListeners[target.uuid].push(callback);
|
|
391
|
-
};
|
|
392
|
-
Context.prototype.removeBeforeRenderListener = function (target, callback) {
|
|
393
|
-
if (this._onBeforeRenderListeners[target.uuid]) {
|
|
394
|
-
var arr = this._onBeforeRenderListeners[target.uuid];
|
|
395
|
-
var idx = arr.indexOf(callback);
|
|
396
|
-
if (idx >= 0)
|
|
397
|
-
arr.splice(idx, 1);
|
|
398
|
-
}
|
|
399
|
-
};
|
|
400
|
-
Object.defineProperty(Context.prototype, "isRendering", {
|
|
401
|
-
get: function () { return this._isRendering; },
|
|
402
|
-
enumerable: false,
|
|
403
|
-
configurable: true
|
|
404
|
-
});
|
|
405
|
-
Context.prototype.setRequireDepth = function (val) {
|
|
406
|
-
this._requireDepthTexture = val;
|
|
407
|
-
};
|
|
408
|
-
Context.prototype.setRequireColor = function (val) {
|
|
409
|
-
this._requireColorTexture = val;
|
|
410
|
-
};
|
|
411
|
-
Object.defineProperty(Context.prototype, "depthTexture", {
|
|
412
|
-
get: function () {
|
|
413
|
-
var _a;
|
|
414
|
-
return ((_a = this._renderTarget) === null || _a === void 0 ? void 0 : _a.depthTexture) || null;
|
|
415
|
-
},
|
|
416
|
-
enumerable: false,
|
|
417
|
-
configurable: true
|
|
418
|
-
});
|
|
419
|
-
Object.defineProperty(Context.prototype, "opaqueColorTexture", {
|
|
420
|
-
get: function () {
|
|
421
|
-
var _a;
|
|
422
|
-
return ((_a = this._renderTarget) === null || _a === void 0 ? void 0 : _a.texture) || null;
|
|
423
|
-
},
|
|
424
|
-
enumerable: false,
|
|
425
|
-
configurable: true
|
|
426
|
-
});
|
|
427
|
-
Context.prototype.internalOnCreate = function (buildScene, opts) {
|
|
428
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
429
|
-
var prepare_succeeded, err_1, i, script, arr, i, renderPass;
|
|
430
|
-
return __generator(this, function (_a) {
|
|
431
|
-
switch (_a.label) {
|
|
432
|
-
case 0:
|
|
433
|
-
// TODO: we could configure if we need physics
|
|
434
|
-
return [4 /*yield*/, this.physics.createWorld()];
|
|
435
|
-
case 1:
|
|
436
|
-
// TODO: we could configure if we need physics
|
|
437
|
-
_a.sent();
|
|
438
|
-
prepare_succeeded = true;
|
|
439
|
-
_a.label = 2;
|
|
440
|
-
case 2:
|
|
441
|
-
_a.trys.push([2, 5, , 6]);
|
|
442
|
-
Context.Current = this;
|
|
443
|
-
if (!buildScene) return [3 /*break*/, 4];
|
|
444
|
-
return [4 /*yield*/, buildScene(this, opts)];
|
|
445
|
-
case 3:
|
|
446
|
-
_a.sent();
|
|
447
|
-
_a.label = 4;
|
|
448
|
-
case 4: return [3 /*break*/, 6];
|
|
449
|
-
case 5:
|
|
450
|
-
err_1 = _a.sent();
|
|
451
|
-
console.error(err_1);
|
|
452
|
-
prepare_succeeded = false;
|
|
453
|
-
return [3 /*break*/, 6];
|
|
454
|
-
case 6:
|
|
455
|
-
if (!prepare_succeeded)
|
|
456
|
-
return [2 /*return*/];
|
|
457
|
-
// console.log(prepare_succeeded);
|
|
458
|
-
if (!this.isManagedExternally)
|
|
459
|
-
this.domElement.prepend(this.renderer.domElement);
|
|
460
|
-
engine_networking_instantiate_1.beginListenInstantiate(this);
|
|
461
|
-
engine_networking_instantiate_1.beginListenDestroy(this);
|
|
462
|
-
engine_networking_files_1.beginListenFileSpawn(this);
|
|
463
|
-
// Setup
|
|
464
|
-
Context._current = this;
|
|
465
|
-
for (i = 0; i < this.new_scripts.length; i++) {
|
|
466
|
-
script = this.new_scripts[i];
|
|
467
|
-
if (script.gameObject !== undefined && script.gameObject !== null) {
|
|
468
|
-
if (script.gameObject.userData === undefined)
|
|
469
|
-
script.gameObject.userData = {};
|
|
470
|
-
if (script.gameObject.userData.components === undefined)
|
|
471
|
-
script.gameObject.userData.components = [];
|
|
472
|
-
arr = script.gameObject.userData.components;
|
|
473
|
-
if (!arr.includes(script))
|
|
474
|
-
arr.push(script);
|
|
475
|
-
}
|
|
476
|
-
// if (script.gameObject && !this.raycastTargets.includes(script.gameObject)) {
|
|
477
|
-
// this.raycastTargets.push(script.gameObject);
|
|
478
|
-
// }
|
|
479
|
-
}
|
|
480
|
-
if (!this.post_setup_callbacks) return [3 /*break*/, 10];
|
|
481
|
-
i = 0;
|
|
482
|
-
_a.label = 7;
|
|
483
|
-
case 7:
|
|
484
|
-
if (!(i < this.post_setup_callbacks.length)) return [3 /*break*/, 10];
|
|
485
|
-
Context._current = this;
|
|
486
|
-
return [4 /*yield*/, this.post_setup_callbacks[i](this)];
|
|
487
|
-
case 8:
|
|
488
|
-
_a.sent();
|
|
489
|
-
_a.label = 9;
|
|
490
|
-
case 9:
|
|
491
|
-
i++;
|
|
492
|
-
return [3 /*break*/, 7];
|
|
493
|
-
case 10:
|
|
494
|
-
if (!this.mainCamera) {
|
|
495
|
-
// console.error("MISSING camera", this);
|
|
496
|
-
// return;
|
|
497
|
-
// Context._current = this;
|
|
498
|
-
// //@ts-ignore
|
|
499
|
-
// const cams = findObjectsOfType(Camera, this);
|
|
500
|
-
// console.log(cams);
|
|
501
|
-
// // get main camera, fallback to first camera
|
|
502
|
-
// const mc: Camera = cams.find(c => c.tag == "MainCamera") ?? cams.find(_ => true) as Camera;
|
|
503
|
-
// if (mc) {
|
|
504
|
-
// if (mc.tag !== "MainCamera")
|
|
505
|
-
// console.warn("No mainCamera configured. Some components rely on a mainCamera object being present. " +
|
|
506
|
-
// "When exporting your scene, make sure to set the mainCamera tag on your camera. Using \"" + mc.name + "\" as mainCamera now.");
|
|
507
|
-
// this.setCurrentCamera(mc);
|
|
508
|
-
// }
|
|
509
|
-
// else {
|
|
510
|
-
// console.error("No camera found");
|
|
511
|
-
// const cam = createCameraWithOrbitControl(this.scene);
|
|
512
|
-
// this.setCurrentCamera(cam);
|
|
513
|
-
// }
|
|
514
|
-
}
|
|
515
|
-
Context._current = this;
|
|
516
|
-
looputils.processNewScripts(this);
|
|
517
|
-
// const mainCam = this.mainCameraComponent as Camera;
|
|
518
|
-
// if (mainCam) {
|
|
519
|
-
// mainCam.applyClearFlagsIfIsActiveCamera();
|
|
520
|
-
// }
|
|
521
|
-
if (!this.isManagedExternally && this.composer && this.mainCamera) {
|
|
522
|
-
renderPass = new RenderPass_1.RenderPass(this.scene, this.mainCamera);
|
|
523
|
-
this.renderer.setSize(this.domWidth, this.domHeight);
|
|
524
|
-
this.composer.addPass(renderPass);
|
|
525
|
-
this.composer.setSize(this.domWidth, this.domHeight);
|
|
526
|
-
}
|
|
527
|
-
this._sizeChanged = true;
|
|
528
|
-
if (this._stats) {
|
|
529
|
-
this._stats.showPanel(1);
|
|
530
|
-
this.domElement.appendChild(this._stats.dom);
|
|
531
|
-
}
|
|
532
|
-
this.renderer.setAnimationLoop(this.render.bind(this));
|
|
533
|
-
if (debug)
|
|
534
|
-
engine_three_utils_1.logHierarchy(this.scene, true);
|
|
535
|
-
return [2 /*return*/];
|
|
536
|
-
}
|
|
537
|
-
});
|
|
538
|
-
});
|
|
539
|
-
};
|
|
540
|
-
Context.prototype.render = function (_, frame) {
|
|
541
|
-
var _a, _b;
|
|
542
|
-
(_a = this._stats) === null || _a === void 0 ? void 0 : _a.begin();
|
|
543
|
-
Context._current = this;
|
|
544
|
-
this.time.update();
|
|
545
|
-
looputils.processNewScripts(this);
|
|
546
|
-
looputils.updateIsActive();
|
|
547
|
-
looputils.processStart(this);
|
|
548
|
-
while (this._cameraStack.length > 0 && (!this.mainCameraComponent || this.mainCameraComponent.destroyed)) {
|
|
549
|
-
this._cameraStack.splice(this._cameraStack.length - 1, 1);
|
|
550
|
-
var last = this._cameraStack[this._cameraStack.length - 1];
|
|
551
|
-
this.setCurrentCamera(last);
|
|
552
|
-
}
|
|
553
|
-
if (this.pre_update_callbacks) {
|
|
554
|
-
for (var i in this.pre_update_callbacks) {
|
|
555
|
-
this.pre_update_callbacks[i]();
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
for (var i = 0; i < this.scripts_earlyUpdate.length; i++) {
|
|
559
|
-
var script = this.scripts_earlyUpdate[i];
|
|
560
|
-
if (!script.activeAndEnabled)
|
|
561
|
-
continue;
|
|
562
|
-
if (script.earlyUpdate !== undefined) {
|
|
563
|
-
Context._current = this;
|
|
564
|
-
script.earlyUpdate();
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
this.executeCoroutines(FrameEvent.EarlyUpdate);
|
|
568
|
-
for (var i = 0; i < this.scripts_update.length; i++) {
|
|
569
|
-
var script = this.scripts_update[i];
|
|
570
|
-
if (!script.activeAndEnabled)
|
|
571
|
-
continue;
|
|
572
|
-
if (script.update !== undefined) {
|
|
573
|
-
Context._current = this;
|
|
574
|
-
script.update();
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
this.executeCoroutines(FrameEvent.Update);
|
|
578
|
-
for (var i = 0; i < this.scripts_lateUpdate.length; i++) {
|
|
579
|
-
var script = this.scripts_lateUpdate[i];
|
|
580
|
-
if (!script.activeAndEnabled)
|
|
581
|
-
continue;
|
|
582
|
-
if (script.lateUpdate !== undefined) {
|
|
583
|
-
Context._current = this;
|
|
584
|
-
script.lateUpdate();
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
// this.mainLight = null;
|
|
588
|
-
this.executeCoroutines(FrameEvent.LateUpdate);
|
|
589
|
-
try {
|
|
590
|
-
var physicsSteps = 1;
|
|
591
|
-
var dt = this.time.deltaTime / physicsSteps;
|
|
592
|
-
for (var i = 0; i < physicsSteps; i++) {
|
|
593
|
-
this.executeCoroutines(FrameEvent.PrePhysicsStep);
|
|
594
|
-
this.physics.step(dt);
|
|
595
|
-
this.executeCoroutines(FrameEvent.PostPhysicsStep);
|
|
596
|
-
}
|
|
597
|
-
}
|
|
598
|
-
catch (err) {
|
|
599
|
-
console.error(err);
|
|
600
|
-
}
|
|
601
|
-
this.physics.postStep();
|
|
602
|
-
// should we move these callbacks in the regular three onBeforeRender events?
|
|
603
|
-
for (var i = 0; i < this.scripts_onBeforeRender.length; i++) {
|
|
604
|
-
var script = this.scripts_onBeforeRender[i];
|
|
605
|
-
if (!script.activeAndEnabled)
|
|
606
|
-
continue;
|
|
607
|
-
// if(script.isActiveAndEnabled === false) continue;
|
|
608
|
-
if (script.onBeforeRender !== undefined) {
|
|
609
|
-
Context._current = this;
|
|
610
|
-
script.onBeforeRender(frame);
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
|
-
this.executeCoroutines(FrameEvent.OnBeforeRender);
|
|
614
|
-
if (this._sizeChanged)
|
|
615
|
-
this.updateSize();
|
|
616
|
-
if (this.pre_render_callbacks) {
|
|
617
|
-
for (var i in this.pre_render_callbacks) {
|
|
618
|
-
this.pre_render_callbacks[i]();
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
this._isRendering = true;
|
|
622
|
-
this.renderRequiredTextures();
|
|
623
|
-
if (!this.isManagedExternally) {
|
|
624
|
-
if (this.composer && !this.isInXR) {
|
|
625
|
-
this.composer.render();
|
|
626
|
-
}
|
|
627
|
-
else if (this.mainCamera) {
|
|
628
|
-
this.renderer.render(this.scene, this.mainCamera);
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
|
-
this._isRendering = false;
|
|
632
|
-
for (var i = 0; i < this.scripts_onAfterRender.length; i++) {
|
|
633
|
-
var script = this.scripts_onAfterRender[i];
|
|
634
|
-
if (!script.activeAndEnabled)
|
|
635
|
-
continue;
|
|
636
|
-
if (script.onAfterRender !== undefined) {
|
|
637
|
-
Context._current = this;
|
|
638
|
-
script.onAfterRender();
|
|
639
|
-
}
|
|
640
|
-
}
|
|
641
|
-
this.executeCoroutines(FrameEvent.OnAfterRender);
|
|
642
|
-
if (this.post_render_callbacks) {
|
|
643
|
-
for (var i in this.post_render_callbacks) {
|
|
644
|
-
this.post_render_callbacks[i]();
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
this.connection.sendBufferedMessagesNow();
|
|
648
|
-
(_b = this._stats) === null || _b === void 0 ? void 0 : _b.end();
|
|
649
|
-
};
|
|
650
|
-
Context.prototype.renderRequiredTextures = function () {
|
|
651
|
-
if (!this.mainCamera)
|
|
652
|
-
return;
|
|
653
|
-
if (!this._requireDepthTexture && !this._requireColorTexture)
|
|
654
|
-
return;
|
|
655
|
-
if (!this._renderTarget) {
|
|
656
|
-
this._renderTarget = new THREE.WebGLRenderTarget(this.domWidth, this.domHeight);
|
|
657
|
-
if (this._requireDepthTexture) {
|
|
658
|
-
var dt = new three_1.DepthTexture(this.domWidth, this.domHeight);
|
|
659
|
-
;
|
|
660
|
-
this._renderTarget.depthTexture = dt;
|
|
661
|
-
}
|
|
662
|
-
if (this._requireColorTexture) {
|
|
663
|
-
this._renderTarget.texture = new THREE.Texture();
|
|
664
|
-
this._renderTarget.texture.generateMipmaps = false;
|
|
665
|
-
this._renderTarget.texture.minFilter = THREE.NearestFilter;
|
|
666
|
-
this._renderTarget.texture.magFilter = THREE.NearestFilter;
|
|
667
|
-
this._renderTarget.texture.format = THREE.RGBAFormat;
|
|
668
|
-
}
|
|
669
|
-
}
|
|
670
|
-
var rt = this._renderTarget;
|
|
671
|
-
if (rt.texture) {
|
|
672
|
-
rt.texture.encoding = this.renderer.outputEncoding;
|
|
673
|
-
}
|
|
674
|
-
var prevTarget = this.renderer.getRenderTarget();
|
|
675
|
-
this.renderer.setRenderTarget(rt);
|
|
676
|
-
this.renderer.render(this.scene, this.mainCamera);
|
|
677
|
-
this.renderer.setRenderTarget(prevTarget);
|
|
678
|
-
};
|
|
679
|
-
Context.prototype.executeCoroutines = function (evt) {
|
|
680
|
-
if (this.coroutines[evt]) {
|
|
681
|
-
var evts = this.coroutines[evt];
|
|
682
|
-
for (var i = 0; i < evts.length; i++) {
|
|
683
|
-
var evt_1 = evts[i];
|
|
684
|
-
var remove = !evt_1.comp || evt_1.comp.destroyed || !evt_1.main || evt_1.comp["enabled"] === false;
|
|
685
|
-
if (remove) {
|
|
686
|
-
evts.splice(i, 1);
|
|
687
|
-
--i;
|
|
688
|
-
continue;
|
|
689
|
-
}
|
|
690
|
-
var iter = evt_1.chained;
|
|
691
|
-
if (iter && iter.length > 0) {
|
|
692
|
-
var last = iter[iter.length - 1];
|
|
693
|
-
var res_1 = last.next();
|
|
694
|
-
if (res_1.done) {
|
|
695
|
-
iter.pop();
|
|
696
|
-
}
|
|
697
|
-
if (isGenerator(res_1)) {
|
|
698
|
-
if (!evt_1.chained)
|
|
699
|
-
evt_1.chained = [];
|
|
700
|
-
evt_1.chained.push(res_1.value);
|
|
701
|
-
}
|
|
702
|
-
if (!res_1.done)
|
|
703
|
-
continue;
|
|
704
|
-
}
|
|
705
|
-
var res = evt_1.main.next();
|
|
706
|
-
if (res.done === true) {
|
|
707
|
-
evts.splice(i, 1);
|
|
708
|
-
--i;
|
|
709
|
-
continue;
|
|
710
|
-
}
|
|
711
|
-
var val = res.value;
|
|
712
|
-
if (isGenerator(val)) {
|
|
713
|
-
// invoke once if its a generator
|
|
714
|
-
// this means e.g. WaitForFrame(1) works and will capture
|
|
715
|
-
// the frame it was created
|
|
716
|
-
var gen = val;
|
|
717
|
-
var res_2 = gen.next();
|
|
718
|
-
if (res_2.done)
|
|
719
|
-
continue;
|
|
720
|
-
if (!evt_1.chained)
|
|
721
|
-
evt_1.chained = [];
|
|
722
|
-
evt_1.chained.push(val);
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
}
|
|
726
|
-
function isGenerator(val) {
|
|
727
|
-
if (val) {
|
|
728
|
-
if (val.next && val["return"]) {
|
|
729
|
-
return true;
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
return false;
|
|
733
|
-
}
|
|
734
|
-
};
|
|
735
|
-
return Context;
|
|
736
|
-
}());
|
|
737
|
-
exports.Context = Context;
|
|
738
|
-
// const scene = new THREE.Scene();
|
|
739
|
-
// const useComposer = utils.getParam("postfx");
|
|
740
|
-
// const renderer = new WebGLRenderer({ antialias: true });
|
|
741
|
-
// const composer = useComposer ? new EffectComposer(renderer) : undefined;
|
|
742
|
-
// renderer.setClearColor(new THREE.Color('lightgrey'), 0)
|
|
743
|
-
// renderer.antialias = true;
|
|
744
|
-
// renderer.alpha = false;
|
|
745
|
-
// renderer.shadowMap.enabled = true;
|
|
746
|
-
// renderer.shadowMap.type = THREE.PCFSoftShadowMap;
|
|
747
|
-
// renderer.setSize(window.innerWidth, window.innerHeight);
|
|
748
|
-
// renderer.outputEncoding = THREE.sRGBEncoding;
|
|
749
|
-
// renderer.physicallyCorrectLights = true;
|
|
750
|
-
// document.body.appendChild(renderer.domElement);
|
|
751
|
-
// // generation pushes loading requests in this array
|
|
752
|
-
// const sceneData: {
|
|
753
|
-
// mainCamera: THREE.Camera | undefined
|
|
754
|
-
// } = {
|
|
755
|
-
// preparing: [],
|
|
756
|
-
// resolving: [],
|
|
757
|
-
// scripts: [],
|
|
758
|
-
// raycastTargets: [],
|
|
759
|
-
// mainCamera: undefined,
|
|
760
|
-
// mainCameraComponent: undefined,
|
|
761
|
-
// };
|
|
762
|
-
// // contains a list of functions to be called after loading is done
|
|
763
|
-
// const post_setup_callbacks = [];
|
|
764
|
-
// const pre_render_Callbacks = [];
|
|
765
|
-
// const post_render_callbacks = [];
|
|
766
|
-
// const new_scripts = [];
|
|
767
|
-
// const new_scripts_post_setup_callbacks = [];
|
|
768
|
-
// const new_scripts_pre_setup_callbacks = [];
|
|
769
|
-
// export {
|
|
770
|
-
// scene, renderer, composer,
|
|
771
|
-
// new_scripts,
|
|
772
|
-
// new_scripts_post_setup_callbacks, new_scripts_pre_setup_callbacks,
|
|
773
|
-
// sceneData,
|
|
774
|
-
// post_setup_callbacks,
|
|
775
|
-
// pre_render_Callbacks,
|
|
776
|
-
// post_render_callbacks
|
|
777
|
-
// }
|