babylonjs-editor-tools 5.1.10 → 5.2.1
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/build/index.node.js +1 -1
- package/build/src/cinematic/cinematic.js +21 -0
- package/build/src/cinematic/cinematic.js.map +1 -0
- package/build/src/cinematic/events/event.js +4 -0
- package/build/src/cinematic/events/event.js.map +1 -0
- package/build/src/cinematic/generate.js +65 -12
- package/build/src/cinematic/generate.js.map +1 -1
- package/build/src/cinematic/parse.js +34 -32
- package/build/src/cinematic/parse.js.map +1 -1
- package/build/src/cinematic/tools.js +20 -0
- package/build/src/cinematic/tools.js.map +1 -1
- package/build/src/decorators/apply.js +44 -3
- package/build/src/decorators/apply.js.map +1 -1
- package/build/src/decorators/sprite.js +31 -0
- package/build/src/decorators/sprite.js.map +1 -0
- package/build/src/index.js +3 -0
- package/build/src/index.js.map +1 -1
- package/build/src/loading/loader.js +17 -3
- package/build/src/loading/loader.js.map +1 -1
- package/build/src/loading/script.js +38 -22
- package/build/src/loading/script.js.map +1 -1
- package/build/src/loading/shadows.js +26 -16
- package/build/src/loading/shadows.js.map +1 -1
- package/build/src/loading/sound.js +17 -10
- package/build/src/loading/sound.js.map +1 -1
- package/build/src/loading/sprite-manager.js +78 -0
- package/build/src/loading/sprite-manager.js.map +1 -0
- package/build/src/loading/sprite-map.js +59 -0
- package/build/src/loading/sprite-map.js.map +1 -0
- package/build/src/loading/texture.js +51 -46
- package/build/src/loading/texture.js.map +1 -1
- package/build/src/tools/guards.js +7 -0
- package/build/src/tools/guards.js.map +1 -1
- package/build/src/tools/sprite.js +27 -0
- package/build/src/tools/sprite.js.map +1 -0
- package/declaration/src/cinematic/cinematic.d.ts +14 -0
- package/declaration/src/cinematic/events/event.d.ts +5 -0
- package/declaration/src/cinematic/generate.d.ts +2 -2
- package/declaration/src/cinematic/parse.d.ts +2 -1
- package/declaration/src/cinematic/tools.d.ts +3 -0
- package/declaration/src/cinematic/typings.d.ts +2 -0
- package/declaration/src/decorators/apply.d.ts +17 -1
- package/declaration/src/decorators/sprite.d.ts +18 -0
- package/declaration/src/index.d.ts +3 -0
- package/declaration/src/loading/loader.d.ts +15 -12
- package/declaration/src/loading/script.d.ts +20 -4
- package/declaration/src/loading/shadows.d.ts +1 -1
- package/declaration/src/loading/sound.d.ts +1 -1
- package/declaration/src/loading/sprite-manager.d.ts +1 -0
- package/declaration/src/loading/sprite-map.d.ts +1 -0
- package/declaration/src/loading/texture.d.ts +1 -1
- package/declaration/src/script.d.ts +6 -2
- package/declaration/src/tools/guards.d.ts +6 -0
- package/declaration/src/tools/sprite.d.ts +48 -0
- package/package.json +3 -3
|
@@ -5,7 +5,7 @@ import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
|
|
|
5
5
|
import { NodeParticleSystemSet } from "@babylonjs/core/Particles/Node/nodeParticleSystemSet";
|
|
6
6
|
import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
|
|
7
7
|
import { getSoundById } from "../tools/sound";
|
|
8
|
-
import { isAbstractMesh, isNode } from "../tools/guards";
|
|
8
|
+
import { isAbstractMesh, isNode, isSprite, isTransformNode } from "../tools/guards";
|
|
9
9
|
import { scriptAssetsCache } from "../loading/script";
|
|
10
10
|
export function applyDecorators(scene, object, script, instance, rootUrl) {
|
|
11
11
|
const ctor = instance.constructor;
|
|
@@ -123,6 +123,8 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
});
|
|
126
|
+
let pointerObserver = null;
|
|
127
|
+
let keyboardObserver = null;
|
|
126
128
|
// @onPointerEvent
|
|
127
129
|
if (ctor._PointerEvents?.length) {
|
|
128
130
|
const wrongMeshListener = ctor._PointerEvents.find((params) => params.options.mode === "attachedMeshOnly");
|
|
@@ -133,7 +135,7 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
|
|
|
133
135
|
if (wrongSceneListener && !isNode(object)) {
|
|
134
136
|
throw new Error(`@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.`);
|
|
135
137
|
}
|
|
136
|
-
scene.onPointerObservable.add((pointerInfo) => {
|
|
138
|
+
pointerObserver = scene.onPointerObservable.add((pointerInfo) => {
|
|
137
139
|
let pickInfo = null;
|
|
138
140
|
ctor._PointerEvents.forEach((params) => {
|
|
139
141
|
if (!params.eventTypes.includes(pointerInfo.type)) {
|
|
@@ -167,7 +169,7 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
|
|
|
167
169
|
}
|
|
168
170
|
// @onKeyboardEvent
|
|
169
171
|
if (ctor._KeyboardEvents?.length) {
|
|
170
|
-
scene.onKeyboardObservable.add((keyboardInfo) => {
|
|
172
|
+
keyboardObserver = scene.onKeyboardObservable.add((keyboardInfo) => {
|
|
171
173
|
ctor._KeyboardEvents.forEach((params) => {
|
|
172
174
|
if (!params.eventTypes.includes(keyboardInfo.type)) {
|
|
173
175
|
return;
|
|
@@ -176,5 +178,44 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
|
|
|
176
178
|
});
|
|
177
179
|
});
|
|
178
180
|
}
|
|
181
|
+
// @spriteFromSpriteManager
|
|
182
|
+
if (ctor._SpritesFromSpriteManager?.length) {
|
|
183
|
+
const spriteManagerNode = object;
|
|
184
|
+
if (!isTransformNode(spriteManagerNode) || !spriteManagerNode.isSpriteManager) {
|
|
185
|
+
return console.error(`@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.`);
|
|
186
|
+
}
|
|
187
|
+
if (!spriteManagerNode.spriteManager) {
|
|
188
|
+
return console.error(`SpriteManagerNode "${spriteManagerNode.name}" has no sprite manager assigned.`);
|
|
189
|
+
}
|
|
190
|
+
ctor._SpritesFromSpriteManager?.forEach((params) => {
|
|
191
|
+
const sprite = spriteManagerNode.spriteManager?.sprites.find((s) => s.name === params.spriteName) || null;
|
|
192
|
+
instance[params.propertyKey.toString()] = sprite;
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
// @animationFromSprite
|
|
196
|
+
if (ctor._AnimationsFromSprite?.length) {
|
|
197
|
+
if (!isSprite(object)) {
|
|
198
|
+
return console.error(`@animationFromSprite decorator can only be used in scripts attached on Sprite.`);
|
|
199
|
+
}
|
|
200
|
+
const spriteAnimations = object.metadata?.spriteAnimations;
|
|
201
|
+
if (!spriteAnimations?.length) {
|
|
202
|
+
return console.error(`Sprite "${object.name}" has no sprite animations assigned.`);
|
|
203
|
+
}
|
|
204
|
+
ctor._AnimationsFromSprite.forEach((params) => {
|
|
205
|
+
const animation = spriteAnimations.find((a) => a.name === params.animationName);
|
|
206
|
+
if (animation) {
|
|
207
|
+
instance[params.propertyKey.toString()] = animation ?? null;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
console.warn(`Sprite animation named "${params.animationName}" not found on sprite "${object.name}".`);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
return {
|
|
215
|
+
observers: {
|
|
216
|
+
pointerObserver,
|
|
217
|
+
keyboardObserver,
|
|
218
|
+
},
|
|
219
|
+
};
|
|
179
220
|
}
|
|
180
221
|
//# sourceMappingURL=apply.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/decorators/apply.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/decorators/apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Makes the decorated property linked to the sprite that has the given name.
|
|
3
|
+
* Once the script is instantiated, the reference to the sprite is retrieved from the
|
|
4
|
+
* sprite manager and assigned to the property. Node link cant' be used in constructor.
|
|
5
|
+
* This can be used only by scripts using Classes.
|
|
6
|
+
* This can be used only on SpriteManagerNode.
|
|
7
|
+
* @param spriteName defines the name of the sprite to retrieve in scene.
|
|
8
|
+
*/
|
|
9
|
+
export function spriteFromSpriteManager(spriteName) {
|
|
10
|
+
return function (target, propertyKey) {
|
|
11
|
+
const ctor = target.constructor;
|
|
12
|
+
ctor._SpritesFromSpriteManager ??= [];
|
|
13
|
+
ctor._SpritesFromSpriteManager.push({ propertyKey, spriteName });
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Makes the decorated property linked to the sprite that has the given name.
|
|
18
|
+
* Once the script is instantiated, the reference to the sprite is retrieved from the
|
|
19
|
+
* sprite manager and assigned to the property. Node link cant' be used in constructor.
|
|
20
|
+
* This can be used only by scripts using Classes.
|
|
21
|
+
* This can be used only on SpriteManagerNode.
|
|
22
|
+
* @param spriteName defines the name of the sprite to retrieve in scene.
|
|
23
|
+
*/
|
|
24
|
+
export function animationFromSprite(animationName) {
|
|
25
|
+
return function (target, propertyKey) {
|
|
26
|
+
const ctor = target.constructor;
|
|
27
|
+
ctor._AnimationsFromSprite ??= [];
|
|
28
|
+
ctor._AnimationsFromSprite.push({ propertyKey, animationName });
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=sprite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprite.js","sourceRoot":"","sources":["../../../src/decorators/sprite.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACzD,OAAO,UAAU,MAAW,EAAE,WAA4B;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAkC,CAAC;QAEvD,IAAI,CAAC,yBAAyB,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACxD,OAAO,UAAU,MAAW,EAAE,WAA4B;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAkC,CAAC;QAEvD,IAAI,CAAC,qBAAqB,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC;AACH,CAAC"}
|
package/build/src/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from "./tools/texture";
|
|
|
6
6
|
export * from "./tools/light";
|
|
7
7
|
export * from "./tools/scalar";
|
|
8
8
|
export * from "./tools/animation";
|
|
9
|
+
export * from "./tools/sprite";
|
|
9
10
|
export * from "./rendering/ssao";
|
|
10
11
|
export * from "./rendering/ssr";
|
|
11
12
|
export * from "./rendering/motion-blur";
|
|
@@ -17,9 +18,11 @@ export * from "./decorators/sound";
|
|
|
17
18
|
export * from "./decorators/particle-systems";
|
|
18
19
|
export * from "./decorators/inspector";
|
|
19
20
|
export * from "./decorators/events";
|
|
21
|
+
export * from "./decorators/sprite";
|
|
20
22
|
export * from "./script";
|
|
21
23
|
export * from "./cinematic/parse";
|
|
22
24
|
export * from "./cinematic/typings";
|
|
23
25
|
export * from "./cinematic/generate";
|
|
24
26
|
export * from "./cinematic/guards";
|
|
27
|
+
export * from "./cinematic/cinematic";
|
|
25
28
|
//# sourceMappingURL=index.js.map
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
|
|
@@ -8,11 +8,20 @@ import { applyRenderingConfigurationForCamera } from "../rendering/tools";
|
|
|
8
8
|
import { configurePhysicsAggregate } from "./physics";
|
|
9
9
|
import { applyRenderingConfigurations } from "./rendering";
|
|
10
10
|
import { _applyScriptsForObject, _preloadScriptsAssets } from "./script";
|
|
11
|
-
import "./sound";
|
|
12
|
-
import "./texture";
|
|
13
|
-
import "./shadows";
|
|
11
|
+
import { registerAudioParser } from "./sound";
|
|
12
|
+
import { registerTextureParser } from "./texture";
|
|
13
|
+
import { registerShadowGeneratorParser } from "./shadows";
|
|
14
|
+
import { registerSpriteMapParser } from "./sprite-map";
|
|
15
|
+
import { registerSpriteManagerParser } from "./sprite-manager";
|
|
14
16
|
export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, options) {
|
|
15
17
|
scene.loadingQuality = options?.quality ?? "high";
|
|
18
|
+
scene.loadingTexturesQuality = options?.texturesQuality ?? scene.loadingQuality;
|
|
19
|
+
scene.loadingShadowsQuality = options?.shadowsQuality ?? scene.loadingQuality;
|
|
20
|
+
registerAudioParser();
|
|
21
|
+
registerTextureParser();
|
|
22
|
+
registerShadowGeneratorParser();
|
|
23
|
+
registerSpriteMapParser();
|
|
24
|
+
registerSpriteManagerParser();
|
|
16
25
|
await AppendSceneAsync(`${rootUrl}${sceneFilename}`, scene, {
|
|
17
26
|
pluginExtension: ".babylon",
|
|
18
27
|
onProgress: (event) => {
|
|
@@ -65,5 +74,10 @@ export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, optio
|
|
|
65
74
|
scene.cameras.forEach((camera) => {
|
|
66
75
|
_applyScriptsForObject(scene, camera, scriptsMap, rootUrl);
|
|
67
76
|
});
|
|
77
|
+
scene.spriteManagers?.forEach((spriteManager) => {
|
|
78
|
+
spriteManager.sprites.forEach((sprite) => {
|
|
79
|
+
_applyScriptsForObject(scene, sprite, scriptsMap, rootUrl);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
68
82
|
}
|
|
69
83
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,25 +58,20 @@ export function _applyScriptsForObject(scene, object, scriptsMap, rootUrl) {
|
|
|
58
58
|
if (!exports) {
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
+
let result = exports;
|
|
62
|
+
let observers = {};
|
|
61
63
|
if (exports.default) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (instance.onStart) {
|
|
66
|
-
scene.onBeforeRenderObservable.addOnce(() => instance.onStart());
|
|
67
|
-
}
|
|
68
|
-
if (instance.onUpdate) {
|
|
69
|
-
scene.onBeforeRenderObservable.add(() => instance.onUpdate());
|
|
70
|
-
}
|
|
64
|
+
result = new exports.default(object);
|
|
65
|
+
const decoratorsResult = applyDecorators(scene, object, script, result, rootUrl);
|
|
66
|
+
Object.assign(observers, decoratorsResult?.observers ?? {});
|
|
71
67
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
scene.onBeforeRenderObservable.addOnce(() => exports.onStart(object));
|
|
75
|
-
}
|
|
76
|
-
if (exports.onUpdate) {
|
|
77
|
-
scene.onBeforeRenderObservable.add(() => exports.onUpdate(object));
|
|
78
|
-
}
|
|
68
|
+
if (result.onStart) {
|
|
69
|
+
observers.onStartObserver = scene.onBeforeRenderObservable.addOnce(() => result.onStart(object));
|
|
79
70
|
}
|
|
71
|
+
if (result.onUpdate) {
|
|
72
|
+
observers.onUpdateObserver = scene.onBeforeRenderObservable.add(() => result.onUpdate(object));
|
|
73
|
+
}
|
|
74
|
+
_registerScriptInstance(object, result, script.key, observers);
|
|
80
75
|
});
|
|
81
76
|
object.metadata.scripts = undefined;
|
|
82
77
|
}
|
|
@@ -112,13 +107,12 @@ export const scriptsDictionary = new Map();
|
|
|
112
107
|
/**
|
|
113
108
|
* When a scene is being loaded, scripts that were attached to objects in the scene using the Editor are processed.
|
|
114
109
|
* This function registers the instance of scripts per object in order to retrieve them later.
|
|
115
|
-
* @
|
|
116
|
-
* @param scriptInstance defines the instance of the script to register.
|
|
117
|
-
* @param key defines the key of the script. This value is used to identify the script.
|
|
110
|
+
* @internal
|
|
118
111
|
*/
|
|
119
|
-
export function
|
|
112
|
+
export function _registerScriptInstance(object, scriptInstance, key, observers) {
|
|
120
113
|
const registeredScript = {
|
|
121
114
|
key,
|
|
115
|
+
observers,
|
|
122
116
|
instance: scriptInstance,
|
|
123
117
|
};
|
|
124
118
|
if (!scriptsDictionary.has(object)) {
|
|
@@ -127,14 +121,36 @@ export function registerScriptInstance(object, scriptInstance, key) {
|
|
|
127
121
|
else {
|
|
128
122
|
scriptsDictionary.get(object).push(registeredScript);
|
|
129
123
|
}
|
|
130
|
-
object.__editorRunningScripts ??= [];
|
|
131
|
-
object.__editorRunningScripts.push(registeredScript);
|
|
132
124
|
if (isNode(object) || isAnyParticleSystem(object) || isScene(object)) {
|
|
133
125
|
object.onDisposeObservable.addOnce((() => {
|
|
126
|
+
scriptsDictionary.get(object)?.forEach((s) => {
|
|
127
|
+
_removeRegisteredScriptInstance(object, s);
|
|
128
|
+
});
|
|
134
129
|
scriptsDictionary.delete(object);
|
|
135
130
|
}));
|
|
136
131
|
}
|
|
137
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* When a node is disposed, or for hot reload purpose, the script should be unregistered and all observers removed.
|
|
135
|
+
* @internal
|
|
136
|
+
*/
|
|
137
|
+
export function _removeRegisteredScriptInstance(object, registeredScript) {
|
|
138
|
+
registeredScript.observers.onStartObserver?.remove();
|
|
139
|
+
registeredScript.observers.onUpdateObserver?.remove();
|
|
140
|
+
registeredScript.observers.pointerObserver?.remove();
|
|
141
|
+
registeredScript.observers.keyboardObserver?.remove();
|
|
142
|
+
try {
|
|
143
|
+
registeredScript.instance.onStop?.(object);
|
|
144
|
+
}
|
|
145
|
+
catch (e) {
|
|
146
|
+
console.error(`Failed to call onStop for script ${registeredScript.key} on object ${object}`, e);
|
|
147
|
+
}
|
|
148
|
+
const runningScripts = scriptsDictionary.get(object);
|
|
149
|
+
const index = runningScripts?.indexOf(registeredScript) ?? -1;
|
|
150
|
+
if (index !== -1) {
|
|
151
|
+
runningScripts?.splice(index, 1);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
138
154
|
/**
|
|
139
155
|
* Returns all the instances of the script attached to the given object that matches the given class type.
|
|
140
156
|
* The same script can be attached multiple times to the same object. If you ensure that ONLY DISTINCT scripts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/loading/script.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/loading/script.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAIvE;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAe,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAAY,EAAE,OAAe;IACxE,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnG,MAAM,OAAO,GAAG,KAAK;SACnB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;SAChD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SACpC,IAAI,EAAE,CAAC;IAET,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,SAAS;YACV,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACvC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QACpC,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO;QACR,CAAC;QAED,QAAQ,CAAC,IAAI,CACZ,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;gBACjD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEnC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,OAAO,EAAE,CAAC;QACX,CAAC,CAAC,CACF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAY,EAAE,MAAW,EAAE,UAAqB,EAAE,OAAe;IACvG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC/B,OAAO;IACR,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO;QACR,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO;QACR,CAAC;QAED,IAAI,MAAM,GAAG,OAAO,CAAC;QACrB,IAAI,SAAS,GAA+B,EAAE,CAAC;QAE/C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAErC,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACjF,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACnG,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,SAAS,CAAC,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACjG,CAAC;QAED,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;AACrC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAW,EAAE,iBAA4C,EAAE,KAAa;IAC3G,KAAK,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG;QACd,MAAM,EAAE,EAAE;KACV,CAAC;IAEF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAErD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAwBD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAuD,CAAC;AAEhG;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAW,EAAE,cAAuB,EAAE,GAAW,EAAE,SAAqC;IAC/H,MAAM,gBAAgB,GAAG;QACxB,GAAG;QACH,SAAS;QACT,QAAQ,EAAE,cAAc;KACH,CAAC;IAEvB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACP,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACtE,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE;YACxC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5C,+BAA+B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,CAAQ,CAAC,CAAC;IACZ,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAAC,MAAW,EAAE,gBAAmC;IAC/F,gBAAgB,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACrD,gBAAgB,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAEtD,gBAAgB,CAAC,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACrD,gBAAgB,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAEtD,IAAI,CAAC;QACJ,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,oCAAoC,gBAAgB,CAAC,GAAG,cAAc,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,6BAA6B,CAAsC,MAAW,EAAE,SAAY;IAC3G,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;IAEzE,OAAQ,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAuB,IAAI,IAAI,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,yBAAyB,CAAsC,MAAW,EAAE,SAAY;IACvG,MAAM,MAAM,GAAG,6BAA6B,CAAI,MAAM,EAAE,SAAS,CAAC,CAAC;IACnE,OAAQ,MAAM,EAAE,CAAC,CAAC,CAAqB,IAAI,IAAI,CAAC;AACjD,CAAC"}
|
|
@@ -1,21 +1,31 @@
|
|
|
1
1
|
import { SceneComponentConstants } from "@babylonjs/core/sceneComponent";
|
|
2
2
|
import { GetParser, AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
|
|
3
3
|
import { getPowerOfTwoUntil } from "../tools/scalar";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (
|
|
7
|
-
|
|
8
|
-
switch (scene.loadingQuality) {
|
|
9
|
-
case "medium":
|
|
10
|
-
shadowGenerator.mapSize = shadowGenerator.mapSize * 0.5;
|
|
11
|
-
break;
|
|
12
|
-
case "low":
|
|
13
|
-
shadowGenerator.mapSize = shadowGenerator.mapSize * 0.25;
|
|
14
|
-
break;
|
|
15
|
-
}
|
|
16
|
-
shadowGenerator.mapSize = Math.max(128, getPowerOfTwoUntil(shadowGenerator.mapSize));
|
|
17
|
-
});
|
|
4
|
+
let registered = false;
|
|
5
|
+
export function registerShadowGeneratorParser() {
|
|
6
|
+
if (registered) {
|
|
7
|
+
return;
|
|
18
8
|
}
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
registered = true;
|
|
10
|
+
const shadowsGeneratorParser = GetParser(SceneComponentConstants.NAME_SHADOWGENERATOR);
|
|
11
|
+
AddParser("ShadowGeneratorEditorPlugin", (parsedData, scene, container, rootUrl) => {
|
|
12
|
+
if (scene.loadingShadowsQuality !== "high") {
|
|
13
|
+
parsedData.shadowGenerators?.forEach((shadowGenerator) => {
|
|
14
|
+
switch (scene.loadingShadowsQuality) {
|
|
15
|
+
case "medium":
|
|
16
|
+
shadowGenerator.mapSize = shadowGenerator.mapSize * 0.5;
|
|
17
|
+
break;
|
|
18
|
+
case "low":
|
|
19
|
+
shadowGenerator.mapSize = shadowGenerator.mapSize * 0.25;
|
|
20
|
+
break;
|
|
21
|
+
case "very-low":
|
|
22
|
+
shadowGenerator.mapSize = shadowGenerator.mapSize * 0.125;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
shadowGenerator.mapSize = Math.max(128, getPowerOfTwoUntil(shadowGenerator.mapSize));
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
shadowsGeneratorParser?.(parsedData, scene, container, rootUrl);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
21
31
|
//# sourceMappingURL=shadows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadows.js","sourceRoot":"","sources":["../../../src/loading/shadows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,sBAAsB,GAAG,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"shadows.js","sourceRoot":"","sources":["../../../src/loading/shadows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,6BAA6B;IAC5C,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,sBAAsB,GAAG,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;IAEvF,SAAS,CAAC,6BAA6B,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;QACtH,IAAI,KAAK,CAAC,qBAAqB,KAAK,MAAM,EAAE,CAAC;YAC5C,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,eAAoB,EAAE,EAAE;gBAC7D,QAAQ,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACrC,KAAK,QAAQ;wBACZ,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,GAAG,CAAC;wBACxD,MAAM;oBAEP,KAAK,KAAK;wBACT,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;wBACzD,MAAM;oBAEP,KAAK,UAAU;wBACd,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;wBAC1D,MAAM;gBACR,CAAC;gBAED,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,sBAAsB,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { SceneComponentConstants } from "@babylonjs/core/sceneComponent";
|
|
2
2
|
import { GetParser, AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
let registered = false;
|
|
4
|
+
export function registerAudioParser() {
|
|
5
|
+
if (registered) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
registered = true;
|
|
9
|
+
const audioParser = GetParser(SceneComponentConstants.NAME_AUDIO);
|
|
10
|
+
AddParser("AudioEditorPlugin", (parsedData, scene, container, rootUrl) => {
|
|
11
|
+
audioParser?.(parsedData, scene, container, rootUrl);
|
|
12
|
+
parsedData.sounds?.forEach((sound) => {
|
|
13
|
+
const instance = container.sounds?.find((s) => s.name === sound.name);
|
|
14
|
+
if (instance) {
|
|
15
|
+
instance.id = sound.id;
|
|
16
|
+
instance.uniqueId = sound.uniqueId;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
12
19
|
});
|
|
13
|
-
}
|
|
20
|
+
}
|
|
14
21
|
//# sourceMappingURL=sound.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/loading/sound.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,MAAM,WAAW,GAAG,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../src/loading/sound.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,mBAAmB;IAClC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,WAAW,GAAG,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAElE,SAAS,CAAC,mBAAmB,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;QAC5G,WAAW,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAErD,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;YACtE,IAAI,QAAQ,EAAE,CAAC;gBACd,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YACpC,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Tools } from "@babylonjs/core/Misc/tools";
|
|
2
|
+
import { Sprite } from "@babylonjs/core/Sprites/sprite";
|
|
3
|
+
import { WebRequest } from "@babylonjs/core/Misc/webRequest";
|
|
4
|
+
import { SpriteManager } from "@babylonjs/core/Sprites/spriteManager";
|
|
5
|
+
import { AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
|
|
6
|
+
function parseSerializedSpriteManager(spriteManager, parsedSpriteManager) {
|
|
7
|
+
if (parsedSpriteManager?.fogEnabled !== undefined) {
|
|
8
|
+
spriteManager.fogEnabled = parsedSpriteManager?.fogEnabled;
|
|
9
|
+
}
|
|
10
|
+
if (parsedSpriteManager?.blendMode !== undefined) {
|
|
11
|
+
spriteManager.blendMode = parsedSpriteManager?.blendMode;
|
|
12
|
+
}
|
|
13
|
+
if (parsedSpriteManager?.disableDepthWrite !== undefined) {
|
|
14
|
+
spriteManager.disableDepthWrite = parsedSpriteManager?.disableDepthWrite;
|
|
15
|
+
}
|
|
16
|
+
if (parsedSpriteManager?.pixelPerfect !== undefined) {
|
|
17
|
+
spriteManager.pixelPerfect = parsedSpriteManager?.pixelPerfect;
|
|
18
|
+
}
|
|
19
|
+
if (parsedSpriteManager?.useLogarithmicDepth !== undefined) {
|
|
20
|
+
spriteManager.useLogarithmicDepth = parsedSpriteManager?.useLogarithmicDepth;
|
|
21
|
+
}
|
|
22
|
+
if (parsedSpriteManager?.metadata !== undefined) {
|
|
23
|
+
spriteManager.metadata = parsedSpriteManager?.metadata;
|
|
24
|
+
}
|
|
25
|
+
for (const parsedSprite of parsedSpriteManager?.sprites ?? []) {
|
|
26
|
+
const sprite = Sprite.Parse(parsedSprite, spriteManager);
|
|
27
|
+
sprite.uniqueId = parsedSprite.uniqueId;
|
|
28
|
+
sprite.metadata = parsedSprite.metadata;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
let registered = false;
|
|
32
|
+
export function registerSpriteManagerParser() {
|
|
33
|
+
if (registered) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
registered = true;
|
|
37
|
+
AddParser("SpriteManagerNode", (parsedData, scene, container, rootUrl) => {
|
|
38
|
+
parsedData.transformNodes?.forEach((transformNode) => {
|
|
39
|
+
if (!transformNode.isSpriteManager) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const instance = container.transformNodes?.find((t) => t.id === transformNode.id);
|
|
43
|
+
if (!instance) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
instance.isSpriteManager = transformNode.isSpriteManager;
|
|
47
|
+
if (transformNode.atlasJsonRelativePath) {
|
|
48
|
+
const atlasJsonAbsolutePath = `${rootUrl}${transformNode.atlasJsonRelativePath}`;
|
|
49
|
+
scene.addPendingData(atlasJsonAbsolutePath);
|
|
50
|
+
const atlasRequest = new WebRequest();
|
|
51
|
+
atlasRequest.open("GET", atlasJsonAbsolutePath);
|
|
52
|
+
atlasRequest.send();
|
|
53
|
+
atlasRequest.addEventListener("load", () => {
|
|
54
|
+
scene.removePendingData(atlasJsonAbsolutePath);
|
|
55
|
+
const atlasJson = JSON.parse(atlasRequest.responseText);
|
|
56
|
+
const imagePath = `${Tools.GetFolderPath(atlasJsonAbsolutePath)}${atlasJson.meta.image}`;
|
|
57
|
+
const spriteManager = new SpriteManager(instance.name, imagePath, 1000, 64, scene, undefined, undefined, true, atlasJson);
|
|
58
|
+
instance.spriteManager = spriteManager;
|
|
59
|
+
if (transformNode.spriteManager) {
|
|
60
|
+
parseSerializedSpriteManager(spriteManager, transformNode.spriteManager);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
else if (transformNode.spriteManager?.textureUrl) {
|
|
65
|
+
const imagePath = `${rootUrl}${transformNode.spriteManager.textureUrl}`;
|
|
66
|
+
const spriteManager = new SpriteManager(instance.name, imagePath, 1000, {
|
|
67
|
+
width: transformNode.spriteManager.cellWidth,
|
|
68
|
+
height: transformNode.spriteManager.cellHeight,
|
|
69
|
+
}, scene, undefined, undefined, false);
|
|
70
|
+
instance.spriteManager = spriteManager;
|
|
71
|
+
if (transformNode.spriteManager) {
|
|
72
|
+
parseSerializedSpriteManager(spriteManager, transformNode.spriteManager);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=sprite-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprite-manager.js","sourceRoot":"","sources":["../../../src/loading/sprite-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Tools } from "@babylonjs/core/Misc/tools";
|
|
2
|
+
import { Engine } from "@babylonjs/core/Engines/engine";
|
|
3
|
+
import { WebRequest } from "@babylonjs/core/Misc/webRequest";
|
|
4
|
+
import { SpriteMap } from "@babylonjs/core/Sprites/spriteMap";
|
|
5
|
+
import { Texture } from "@babylonjs/core/Materials/Textures/texture";
|
|
6
|
+
import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
|
|
7
|
+
import { AddParser } from "@babylonjs/core/Loading/Plugins/babylonFileParser.function";
|
|
8
|
+
import { normalizeAtlasJson } from "../tools/sprite";
|
|
9
|
+
let registered = false;
|
|
10
|
+
export function registerSpriteMapParser() {
|
|
11
|
+
if (registered) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
registered = true;
|
|
15
|
+
AddParser("SpriteMapNode", (parsedData, scene, container, rootUrl) => {
|
|
16
|
+
parsedData.transformNodes?.forEach((transformNode) => {
|
|
17
|
+
if (!transformNode.isSpriteMap) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const instance = container.transformNodes?.find((t) => t.id === transformNode.id);
|
|
21
|
+
if (!instance) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
instance.isSpriteMap = transformNode.isSpriteMap;
|
|
25
|
+
const atlasJsonAbsolutePath = `${rootUrl}${transformNode.atlasJsonRelativePath}`;
|
|
26
|
+
scene.addPendingData(atlasJsonAbsolutePath);
|
|
27
|
+
const atlasRequest = new WebRequest();
|
|
28
|
+
atlasRequest.open("GET", atlasJsonAbsolutePath);
|
|
29
|
+
atlasRequest.send();
|
|
30
|
+
atlasRequest.addEventListener("load", () => {
|
|
31
|
+
scene.removePendingData(atlasJsonAbsolutePath);
|
|
32
|
+
const atlasJson = JSON.parse(atlasRequest.responseText);
|
|
33
|
+
normalizeAtlasJson(atlasJson);
|
|
34
|
+
const imagePath = `${Tools.GetFolderPath(atlasJsonAbsolutePath)}${atlasJson.meta.image}`;
|
|
35
|
+
const spritesheet = new Texture(imagePath, scene, false, false, Texture.NEAREST_NEAREST, null, null, null, false, Engine.TEXTUREFORMAT_RGBA);
|
|
36
|
+
const spriteMap = new SpriteMap(instance.name, atlasJson, spritesheet, {
|
|
37
|
+
layerCount: transformNode.options.layerCount,
|
|
38
|
+
stageSize: Vector2.FromArray(transformNode.options.stageSize ?? [10, 1]),
|
|
39
|
+
outputSize: Vector2.FromArray(transformNode.options.outputSize ?? [100, 100]),
|
|
40
|
+
colorMultiply: Vector3.FromArray(transformNode.options.colorMultiply ?? [1, 1, 1]),
|
|
41
|
+
flipU: true,
|
|
42
|
+
}, scene);
|
|
43
|
+
transformNode.tiles.forEach((tile) => {
|
|
44
|
+
for (let x = 0, lenX = tile.repeatCount.x + 1; x < lenX; ++x) {
|
|
45
|
+
for (let y = 0, lenY = tile.repeatCount.y + 1; y < lenY; ++y) {
|
|
46
|
+
const offsetX = x * (tile.repeatOffset.x + 1);
|
|
47
|
+
const offsetY = y * (tile.repeatOffset.y + 1);
|
|
48
|
+
spriteMap.changeTiles(tile.layer, new Vector2(tile.position.x + offsetX, (spriteMap.options.stageSize?.y ?? 0) - 1 - tile.position.y - offsetY), tile.tile);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
const outputPlane = spriteMap["_output"];
|
|
53
|
+
outputPlane.parent = instance;
|
|
54
|
+
instance.spriteMap = spriteMap;
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=sprite-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprite-map.js","sourceRoot":"","sources":["../../../src/loading/sprite-map.ts"],"names":[],"mappings":"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"}
|