sb-edit-custom 0.20.34 → 0.20.35
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/lib/models/sprite.js +61 -4
- package/package.json +1 -1
package/lib/models/sprite.js
CHANGED
|
@@ -11,7 +11,7 @@ function generateSpriteDefJS(sprite) {
|
|
|
11
11
|
var _a;
|
|
12
12
|
var toLeopardJS = (0, toLeopard_1.getPathsToRelativeOrAbsolute)(toLeopard_1.defaultOptions.leopardJSURL);
|
|
13
13
|
console.log("Generating def.js for sprite:", sprite.name);
|
|
14
|
-
return ["".concat(sprite.name, "/").concat(sprite.name, ".def.js"), "\n import { ".concat(sprite.isStage ? "Stage as StageBase" : "Sprite", ", Trigger, Watcher, Costume, Color, Project, Sound } from '").concat(toLeopardJS({ from: "target" }), "';\n\n
|
|
14
|
+
return ["".concat(sprite.name, "/").concat(sprite.name, ".def.js"), "\n import { ".concat(sprite.isStage ? "Stage as StageBase" : "Sprite", ", Trigger, Watcher, Costume, Color, Project, Sound } from '").concat(toLeopardJS({ from: "target" }), "';\n\n // Remove static imports and access them via global or passed parameters\n // The index.js will handle the dynamic loading and pass required values\n\n export default class ").concat(sprite.name, " extends ").concat(sprite.isStage ? "StageBase" : "Sprite", " {\n\n constructor(spriteOptions = {}) {\n super(spriteOptions);\n\n // Access values from the constructor options instead of imports\n const { initVars, behaviors, makeTriggers, CostumeScale = 1 } = spriteOptions._modules || {};\n const spriteScale = ").concat((_a = sprite.scale) !== null && _a !== void 0 ? _a : 1, ";\n\n this.costumes = [\n ").concat(Object.values(sprite.costumes)
|
|
15
15
|
.map(function (costume) {
|
|
16
16
|
var _a, _b;
|
|
17
17
|
return "new Costume({name: ".concat(JSON.stringify(costume.name), ", url: ").concat(JSON.stringify(toLeopard_1.defaultOptions.getAssetURL({
|
|
@@ -20,7 +20,7 @@ function generateSpriteDefJS(sprite) {
|
|
|
20
20
|
name: costume.name,
|
|
21
21
|
md5: costume.md5,
|
|
22
22
|
ext: costume.ext
|
|
23
|
-
})), ", center: {\n // x: costume.centerX,\n // y: costume.centerY\n x: ").concat(sprite.isStage ? 480 : (costume.wasSvg ? ((_a = costume.centerX) !== null && _a !== void 0 ? _a : 0) * 2 : costume.centerX), " * CostumeScale * spriteScale, // costume.centerX,\n y: ").concat(sprite.isStage ? 360 : (costume.wasSvg ? ((_b = costume.centerY) !== null && _b !== void 0 ? _b : 0) * 2 : costume.centerY), " * CostumeScale * spriteScale, // costume.centerY\n }, scale: 1 * CostumeScale * spriteScale})");
|
|
23
|
+
})), ", center: {\n // x: costume.centerX,\n // y: costume.centerY\n x: ").concat(sprite.isStage ? 480 : (costume.wasSvg ? ((_a = costume.centerX) !== null && _a !== void 0 ? _a : 0) * 2 : costume.centerX), " * (CostumeScale || 1) * spriteScale, // costume.centerX,\n y: ").concat(sprite.isStage ? 360 : (costume.wasSvg ? ((_b = costume.centerY) !== null && _b !== void 0 ? _b : 0) * 2 : costume.centerY), " * (CostumeScale || 1) * spriteScale, // costume.centerY\n }, scale: 1 * (CostumeScale || 1) * spriteScale})");
|
|
24
24
|
})
|
|
25
25
|
.join(",\n"), "\n ];\n\n this.sounds = [\n ").concat(Object.values(sprite.sounds).map(function (sound) {
|
|
26
26
|
return "new Sound(".concat(JSON.stringify(sound.name), ", ").concat(JSON.stringify(toLeopard_1.defaultOptions.getAssetURL({
|
|
@@ -31,8 +31,65 @@ function generateSpriteDefJS(sprite) {
|
|
|
31
31
|
ext: sound.ext
|
|
32
32
|
})), ")");
|
|
33
33
|
})
|
|
34
|
-
.join(",\n"), "\n ];\n\n initVars(this);\n
|
|
34
|
+
.join(",\n"), "\n ];\n\n // Only initialize if modules are provided\n if (initVars && makeTriggers) {\n initVars(this);\n this.triggers = makeTriggers(this, Trigger);\n }\n\n // Apply behaviors if provided\n if (behaviors) {\n Object.assign(this, behaviors);\n }\n }\n }\n ")
|
|
35
35
|
];
|
|
36
36
|
}
|
|
37
37
|
exports.generateSpriteDefJS = generateSpriteDefJS;
|
|
38
|
-
|
|
38
|
+
// export function generateSpriteDefJS(sprite: SpriteModel): [string, string] {
|
|
39
|
+
// const toLeopardJS = getPathsToRelativeOrAbsolute(defaultOptions.leopardJSURL);
|
|
40
|
+
// console.log("Generating def.js for sprite:", sprite.name);
|
|
41
|
+
// return [`${sprite.name}/${sprite.name}.def.js`,
|
|
42
|
+
// `
|
|
43
|
+
// import { ${sprite.isStage ? "Stage as StageBase" : "Sprite"
|
|
44
|
+
// }, Trigger, Watcher, Costume, Color, Project, Sound } from '${toLeopardJS({ from: "target" })}';
|
|
45
|
+
// import { initVars, behaviors, makeTriggers } from './${sprite.name}/${sprite.name}.js';
|
|
46
|
+
// import { CostumeScale } from './index.js';
|
|
47
|
+
// const spriteScale = ${sprite.scale ?? 1};
|
|
48
|
+
// export default class ${sprite.name} extends ${sprite.isStage ? "StageBase" : "Sprite"} {
|
|
49
|
+
// constructor(...args) {
|
|
50
|
+
// super(...args);
|
|
51
|
+
// this.costumes = [
|
|
52
|
+
// ${Object.values(sprite.costumes)
|
|
53
|
+
// .map(
|
|
54
|
+
// costume =>
|
|
55
|
+
// `new Costume({name: ${JSON.stringify(costume.name)}, url: ${JSON.stringify(
|
|
56
|
+
// defaultOptions.getAssetURL({
|
|
57
|
+
// type: "costume",
|
|
58
|
+
// target: sprite.name,
|
|
59
|
+
// name: costume.name,
|
|
60
|
+
// md5: costume.md5,
|
|
61
|
+
// ext: costume.ext
|
|
62
|
+
// })
|
|
63
|
+
// )}, center: {
|
|
64
|
+
// // x: costume.centerX,
|
|
65
|
+
// // y: costume.centerY
|
|
66
|
+
// x: ${sprite.isStage ? 480 : (costume.wasSvg ? (costume.centerX ?? 0) * 2 : costume.centerX)} * CostumeScale * spriteScale, // costume.centerX,
|
|
67
|
+
// y: ${sprite.isStage ? 360 : (costume.wasSvg ? (costume.centerY ?? 0) * 2 : costume.centerY)} * CostumeScale * spriteScale, // costume.centerY
|
|
68
|
+
// }, scale: 1 * CostumeScale * spriteScale})`
|
|
69
|
+
// )
|
|
70
|
+
// .join(",\n")}
|
|
71
|
+
// ];
|
|
72
|
+
// this.sounds = [
|
|
73
|
+
// ${Object.values(sprite.sounds).map(
|
|
74
|
+
// sound =>
|
|
75
|
+
// `new Sound(${JSON.stringify(sound.name)}, ${JSON.stringify(
|
|
76
|
+
// defaultOptions.getAssetURL({
|
|
77
|
+
// type: "sound",
|
|
78
|
+
// target: sprite.name,
|
|
79
|
+
// name: sound.name,
|
|
80
|
+
// md5: sound.md5,
|
|
81
|
+
// ext: sound.ext
|
|
82
|
+
// })
|
|
83
|
+
// )})`
|
|
84
|
+
// )
|
|
85
|
+
// .join(",\n")}
|
|
86
|
+
// ];
|
|
87
|
+
// initVars(this);
|
|
88
|
+
// this.triggers = makeTriggers(this, Trigger);
|
|
89
|
+
// }
|
|
90
|
+
// }
|
|
91
|
+
// Object.assign(${sprite.name}.prototype, behaviors);
|
|
92
|
+
// `
|
|
93
|
+
// ]
|
|
94
|
+
// }
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVscy9zcHJpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDs7O0FBRXZELHFEQUF1RjtBQXVCdkYsU0FBZ0IsbUJBQW1CLENBQUMsTUFBbUI7SUFDckQsT0FBTyxDQUFDLFVBQUcsTUFBTSxDQUFDLElBQUksY0FBSSxNQUFNLENBQUMsSUFBSSxRQUFLLEVBQ3hDLDhXQWdCRCxDQUFDLENBQUE7QUFDSixDQUFDO0FBbkJELGtEQW1CQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLE1BQW1COztJQUNyRCxJQUFNLFdBQVcsR0FBRyxJQUFBLHdDQUE0QixFQUFDLDBCQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFOUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUQsT0FBTyxDQUFDLFVBQUcsTUFBTSxDQUFDLElBQUksY0FBSSxNQUFNLENBQUMsSUFBSSxZQUFTLEVBQzlDLDJCQUNlLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxRQUFRLHdFQUNELFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxnTkFLbEUsTUFBTSxDQUFDLElBQUksc0JBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLG9UQU8zRCxNQUFBLE1BQU0sQ0FBQyxLQUFLLG1DQUFJLENBQUMsNkRBR2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQzthQUN6QyxHQUFHLENBQ0YsVUFBQSxPQUFPOztZQUNMLE9BQUEsNkJBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBVSxJQUFJLENBQUMsU0FBUyxDQUN4RSwwQkFBYyxDQUFD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
|