sb-edit-custom 0.20.134 → 0.20.135
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/cli/index.js
CHANGED
|
File without changes
|
|
@@ -6,8 +6,8 @@ export interface InfrastructureOptions {
|
|
|
6
6
|
leopardJSURL?: string;
|
|
7
7
|
}
|
|
8
8
|
export declare const HELPERS_JS = "\nexport function copyPrototypeToInstance(target, proto) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n if (key === \"constructor\") continue\n const desc = Object.getOwnPropertyDescriptor(proto, key)\n if (desc) Object.defineProperty(target, key, { ...desc, enumerable: true })\n }\n}\n\n// Global construction context\n// Set during sprite/stage construction so free functions can register triggers\nlet _constructingTarget = null;\n\nexport function setConstructingTarget(target) {\n _constructingTarget = target;\n}\n\nexport function clearConstructingTarget() {\n _constructingTarget = null;\n}\n\nexport function getConstructingTarget() {\n return _constructingTarget;\n}\n";
|
|
9
|
-
export declare const GAME_SPRITE_JS = "\nimport { Sprite, Trigger, Costume, Sound, Watcher } from \"./userApi.js\";\nimport { getSpriteAssets } from \"./assetRegistry.js\"\nimport { CostumeScale } from \"./constants.js\"\n\nexport class GameSprite extends Sprite {\n constructor(...args) {\n super(...args)\n\n const opts = args[0] ?? {}\n const spriteId = (opts && typeof opts === \"object\" && opts.spriteId) || this.constructor.name\n\n const assets = getSpriteAssets(spriteId)\n if (!assets) {\n this._triggers = []\n return\n }\n\n this.costumes = assets.costumes ??
|
|
10
|
-
export declare const GAME_STAGE_JS = "\nimport { Stage as StageBase, Trigger, Watcher, Costume, Color, Project, Sound } from './userApi.js';\nimport { getSpriteAssets } from \"./assetRegistry.js\"\nimport { CostumeScale } from \"./constants.js\"\n\nexport class GameStage extends StageBase {\n constructor(...args) {\n super(...args)\n\n const assets = getSpriteAssets(\"Stage\")\n\n if (!assets) {\n this.costumes = []\n this.sounds = []\n this.stageVars ??= {}\n this._triggers = []\n return\n }\n\n this.costumes = assets.costumes ??
|
|
9
|
+
export declare const GAME_SPRITE_JS = "\nimport { Sprite, Trigger, Costume, Sound, Watcher } from \"./userApi.js\";\nimport { getSpriteAssets } from \"./assetRegistry.js\"\nimport { CostumeScale } from \"./constants.js\"\n\nexport class GameSprite extends Sprite {\n constructor(...args) {\n super(...args)\n\n const opts = args[0] ?? {}\n const spriteId = (opts && typeof opts === \"object\" && opts.spriteId) || this.constructor.name\n\n const assets = getSpriteAssets(spriteId)\n if (!assets) {\n this._triggers = []\n return\n }\n\n this.costumes = Object.values(assets.costumes ?? {})\n this.sounds = Object.values(assets.sounds ?? {})\n this._triggers = []\n }\n\n whenGreenFlag(method) { this._addTrigger(Trigger.GREEN_FLAG, null, method) }\n whenKeyPressed(keyOrOptions, method) {\n const options = typeof keyOrOptions === 'object' ? keyOrOptions : { key: keyOrOptions };\n this._addTrigger(Trigger.KEY_PRESSED, options, method)\n }\n whenBroadcast(nameOrOptions, method) {\n const options = typeof nameOrOptions === 'object' ? nameOrOptions : { name: nameOrOptions };\n this._addTrigger(Trigger.BROADCAST, options, method)\n }\n whenClicked(method) { this._addTrigger(Trigger.CLICKED, null, method) }\n whenTouchStart(method) { this._addTrigger(Trigger.TOUCH_START, null, method) }\n whenTouchEnd(method) { this._addTrigger(Trigger.TOUCH_END, null, method) }\n whenTouchMove(method) { this._addTrigger(Trigger.TOUCH_MOVE, null, method) }\n whenCloneStart(method) { this._addTrigger(Trigger.CLONE_START, null, method) }\n whenBackdropChanged(method) { this._addTrigger(Trigger.BACKDROP_CHANGED, null, method) }\n\n /**\n * Create a variable with an initial value, optionally with a watcher.\n * @param {string} name - Variable name (key in this.vars and this.watchers)\n * @param {*} initialValue - Initial value for the variable\n * @param {object} [options] - Watcher configuration options. If omitted, no watcher is created.\n */\n createVar(name, initialValue, options) {\n this.vars[name] = initialValue\n if (options !== undefined) {\n const defaultLabel = this.constructor.name === 'Stage' ? name : `${this.constructor.name}: ${name}`\n this.watchers[name] = new Watcher({\n label: options.label ?? defaultLabel,\n style: options.style ?? \"normal\",\n visible: options.visible ?? false,\n value: () => this.vars[name],\n setValue: options.setValue ?? ((value) => { this.vars[name] = value }),\n step: options.step,\n min: options.min,\n max: options.max,\n x: options.x ?? 245,\n y: options.y ?? 175,\n width: options.width,\n height: options.height,\n })\n }\n }\n\n /**\n * Set a variable's value.\n * @param {string} name - Variable name (key in this.vars)\n * @param {*} value - New value\n */\n setVar(name, value) {\n this.vars[name] = value\n }\n\n /**\n * Show a variable watcher. No-op if watcher doesn't exist.\n * @param {string} name - Variable name (key in this.watchers)\n */\n showVar(name) {\n if (!this.watchers[name]) return\n this.watchers[name].visible = true\n }\n\n /**\n * Hide a variable watcher. No-op if watcher doesn't exist.\n * @param {string} name - Variable name (key in this.watchers)\n */\n hideVar(name) {\n if (!this.watchers[name]) return\n this.watchers[name].visible = false\n }\n\n /**\n * Move a variable watcher to a new position.\n * @param {string} name - Variable name (key in this.watchers)\n * @param {number} x - New x position\n * @param {number} y - New y position\n */\n moveVar(name, x, y) {\n if (!this.watchers[name]) return\n this.watchers[name].x = x\n this.watchers[name].y = y\n }\n\n _addTrigger(typeConst, options, method) {\n const fn = typeof method === \"string\" ? this[method] : method\n if (typeof fn !== \"function\") {\n throw new Error(`${this.constructor.name}: missing method \"${String(method)}\"`)\n }\n this._triggers.push(options ? new Trigger(typeConst, options, fn) : new Trigger(typeConst, fn))\n }\n\n _finalizeTriggers() {\n this.triggers = this._triggers\n }\n}\n";
|
|
10
|
+
export declare const GAME_STAGE_JS = "\nimport { Stage as StageBase, Trigger, Watcher, Costume, Color, Project, Sound } from './userApi.js';\nimport { getSpriteAssets } from \"./assetRegistry.js\"\nimport { CostumeScale } from \"./constants.js\"\n\nexport class GameStage extends StageBase {\n constructor(...args) {\n super(...args)\n\n const assets = getSpriteAssets(\"Stage\")\n\n if (!assets) {\n this.costumes = []\n this.sounds = []\n this.stageVars ??= {}\n this._triggers = []\n return\n }\n\n this.costumes = Object.values(assets.costumes ?? {})\n this.sounds = Object.values(assets.sounds ?? {})\n this.stageVars ??= {}\n this._triggers = []\n }\n\n whenGreenFlag(method) {\n this._addTrigger(Trigger.GREEN_FLAG, null, method)\n }\n\n whenKeyPressed(key, method) {\n this._addTrigger(Trigger.KEY_PRESSED, { key }, method)\n }\n\n whenBroadcast(name, method) {\n this._addTrigger(Trigger.BROADCAST, { name }, method)\n }\n\n /**\n * Create a variable with an initial value, optionally with a watcher.\n * @param {string} name - Variable name (key in this.vars and this.watchers)\n * @param {*} initialValue - Initial value for the variable\n * @param {object} [options] - Watcher configuration options. If omitted, no watcher is created.\n */\n createVar(name, initialValue, options) {\n this.vars[name] = initialValue\n if (options !== undefined) {\n this.watchers[name] = new Watcher({\n label: options.label ?? name,\n style: options.style ?? \"normal\",\n visible: options.visible ?? false,\n value: () => this.vars[name],\n setValue: options.setValue ?? ((value) => { this.vars[name] = value }),\n step: options.step,\n min: options.min,\n max: options.max,\n x: options.x ?? 245,\n y: options.y ?? 175,\n width: options.width,\n height: options.height,\n })\n }\n }\n\n /**\n * Set a variable's value.\n * @param {string} name - Variable name (key in this.vars)\n * @param {*} value - New value\n */\n setVar(name, value) {\n this.vars[name] = value\n }\n\n /**\n * Show a variable watcher. No-op if watcher doesn't exist.\n * @param {string} name - Variable name (key in this.watchers)\n */\n showVar(name) {\n if (!this.watchers[name]) return\n this.watchers[name].visible = true\n }\n\n /**\n * Hide a variable watcher. No-op if watcher doesn't exist.\n * @param {string} name - Variable name (key in this.watchers)\n */\n hideVar(name) {\n if (!this.watchers[name]) return\n this.watchers[name].visible = false\n }\n\n /**\n * Move a variable watcher to a new position.\n * @param {string} name - Variable name (key in this.watchers)\n * @param {number} x - New x position\n * @param {number} y - New y position\n */\n moveVar(name, x, y) {\n if (!this.watchers[name]) return\n this.watchers[name].x = x\n this.watchers[name].y = y\n }\n\n _addTrigger(typeConst, options, method) {\n const fn = typeof method === \"string\" ? this[method] : method\n if (typeof fn !== \"function\") {\n throw new Error(`${this.constructor.name}: missing stage handler \"${String(method)}\"`)\n }\n this._triggers.push(\n options ? new Trigger(typeConst, options, fn) : new Trigger(typeConst, fn),\n )\n }\n\n _finalizeTriggers() {\n this.triggers = this._triggers\n }\n}\n";
|
|
11
11
|
export declare const WRAP_SPRITE_CLASS_JS = "\nimport { GameSprite } from \"./GameSprite.js\"\nimport { copyPrototypeToInstance, setConstructingTarget, clearConstructingTarget } from \"./helpers.js\"\n\nexport function wrapSpriteClass(UserClass) {\n if (UserClass.prototype?.hasOwnProperty(\"constructor\")) {\n const userCtor = UserClass.prototype.constructor\n if (userCtor && userCtor !== UserClass) {\n throw new Error(`${UserClass.name}: Please use init() instead of constructor()`)\n }\n }\n\n var spriteId = UserClass.name;\n\n return class WrappedSprite extends GameSprite {\n constructor(...args) {\n var opts = args[0] ?? {}\n args[0] = { ...opts, spriteId: spriteId }\n super(...args)\n\n copyPrototypeToInstance(this, UserClass.prototype)\n\n setConstructingTarget(this)\n try {\n if (typeof this.init === \"function\") this.init()\n } finally {\n clearConstructingTarget()\n }\n\n this._finalizeTriggers()\n }\n }\n}\n";
|
|
12
12
|
export declare const WRAP_STAGE_CLASS_JS = "\nimport { GameStage } from \"./GameStage.js\"\nimport { copyPrototypeToInstance, setConstructingTarget, clearConstructingTarget } from \"./helpers.js\"\n\nexport function wrapStageClass(UserClass) {\n return class WrappedStage extends GameStage {\n constructor(...args) {\n super(...args)\n\n copyPrototypeToInstance(this, UserClass.prototype)\n\n setConstructingTarget(this)\n try {\n if (typeof this.init === \"function\") this.init(...args)\n } finally {\n clearConstructingTarget()\n }\n\n this._finalizeTriggers()\n }\n }\n}\n";
|
|
13
13
|
export declare const getUserApiJS: (_leopardJSURL?: string) => string;
|
|
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.getInfrastructureFiles = exports.REGISTRATION_RUNTIME_JS = exports.SPRITE_FUNCS_JS = exports.getUserApiJS = exports.WRAP_STAGE_CLASS_JS = exports.WRAP_SPRITE_CLASS_JS = exports.GAME_STAGE_JS = exports.GAME_SPRITE_JS = exports.HELPERS_JS = void 0;
|
|
8
8
|
var DEFAULT_LEOPARD_JS_URL = "https://pub-3089f37cd1294d71b62f5431c86b90ef.r2.dev/dist-static-new/index.esm.js";
|
|
9
9
|
exports.HELPERS_JS = "\nexport function copyPrototypeToInstance(target, proto) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n if (key === \"constructor\") continue\n const desc = Object.getOwnPropertyDescriptor(proto, key)\n if (desc) Object.defineProperty(target, key, { ...desc, enumerable: true })\n }\n}\n\n// Global construction context\n// Set during sprite/stage construction so free functions can register triggers\nlet _constructingTarget = null;\n\nexport function setConstructingTarget(target) {\n _constructingTarget = target;\n}\n\nexport function clearConstructingTarget() {\n _constructingTarget = null;\n}\n\nexport function getConstructingTarget() {\n return _constructingTarget;\n}\n";
|
|
10
|
-
exports.GAME_SPRITE_JS = "\nimport { Sprite, Trigger, Costume, Sound, Watcher } from \"./userApi.js\";\nimport { getSpriteAssets } from \"./assetRegistry.js\"\nimport { CostumeScale } from \"./constants.js\"\n\nexport class GameSprite extends Sprite {\n constructor(...args) {\n super(...args)\n\n const opts = args[0] ?? {}\n const spriteId = (opts && typeof opts === \"object\" && opts.spriteId) || this.constructor.name\n\n const assets = getSpriteAssets(spriteId)\n if (!assets) {\n this._triggers = []\n return\n }\n\n this.costumes = assets.costumes ??
|
|
11
|
-
exports.GAME_STAGE_JS = "\nimport { Stage as StageBase, Trigger, Watcher, Costume, Color, Project, Sound } from './userApi.js';\nimport { getSpriteAssets } from \"./assetRegistry.js\"\nimport { CostumeScale } from \"./constants.js\"\n\nexport class GameStage extends StageBase {\n constructor(...args) {\n super(...args)\n\n const assets = getSpriteAssets(\"Stage\")\n\n if (!assets) {\n this.costumes = []\n this.sounds = []\n this.stageVars ??= {}\n this._triggers = []\n return\n }\n\n this.costumes = assets.costumes ??
|
|
10
|
+
exports.GAME_SPRITE_JS = "\nimport { Sprite, Trigger, Costume, Sound, Watcher } from \"./userApi.js\";\nimport { getSpriteAssets } from \"./assetRegistry.js\"\nimport { CostumeScale } from \"./constants.js\"\n\nexport class GameSprite extends Sprite {\n constructor(...args) {\n super(...args)\n\n const opts = args[0] ?? {}\n const spriteId = (opts && typeof opts === \"object\" && opts.spriteId) || this.constructor.name\n\n const assets = getSpriteAssets(spriteId)\n if (!assets) {\n this._triggers = []\n return\n }\n\n this.costumes = Object.values(assets.costumes ?? {})\n this.sounds = Object.values(assets.sounds ?? {})\n this._triggers = []\n }\n\n whenGreenFlag(method) { this._addTrigger(Trigger.GREEN_FLAG, null, method) }\n whenKeyPressed(keyOrOptions, method) {\n const options = typeof keyOrOptions === 'object' ? keyOrOptions : { key: keyOrOptions };\n this._addTrigger(Trigger.KEY_PRESSED, options, method)\n }\n whenBroadcast(nameOrOptions, method) {\n const options = typeof nameOrOptions === 'object' ? nameOrOptions : { name: nameOrOptions };\n this._addTrigger(Trigger.BROADCAST, options, method)\n }\n whenClicked(method) { this._addTrigger(Trigger.CLICKED, null, method) }\n whenTouchStart(method) { this._addTrigger(Trigger.TOUCH_START, null, method) }\n whenTouchEnd(method) { this._addTrigger(Trigger.TOUCH_END, null, method) }\n whenTouchMove(method) { this._addTrigger(Trigger.TOUCH_MOVE, null, method) }\n whenCloneStart(method) { this._addTrigger(Trigger.CLONE_START, null, method) }\n whenBackdropChanged(method) { this._addTrigger(Trigger.BACKDROP_CHANGED, null, method) }\n\n /**\n * Create a variable with an initial value, optionally with a watcher.\n * @param {string} name - Variable name (key in this.vars and this.watchers)\n * @param {*} initialValue - Initial value for the variable\n * @param {object} [options] - Watcher configuration options. If omitted, no watcher is created.\n */\n createVar(name, initialValue, options) {\n this.vars[name] = initialValue\n if (options !== undefined) {\n const defaultLabel = this.constructor.name === 'Stage' ? name : `${this.constructor.name}: ${name}`\n this.watchers[name] = new Watcher({\n label: options.label ?? defaultLabel,\n style: options.style ?? \"normal\",\n visible: options.visible ?? false,\n value: () => this.vars[name],\n setValue: options.setValue ?? ((value) => { this.vars[name] = value }),\n step: options.step,\n min: options.min,\n max: options.max,\n x: options.x ?? 245,\n y: options.y ?? 175,\n width: options.width,\n height: options.height,\n })\n }\n }\n\n /**\n * Set a variable's value.\n * @param {string} name - Variable name (key in this.vars)\n * @param {*} value - New value\n */\n setVar(name, value) {\n this.vars[name] = value\n }\n\n /**\n * Show a variable watcher. No-op if watcher doesn't exist.\n * @param {string} name - Variable name (key in this.watchers)\n */\n showVar(name) {\n if (!this.watchers[name]) return\n this.watchers[name].visible = true\n }\n\n /**\n * Hide a variable watcher. No-op if watcher doesn't exist.\n * @param {string} name - Variable name (key in this.watchers)\n */\n hideVar(name) {\n if (!this.watchers[name]) return\n this.watchers[name].visible = false\n }\n\n /**\n * Move a variable watcher to a new position.\n * @param {string} name - Variable name (key in this.watchers)\n * @param {number} x - New x position\n * @param {number} y - New y position\n */\n moveVar(name, x, y) {\n if (!this.watchers[name]) return\n this.watchers[name].x = x\n this.watchers[name].y = y\n }\n\n _addTrigger(typeConst, options, method) {\n const fn = typeof method === \"string\" ? this[method] : method\n if (typeof fn !== \"function\") {\n throw new Error(`${this.constructor.name}: missing method \"${String(method)}\"`)\n }\n this._triggers.push(options ? new Trigger(typeConst, options, fn) : new Trigger(typeConst, fn))\n }\n\n _finalizeTriggers() {\n this.triggers = this._triggers\n }\n}\n";
|
|
11
|
+
exports.GAME_STAGE_JS = "\nimport { Stage as StageBase, Trigger, Watcher, Costume, Color, Project, Sound } from './userApi.js';\nimport { getSpriteAssets } from \"./assetRegistry.js\"\nimport { CostumeScale } from \"./constants.js\"\n\nexport class GameStage extends StageBase {\n constructor(...args) {\n super(...args)\n\n const assets = getSpriteAssets(\"Stage\")\n\n if (!assets) {\n this.costumes = []\n this.sounds = []\n this.stageVars ??= {}\n this._triggers = []\n return\n }\n\n this.costumes = Object.values(assets.costumes ?? {})\n this.sounds = Object.values(assets.sounds ?? {})\n this.stageVars ??= {}\n this._triggers = []\n }\n\n whenGreenFlag(method) {\n this._addTrigger(Trigger.GREEN_FLAG, null, method)\n }\n\n whenKeyPressed(key, method) {\n this._addTrigger(Trigger.KEY_PRESSED, { key }, method)\n }\n\n whenBroadcast(name, method) {\n this._addTrigger(Trigger.BROADCAST, { name }, method)\n }\n\n /**\n * Create a variable with an initial value, optionally with a watcher.\n * @param {string} name - Variable name (key in this.vars and this.watchers)\n * @param {*} initialValue - Initial value for the variable\n * @param {object} [options] - Watcher configuration options. If omitted, no watcher is created.\n */\n createVar(name, initialValue, options) {\n this.vars[name] = initialValue\n if (options !== undefined) {\n this.watchers[name] = new Watcher({\n label: options.label ?? name,\n style: options.style ?? \"normal\",\n visible: options.visible ?? false,\n value: () => this.vars[name],\n setValue: options.setValue ?? ((value) => { this.vars[name] = value }),\n step: options.step,\n min: options.min,\n max: options.max,\n x: options.x ?? 245,\n y: options.y ?? 175,\n width: options.width,\n height: options.height,\n })\n }\n }\n\n /**\n * Set a variable's value.\n * @param {string} name - Variable name (key in this.vars)\n * @param {*} value - New value\n */\n setVar(name, value) {\n this.vars[name] = value\n }\n\n /**\n * Show a variable watcher. No-op if watcher doesn't exist.\n * @param {string} name - Variable name (key in this.watchers)\n */\n showVar(name) {\n if (!this.watchers[name]) return\n this.watchers[name].visible = true\n }\n\n /**\n * Hide a variable watcher. No-op if watcher doesn't exist.\n * @param {string} name - Variable name (key in this.watchers)\n */\n hideVar(name) {\n if (!this.watchers[name]) return\n this.watchers[name].visible = false\n }\n\n /**\n * Move a variable watcher to a new position.\n * @param {string} name - Variable name (key in this.watchers)\n * @param {number} x - New x position\n * @param {number} y - New y position\n */\n moveVar(name, x, y) {\n if (!this.watchers[name]) return\n this.watchers[name].x = x\n this.watchers[name].y = y\n }\n\n _addTrigger(typeConst, options, method) {\n const fn = typeof method === \"string\" ? this[method] : method\n if (typeof fn !== \"function\") {\n throw new Error(`${this.constructor.name}: missing stage handler \"${String(method)}\"`)\n }\n this._triggers.push(\n options ? new Trigger(typeConst, options, fn) : new Trigger(typeConst, fn),\n )\n }\n\n _finalizeTriggers() {\n this.triggers = this._triggers\n }\n}\n";
|
|
12
12
|
exports.WRAP_SPRITE_CLASS_JS = "\nimport { GameSprite } from \"./GameSprite.js\"\nimport { copyPrototypeToInstance, setConstructingTarget, clearConstructingTarget } from \"./helpers.js\"\n\nexport function wrapSpriteClass(UserClass) {\n if (UserClass.prototype?.hasOwnProperty(\"constructor\")) {\n const userCtor = UserClass.prototype.constructor\n if (userCtor && userCtor !== UserClass) {\n throw new Error(`${UserClass.name}: Please use init() instead of constructor()`)\n }\n }\n\n var spriteId = UserClass.name;\n\n return class WrappedSprite extends GameSprite {\n constructor(...args) {\n var opts = args[0] ?? {}\n args[0] = { ...opts, spriteId: spriteId }\n super(...args)\n\n copyPrototypeToInstance(this, UserClass.prototype)\n\n setConstructingTarget(this)\n try {\n if (typeof this.init === \"function\") this.init()\n } finally {\n clearConstructingTarget()\n }\n\n this._finalizeTriggers()\n }\n }\n}\n";
|
|
13
13
|
exports.WRAP_STAGE_CLASS_JS = "\nimport { GameStage } from \"./GameStage.js\"\nimport { copyPrototypeToInstance, setConstructingTarget, clearConstructingTarget } from \"./helpers.js\"\n\nexport function wrapStageClass(UserClass) {\n return class WrappedStage extends GameStage {\n constructor(...args) {\n super(...args)\n\n copyPrototypeToInstance(this, UserClass.prototype)\n\n setConstructingTarget(this)\n try {\n if (typeof this.init === \"function\") this.init(...args)\n } finally {\n clearConstructingTarget()\n }\n\n this._finalizeTriggers()\n }\n }\n}\n";
|
|
14
14
|
var getUserApiJS = function (_leopardJSURL) { return "\n// userApi.js - Leopard class re-exports for sprite files\n// In bundled mode, this file is empty - Leopard classes come from window globals.\n// In ES module mode, sprite files import directly from the Leopard library URL.\n"; };
|
|
@@ -29,4 +29,4 @@ var getInfrastructureFiles = function (options) {
|
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
31
|
exports.getInfrastructureFiles = getInfrastructureFiles;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmFzdHJ1Y3R1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW8vbGVvcGFyZC9pbmZyYXN0cnVjdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFNSCxJQUFNLHNCQUFzQixHQUFHLGtGQUFrRixDQUFDO0FBRXJHLFFBQUEsVUFBVSxHQUFHLHFzQkF3QnpCLENBQUM7QUFFVyxRQUFBLGNBQWMsR0FBRyxtbUlBcUg3QixDQUFDO0FBRVcsUUFBQSxhQUFhLEdBQUcsMDFHQW9INUIsQ0FBQztBQUVXLFFBQUEsb0JBQW9CLEdBQUcsNDhCQWlDbkMsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUcsK2tCQXNCbEMsQ0FBQztBQUVLLElBQU0sWUFBWSxHQUFHLFVBQUMsYUFBc0IsSUFBSyxPQUFBLHFPQUl2RCxFQUp1RCxDQUl2RCxDQUFDO0FBSlcsUUFBQSxZQUFZLGdCQUl2QjtBQUVXLFFBQUEsZUFBZSxHQUFHLHdsVUEyaEI5QixDQUFDO0FBRVcsUUFBQSx1QkFBdUIsR0FBRywrcUJBc0J0QyxDQUFDO0FBRUssSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQW1DO0lBQW5DLHdCQUFBLEVBQUEsWUFBbUM7SUFBSyxPQUFBLENBQUM7UUFDOUUsWUFBWSxFQUFFLElBQUEsb0JBQVksRUFBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ2hELFlBQVksRUFBRSxrQkFBVTtRQUN4QixnQkFBZ0IsRUFBRSx1QkFBZTtRQUNqQyxlQUFlLEVBQUUsc0JBQWM7UUFDL0IsY0FBYyxFQUFFLHFCQUFhO1FBQzdCLG9CQUFvQixFQUFFLDRCQUFvQjtRQUMxQyxtQkFBbUIsRUFBRSwyQkFBbUI7UUFDeEMsd0JBQXdCLEVBQUUsK0JBQXVCO0tBQ2xELENBQUM7QUFUNkUsQ0FTN0UsQ0FBQztBQVRVLFFBQUEsc0JBQXNCLDBCQVNoQyJ9
|
package/lib/models/game.js
CHANGED
|
@@ -18,16 +18,18 @@ function generateAssetRegistryJS(game) {
|
|
|
18
18
|
var registryEntries = allSprites.map(function (sprite) {
|
|
19
19
|
var _a, _b;
|
|
20
20
|
var spriteScale = (_a = sprite.scale) !== null && _a !== void 0 ? _a : 1;
|
|
21
|
-
var
|
|
21
|
+
var costumeEntries = Object.values(sprite.costumes).map(function (costume) {
|
|
22
22
|
var _a, _b;
|
|
23
23
|
var centerX = (_a = (sprite.isStage ? 480 : costume.centerX)) !== null && _a !== void 0 ? _a : 0;
|
|
24
24
|
var centerY = (_b = (sprite.isStage ? 360 : costume.centerY)) !== null && _b !== void 0 ? _b : 0;
|
|
25
|
-
|
|
25
|
+
var fileKey = "".concat(costume.name, ".").concat(costume.ext);
|
|
26
|
+
return "".concat(JSON.stringify(fileKey), ": new Costume({\n name: ").concat(JSON.stringify(costume.name), ",\n url: ").concat(JSON.stringify("./".concat(sprite.name, "/costumes/").concat(costume.name, ".").concat(costume.ext)), ",\n center: { x: ").concat(centerX * spriteScale, ", y: ").concat(centerY * spriteScale, " },\n scale: ").concat(spriteScale, "\n })");
|
|
26
27
|
}).join(',\n ');
|
|
27
|
-
var
|
|
28
|
-
|
|
28
|
+
var soundEntries = Object.values(sprite.sounds).map(function (sound) {
|
|
29
|
+
var fileKey = "".concat(sound.name, ".").concat(sound.ext);
|
|
30
|
+
return "".concat(JSON.stringify(fileKey), ": new Sound(").concat(JSON.stringify(sound.name), ", ").concat(JSON.stringify("./".concat(sprite.name, "/sounds/").concat(sound.name, ".").concat(sound.ext)), ")");
|
|
29
31
|
}).join(',\n ');
|
|
30
|
-
return "".concat(sprite.name, ": {\n spriteScale: ").concat((_b = sprite.spriteScale) !== null && _b !== void 0 ? _b : 1, ",\n costumes:
|
|
32
|
+
return "".concat(sprite.name, ": {\n spriteScale: ").concat((_b = sprite.spriteScale) !== null && _b !== void 0 ? _b : 1, ",\n costumes: {\n ").concat(costumeEntries, "\n },\n sounds: {\n ").concat(soundEntries, "\n },\n }");
|
|
31
33
|
}).join(',\n ');
|
|
32
34
|
return "\n import { Costume, Sound } from \"./userApi.js\";\n\n const registry = {\n ".concat(registryEntries, "\n };\n\n export function getSpriteAssets(spriteId) {\n return registry[spriteId]\n }\n ");
|
|
33
35
|
}
|
|
@@ -141,4 +143,4 @@ exports.generateConstantsFile = generateConstantsFile;
|
|
|
141
143
|
// export default project;
|
|
142
144
|
// `;
|
|
143
145
|
// }
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvZ2FtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDOzs7Ozs7Ozs7Ozs7QUFFL0MscURBQXVGO0FBVXZGLFNBQWdCLHVCQUF1QixDQUFDLElBQWU7SUFDckQsSUFBTSxXQUFXLEdBQUcsSUFBQSx3Q0FBNEIsRUFBQywwQkFBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTlFLElBQU0sVUFBVSxtQ0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBRSxJQUFJLENBQUMsS0FBSyxTQUFDLENBQUM7SUFFaEUsSUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFBLE1BQU07O1FBQzNDLElBQU0sV0FBVyxHQUFHLE1BQUEsTUFBTSxDQUFDLEtBQUssbUNBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFBLE9BQU87O1lBQy9ELElBQU0sT0FBTyxHQUFHLE1BQUEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUNBQUksQ0FBQyxDQUFDO1lBQzlELElBQU0sT0FBTyxHQUFHLE1BQUEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUNBQUksQ0FBQyxDQUFDO1lBQzlELElBQU0sT0FBTyxHQUFHLFVBQUcsT0FBTyxDQUFDLElBQUksY0FBSSxPQUFPLENBQUMsR0FBRyxDQUFFLENBQUM7WUFFakQsT0FBTyxVQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGdEQUNuQixJQUFJLENBQUMsU0FBUyxD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
|