@rpgjs/client 5.0.0-alpha.23 → 5.0.0-alpha.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/RpgClientEngine.d.ts +35 -115
  2. package/dist/components/gui/mobile/index.d.ts +1 -1
  3. package/dist/index10.js +1 -1
  4. package/dist/index11.js +2 -2
  5. package/dist/index12.js +2 -2
  6. package/dist/index14.js +1 -2
  7. package/dist/index14.js.map +1 -1
  8. package/dist/index15.js +4 -4
  9. package/dist/index16.js.map +1 -1
  10. package/dist/index17.js.map +1 -1
  11. package/dist/index2.js +85 -159
  12. package/dist/index2.js.map +1 -1
  13. package/dist/index20.js.map +1 -1
  14. package/dist/index22.js +1 -1
  15. package/dist/index25.js +2 -2
  16. package/dist/index25.js.map +1 -1
  17. package/dist/index26.js +2 -3
  18. package/dist/index26.js.map +1 -1
  19. package/dist/index28.js +2 -2
  20. package/dist/index28.js.map +1 -1
  21. package/dist/index3.js +1 -1
  22. package/dist/index31.js +2622 -42
  23. package/dist/index31.js.map +1 -1
  24. package/dist/index32.js +88 -2607
  25. package/dist/index32.js.map +1 -1
  26. package/dist/index33.js +64 -107
  27. package/dist/index33.js.map +1 -1
  28. package/dist/index34.js +12 -62
  29. package/dist/index34.js.map +1 -1
  30. package/dist/index35.js +24 -18
  31. package/dist/index35.js.map +1 -1
  32. package/dist/index36.js +87 -19
  33. package/dist/index36.js.map +1 -1
  34. package/dist/index37.js +20 -74
  35. package/dist/index37.js.map +1 -1
  36. package/dist/index38.js +18 -35
  37. package/dist/index38.js.map +1 -1
  38. package/dist/index39.js +137 -20
  39. package/dist/index39.js.map +1 -1
  40. package/dist/index4.js +1 -1
  41. package/dist/index40.js +9 -133
  42. package/dist/index40.js.map +1 -1
  43. package/dist/index41.js +3 -41
  44. package/dist/index41.js.map +1 -1
  45. package/dist/index42.js +536 -1
  46. package/dist/index42.js.map +1 -1
  47. package/dist/index43.js +30 -183
  48. package/dist/index43.js.map +1 -1
  49. package/dist/index44.js +9 -501
  50. package/dist/index44.js.map +1 -1
  51. package/dist/index45.js +6 -334
  52. package/dist/index45.js.map +1 -1
  53. package/dist/index46.js +325 -30
  54. package/dist/index46.js.map +1 -1
  55. package/dist/index47.js +3680 -67
  56. package/dist/index47.js.map +1 -1
  57. package/dist/index48.js +75 -10
  58. package/dist/index48.js.map +1 -1
  59. package/dist/index49.js +186 -6
  60. package/dist/index49.js.map +1 -1
  61. package/dist/index50.js +499 -3685
  62. package/dist/index50.js.map +1 -1
  63. package/dist/index53.js +1 -1
  64. package/dist/index8.js +6 -1
  65. package/dist/index8.js.map +1 -1
  66. package/dist/index9.js +1 -2
  67. package/dist/index9.js.map +1 -1
  68. package/package.json +9 -9
  69. package/src/Gui/Gui.ts +0 -1
  70. package/src/RpgClientEngine.ts +106 -176
  71. package/src/components/character.ce +2 -3
  72. package/src/components/gui/mobile/index.ts +1 -1
  73. package/src/components/gui/mobile/mobile.ce +73 -88
  74. package/src/components/prebuilt/light-halo.ce +2 -71
  75. package/src/components/scenes/canvas.ce +0 -10
  76. package/src/components/scenes/event-layer.ce +1 -0
  77. package/src/module.ts +6 -1
  78. package/dist/Game/TransitionManager.d.ts +0 -56
  79. package/src/Game/TransitionManager.ts +0 -75
@@ -1 +1 @@
1
- {"version":3,"file":"index33.js","sources":["../../../node_modules/.pnpm/@signe+sync@2.5.2/node_modules/@signe/sync/dist/client/index.js"],"sourcesContent":["import {\n __name\n} from \"../chunk-7QVYU63E.js\";\n\n// src/client/index.ts\nimport { load } from \"@signe/sync\";\nimport PartySocket from \"partysocket\";\nfunction createConnection(options, roomInstance) {\n const conn = new PartySocket(options);\n conn.addEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n switch (object.type) {\n case \"sync\":\n load(roomInstance, object.value, true);\n break;\n }\n });\n return {\n emit: /* @__PURE__ */ __name((key, value) => {\n conn.send(JSON.stringify({\n action: key,\n value\n }));\n }, \"emit\"),\n on: /* @__PURE__ */ __name((key, cb) => {\n conn.addEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n if (object.type === key) {\n cb(object.value);\n }\n });\n }, \"on\"),\n off: /* @__PURE__ */ __name((key, cb) => {\n conn.removeEventListener(\"message\", (event) => {\n const object = JSON.parse(event.data);\n if (object.type === key) {\n cb(object.value);\n }\n });\n }, \"off\"),\n close: /* @__PURE__ */ __name(() => conn.close(), \"close\"),\n conn\n };\n}\n__name(createConnection, \"createConnection\");\nasync function connectionRoom(options, roomInstance) {\n return createConnection(options, roomInstance);\n}\n__name(connectionRoom, \"connectionRoom\");\nasync function connectionWorld(options, roomInstance) {\n const shardInfo = await getOptimalShard(options);\n const result = createConnection({\n ...options,\n party: \"shard\",\n room: shardInfo.url\n }, roomInstance);\n return {\n ...result,\n shardInfo\n };\n}\n__name(connectionWorld, \"connectionWorld\");\nasync function getOptimalShard(worldOptions) {\n const {\n host,\n room,\n worldId = \"world-default\",\n retryCount = 3,\n retryDelay = 1e3,\n autoCreate = true\n // Default to true for auto-creation\n } = worldOptions;\n let attempts = 0;\n const url = new URL(`${host}/parties/world/${encodeURIComponent(worldId)}/connect`);\n const requestUrl = url.toString();\n while (attempts < retryCount) {\n try {\n const response = await fetch(requestUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n roomId: room,\n autoCreate\n })\n });\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({\n error: \"Unknown error\"\n }));\n throw new Error(`World service returned ${response.status}: ${errorData.error || \"Unknown error\"}`);\n }\n const data = await response.json();\n if (!data.url || !data.shardId) {\n throw new Error(\"Invalid response from World service: missing url or shardId\");\n }\n return {\n shardId: data.shardId,\n url: data.url\n };\n } catch (error) {\n attempts++;\n if (attempts >= retryCount) {\n throw error;\n }\n console.warn(`Failed to get shard (attempt ${attempts}/${retryCount}). Retrying in ${retryDelay}ms...`);\n await new Promise((resolve) => setTimeout(resolve, retryDelay));\n }\n }\n throw new Error(\"Failed to get shard after all retry attempts\");\n}\n__name(getOptimalShard, \"getOptimalShard\");\nexport {\n PartySocket,\n connectionRoom,\n connectionWorld\n};\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index33.js","sources":["../src/components/animations/hit.ce"],"sourcesContent":["<Text x y zIndex={10000} color scale size={30} text />\n\n<script>\n import { animatedSignal, mount, signal, tick } from \"canvasengine\";\n import { Direction } from \"@rpgjs/common\";\n const {\n text,\n direction,\n onFinish,\n duration,\n color,\n x: positionX,\n y: positionY\n } = defineProps({\n duration: {\n default: 1000\n },\n color: {\n default: 'black'\n }\n });\n\n const scale = animatedSignal(1, {\n duration: duration(),\n });\n\n // Generate random initial position\n const randomPosition = () => Math.floor(Math.random() * 60);\n const initialY = randomPosition();\n const x = signal(positionX());\n const y = signal(positionY() - initialY);\n\n // Initial velocity\n let velocityX = 0;\n let velocityY = 0;\n\n // Set initial velocity based on direction\n const speed = 200;\n switch (direction()) {\n case Direction.Left:\n velocityX = speed;\n break;\n case Direction.Right:\n velocityX = -speed;\n break;\n case Direction.Up:\n velocityY = speed;\n break;\n case Direction.Down:\n velocityY = -speed;\n break;\n }\n\n // Add some randomness to the velocity\n velocityX += (Math.random() - 0.5) * 100;\n velocityY += (Math.random() - 0.5) * 100;\n\n const gravity = 500; // Gravity effect\n const deceleration = 0.98; // Deceleration factor\n\n mount(() => {\n scale.set(0.1);\n });\n\n let elapsedTime = 0;\n\n tick(({ deltaTime }) => {\n elapsedTime += deltaTime;\n \n if (elapsedTime < duration()) {\n // Update position\n x.update((x) => x + (velocityX * deltaTime) / 1000);\n y.update((y) => y + (velocityY * deltaTime) / 1000);\n\n // Apply gravity\n velocityY += (gravity * deltaTime) / 1000;\n\n // Apply deceleration\n velocityX *= deceleration;\n velocityY *= deceleration;\n } else {\n if (onFinish) {\n onFinish();\n }\n }\n });\n</script>\n"],"names":[],"mappings":"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"}
package/dist/index34.js CHANGED
@@ -1,69 +1,19 @@
1
- import { useProps, useDefineProps, animatedSignal, signal, mount, tick, h, Text } from 'canvasengine';
2
- import { Direction } from '@rpgjs/common';
1
+ import { useProps, useDefineProps, h, Sprite } from 'canvasengine';
2
+ import { RpgClientEngine } from './index2.js';
3
+ import { inject } from './index6.js';
3
4
 
4
5
  function component($$props) {
5
6
  useProps($$props);
6
7
  const defineProps = useDefineProps($$props);
7
- var _a = defineProps({
8
- duration: {
9
- default: 1000
10
- },
11
- color: {
12
- default: 'black'
13
- }
14
- }), text = _a.text, direction = _a.direction, onFinish = _a.onFinish, duration = _a.duration, color = _a.color, positionX = _a.x, positionY = _a.y;
15
- var scale = animatedSignal(1, {
16
- duration: duration(),
17
- });
18
- var randomPosition = function () { return Math.floor(Math.random() * 60); };
19
- var initialY = randomPosition();
20
- var x = signal(positionX());
21
- var y = signal(positionY() - initialY);
22
- var velocityX = 0;
23
- var velocityY = 0;
24
- var speed = 200;
25
- switch (direction()) {
26
- case Direction.Left:
27
- velocityX = speed;
28
- break;
29
- case Direction.Right:
30
- velocityX = -speed;
31
- break;
32
- case Direction.Up:
33
- velocityY = speed;
34
- break;
35
- case Direction.Down:
36
- velocityY = -speed;
37
- break;
38
- }
39
- velocityX += (Math.random() - 0.5) * 100;
40
- velocityY += (Math.random() - 0.5) * 100;
41
- var gravity = 500;
42
- var deceleration = 0.98;
43
- mount(function () {
44
- scale.set(0.1);
45
- });
46
- var elapsedTime = 0;
47
- tick(function (_a) {
48
- var deltaTime = _a.deltaTime;
49
- elapsedTime += deltaTime;
50
- if (elapsedTime < duration()) {
51
- // Update position
52
- x.update(function (x) { return x + (velocityX * deltaTime) / 1000; });
53
- y.update(function (y) { return y + (velocityY * deltaTime) / 1000; });
54
- // Apply gravity
55
- velocityY += (gravity * deltaTime) / 1000;
56
- // Apply deceleration
57
- velocityX *= deceleration;
58
- velocityY *= deceleration;
59
- }
60
- else {
61
- if (onFinish) {
62
- onFinish();
63
- }
64
- }
65
- });
66
- let $this = h(Text, { x, y, zIndex: 10000, color, scale, size: 30, text });
8
+ var _a;
9
+ var _b = defineProps(), x = _b.x, y = _b.y, animationName = _b.animationName, graphic = _b.graphic, onFinish = _b.onFinish;
10
+ var client = inject(RpgClientEngine);
11
+ var sheet = {
12
+ definition: client.getSpriteSheet(graphic()),
13
+ playing: (_a = animationName()) !== null && _a !== void 0 ? _a : 'default',
14
+ onFinish: onFinish
15
+ };
16
+ let $this = h(Sprite, { sheet, x, y, anchor: 0.5 });
67
17
  return $this
68
18
  }
69
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"index34.js","sources":["../src/components/animations/hit.ce"],"sourcesContent":["<Text x y zIndex={10000} color scale size={30} text />\n\n<script>\n import { animatedSignal, mount, signal, tick } from \"canvasengine\";\n import { Direction } from \"@rpgjs/common\";\n const {\n text,\n direction,\n onFinish,\n duration,\n color,\n x: positionX,\n y: positionY\n } = defineProps({\n duration: {\n default: 1000\n },\n color: {\n default: 'black'\n }\n });\n\n const scale = animatedSignal(1, {\n duration: duration(),\n });\n\n // Generate random initial position\n const randomPosition = () => Math.floor(Math.random() * 60);\n const initialY = randomPosition();\n const x = signal(positionX());\n const y = signal(positionY() - initialY);\n\n // Initial velocity\n let velocityX = 0;\n let velocityY = 0;\n\n // Set initial velocity based on direction\n const speed = 200;\n switch (direction()) {\n case Direction.Left:\n velocityX = speed;\n break;\n case Direction.Right:\n velocityX = -speed;\n break;\n case Direction.Up:\n velocityY = speed;\n break;\n case Direction.Down:\n velocityY = -speed;\n break;\n }\n\n // Add some randomness to the velocity\n velocityX += (Math.random() - 0.5) * 100;\n velocityY += (Math.random() - 0.5) * 100;\n\n const gravity = 500; // Gravity effect\n const deceleration = 0.98; // Deceleration factor\n\n mount(() => {\n scale.set(0.1);\n });\n\n let elapsedTime = 0;\n\n tick(({ deltaTime }) => {\n elapsedTime += deltaTime;\n \n if (elapsedTime < duration()) {\n // Update position\n x.update((x) => x + (velocityX * deltaTime) / 1000);\n y.update((y) => y + (velocityY * deltaTime) / 1000);\n\n // Apply gravity\n velocityY += (gravity * deltaTime) / 1000;\n\n // Apply deceleration\n velocityX *= deceleration;\n velocityY *= deceleration;\n } else {\n if (onFinish) {\n onFinish();\n }\n }\n });\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index34.js","sources":["../src/components/animations/animation.ce"],"sourcesContent":["<Sprite sheet x y anchor={0.5} />\n\n<script>\n import { RpgClientEngine } from \"../../RpgClientEngine\";\n import { inject } from \"../../core/inject\";\n\n const { x, y, animationName, graphic, onFinish } = defineProps();\n\n const client = inject(RpgClientEngine);\n\n const sheet = {\n definition: client.getSpriteSheet(graphic()),\n playing: animationName() ?? 'default',\n onFinish\n };\n</script>\n"],"names":[],"mappings":";;;;AAOqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,EAAE;AACd,IAAI,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ;AAC1H,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AACpC,IAAI,KAAK,GAAG;AACZ,IAAI,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;AAChD,IAAI,OAAO,EAAE,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS;AAC9E,IAAI,QAAQ,EAAE;AACd,CAAC;AACD,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;AAC1D,QAAQ,OAAO;AACf,MAAM;;;;"}
package/dist/index35.js CHANGED
@@ -1,21 +1,27 @@
1
- import { useProps, useDefineProps, h, Sprite } from 'canvasengine';
2
- import { RpgClientEngine } from './index2.js';
3
- import { inject } from './index6.js';
4
-
5
- function component($$props) {
6
- useProps($$props);
7
- const defineProps = useDefineProps($$props);
8
- var _a;
9
- var _b = defineProps(), x = _b.x, y = _b.y, animationName = _b.animationName, graphic = _b.graphic, onFinish = _b.onFinish;
10
- var client = inject(RpgClientEngine);
11
- var sheet = {
12
- definition: client.getSpriteSheet(graphic()),
13
- playing: (_a = animationName()) !== null && _a !== void 0 ? _a : 'default',
14
- onFinish: onFinish
15
- };
16
- let $this = h(Sprite, { sheet, x, y, anchor: 0.5 });
17
- return $this
1
+ const AnimationSpritesheetPreset = (framesWidth, framesHeight) => {
2
+ const animations = [];
3
+ for (let y = 0; y < framesHeight; y++) {
4
+ for (let x = 0; x < framesWidth; x++) {
5
+ const frameIndex = y * framesWidth + x;
6
+ animations.push({
7
+ time: frameIndex * 10,
8
+ frameX: x,
9
+ frameY: y
10
+ });
11
+ }
12
+ }
13
+ return {
14
+ framesWidth,
15
+ framesHeight,
16
+ textures: {
17
+ default: {
18
+ animations: () => [
19
+ animations
20
+ ]
18
21
  }
22
+ }
23
+ };
24
+ };
19
25
 
20
- export { component as default };
26
+ export { AnimationSpritesheetPreset };
21
27
  //# sourceMappingURL=index35.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index35.js","sources":["../src/components/animations/animation.ce"],"sourcesContent":["<Sprite sheet x y anchor={0.5} />\n\n<script>\n import { RpgClientEngine } from \"../../RpgClientEngine\";\n import { inject } from \"../../core/inject\";\n\n const { x, y, animationName, graphic, onFinish } = defineProps();\n\n const client = inject(RpgClientEngine);\n\n const sheet = {\n definition: client.getSpriteSheet(graphic()),\n playing: animationName() ?? 'default',\n onFinish\n };\n</script>\n"],"names":[],"mappings":";;;;AAOqB,SAAS,SAAS,CAAC,OAAO,EAAE;AACjD,QAAuB,QAAQ,CAAC,OAAO;AACvC,QAAQ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO;AAClD,QAAQ,IAAI,EAAE;AACd,IAAI,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ;AAC1H,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AACpC,IAAI,KAAK,GAAG;AACZ,IAAI,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;AAChD,IAAI,OAAO,EAAE,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS;AAC9E,IAAI,QAAQ,EAAE;AACd,CAAC;AACD,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;AAC1D,QAAQ,OAAO;AACf,MAAM;;;;"}
1
+ {"version":3,"file":"index35.js","sources":["../src/presets/animation.ts"],"sourcesContent":["/**\n * Creates an animation spritesheet preset with automatic frame generation\n * \n * This function generates animation frames based on the provided width and height dimensions.\n * It creates a sequence of frames that progresses through the spritesheet from left to right,\n * top to bottom, with each frame having a 10ms time increment.\n * \n * @param {number} framesWidth - The number of frames horizontally in the spritesheet\n * @param {number} framesHeight - The number of frames vertically in the spritesheet\n * @returns {Object} Animation preset configuration object\n * \n * @example\n * ```javascript\n * // For a 4x4 spritesheet\n * const preset = AnimationSpritesheetPreset(4, 4);\n * // This will generate 16 frames with coordinates from (0,0) to (3,3)\n * ```\n */\nexport const AnimationSpritesheetPreset = (framesWidth: number, framesHeight: number) => {\n \n const animations: Array<{ time: number; frameX: number; frameY: number }> = [];\n\n for (let y = 0; y < framesHeight; y++) {\n for (let x = 0; x < framesWidth; x++) {\n const frameIndex = y * framesWidth + x;\n animations.push({ \n time: frameIndex * 10, \n frameX: x, \n frameY: y \n });\n }\n }\n \n return {\n framesWidth,\n framesHeight,\n textures: {\n default: {\n animations: () => [\n animations\n ],\n }\n }\n };\n};\n "],"names":[],"mappings":"AAkBO,MAAM,0BAAA,GAA6B,CAAC,WAAA,EAAqB,YAAA,KAAyB;AAErF,EAAA,MAAM,aAAsE,EAAC;AAE7E,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,YAAA,EAAc,CAAA,EAAA,EAAK;AACnC,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,WAAA,EAAa,CAAA,EAAA,EAAK;AAClC,MAAA,MAAM,UAAA,GAAa,IAAI,WAAA,GAAc,CAAA;AACrC,MAAA,UAAA,CAAW,IAAA,CAAK;AAAA,QACZ,MAAM,UAAA,GAAa,EAAA;AAAA,QACnB,MAAA,EAAQ,CAAA;AAAA,QACR,MAAA,EAAQ;AAAA,OACX,CAAA;AAAA,IACL;AAAA,EACJ;AAEA,EAAA,OAAO;AAAA,IACH,WAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACN,OAAA,EAAS;AAAA,QACL,YAAY,MAAM;AAAA,UACd;AAAA;AACJ;AACJ;AACJ,GACJ;AACJ;;;;"}
package/dist/index36.js CHANGED
@@ -1,27 +1,95 @@
1
- const AnimationSpritesheetPreset = (framesWidth, framesHeight) => {
2
- const animations = [];
3
- for (let y = 0; y < framesHeight; y++) {
4
- for (let x = 0; x < framesWidth; x++) {
5
- const frameIndex = y * framesWidth + x;
6
- animations.push({
7
- time: frameIndex * 10,
8
- frameX: x,
9
- frameY: y
10
- });
1
+ import { Animation, Direction } from '@rpgjs/common';
2
+
3
+ const LPCSpritesheetPreset = (options) => {
4
+ const ratio = options.ratio ?? 1;
5
+ const frameY = (direction) => {
6
+ return {
7
+ [Direction.Down]: 2,
8
+ [Direction.Left]: 1,
9
+ [Direction.Right]: 3,
10
+ [Direction.Up]: 0
11
+ }[direction];
12
+ };
13
+ const stand = (direction) => [
14
+ { time: 0, frameX: 0, frameY: frameY(direction) }
15
+ ];
16
+ const anim = (direction, framesWidth, speed = 5) => {
17
+ const array = [];
18
+ for (let i = 0; i < framesWidth; i++) {
19
+ array.push({ time: i * speed, frameX: i, frameY: frameY(direction) });
11
20
  }
12
- }
21
+ return array;
22
+ };
13
23
  return {
14
- framesWidth,
15
- framesHeight,
24
+ id: options.id,
25
+ image: options.imageSource,
26
+ width: options.width,
27
+ height: options.height,
28
+ opacity: 1,
29
+ rectWidth: 64 * ratio,
30
+ rectHeight: 64 * ratio,
31
+ framesWidth: 6,
32
+ framesHeight: 4,
33
+ spriteRealSize: {
34
+ width: 48 * ratio,
35
+ height: 52 * ratio
36
+ },
16
37
  textures: {
17
- default: {
18
- animations: () => [
19
- animations
20
- ]
21
- }
38
+ [Animation.Stand]: {
39
+ offset: {
40
+ x: 0,
41
+ y: 512 * ratio
42
+ },
43
+ animations: ({ direction }) => [stand(direction)]
44
+ },
45
+ [Animation.Walk]: {
46
+ offset: {
47
+ x: 0,
48
+ y: 512 * ratio
49
+ },
50
+ framesWidth: 9,
51
+ framesHeight: 4,
52
+ animations: ({ direction }) => [anim(direction, 9)]
53
+ },
54
+ [Animation.Attack]: {
55
+ offset: {
56
+ x: 0,
57
+ y: 768 * ratio
58
+ },
59
+ framesWidth: 6,
60
+ framesHeight: 4,
61
+ animations: ({ direction }) => [anim(direction, 6, 3)]
62
+ },
63
+ [Animation.Skill]: {
64
+ framesWidth: 7,
65
+ framesHeight: 4,
66
+ animations: ({ direction }) => [anim(direction, 7, 3)]
67
+ },
68
+ attack2: {
69
+ offset: {
70
+ x: 0,
71
+ y: 256 * ratio
72
+ },
73
+ framesWidth: 7,
74
+ framesHeight: 8,
75
+ animations: ({ direction }) => [anim(direction, 7, 3)]
76
+ },
77
+ ...options.height > 3e3 ? {
78
+ attack3: {
79
+ offset: {
80
+ x: 0,
81
+ y: 5568 - 288 * 4
82
+ },
83
+ rectWidth: 288,
84
+ rectHeight: 288,
85
+ framesWidth: 6,
86
+ framesHeight: 4,
87
+ animations: ({ direction }) => [anim(direction, 6, 3)]
88
+ }
89
+ } : {}
22
90
  }
23
91
  };
24
92
  };
25
93
 
26
- export { AnimationSpritesheetPreset };
94
+ export { LPCSpritesheetPreset };
27
95
  //# sourceMappingURL=index36.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index36.js","sources":["../src/presets/animation.ts"],"sourcesContent":["/**\n * Creates an animation spritesheet preset with automatic frame generation\n * \n * This function generates animation frames based on the provided width and height dimensions.\n * It creates a sequence of frames that progresses through the spritesheet from left to right,\n * top to bottom, with each frame having a 10ms time increment.\n * \n * @param {number} framesWidth - The number of frames horizontally in the spritesheet\n * @param {number} framesHeight - The number of frames vertically in the spritesheet\n * @returns {Object} Animation preset configuration object\n * \n * @example\n * ```javascript\n * // For a 4x4 spritesheet\n * const preset = AnimationSpritesheetPreset(4, 4);\n * // This will generate 16 frames with coordinates from (0,0) to (3,3)\n * ```\n */\nexport const AnimationSpritesheetPreset = (framesWidth: number, framesHeight: number) => {\n \n const animations: Array<{ time: number; frameX: number; frameY: number }> = [];\n\n for (let y = 0; y < framesHeight; y++) {\n for (let x = 0; x < framesWidth; x++) {\n const frameIndex = y * framesWidth + x;\n animations.push({ \n time: frameIndex * 10, \n frameX: x, \n frameY: y \n });\n }\n }\n \n return {\n framesWidth,\n framesHeight,\n textures: {\n default: {\n animations: () => [\n animations\n ],\n }\n }\n };\n};\n "],"names":[],"mappings":"AAkBO,MAAM,0BAAA,GAA6B,CAAC,WAAA,EAAqB,YAAA,KAAyB;AAErF,EAAA,MAAM,aAAsE,EAAC;AAE7E,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,YAAA,EAAc,CAAA,EAAA,EAAK;AACnC,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,WAAA,EAAa,CAAA,EAAA,EAAK;AAClC,MAAA,MAAM,UAAA,GAAa,IAAI,WAAA,GAAc,CAAA;AACrC,MAAA,UAAA,CAAW,IAAA,CAAK;AAAA,QACZ,MAAM,UAAA,GAAa,EAAA;AAAA,QACnB,MAAA,EAAQ,CAAA;AAAA,QACR,MAAA,EAAQ;AAAA,OACX,CAAA;AAAA,IACL;AAAA,EACJ;AAEA,EAAA,OAAO;AAAA,IACH,WAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACN,OAAA,EAAS;AAAA,QACL,YAAY,MAAM;AAAA,UACd;AAAA;AACJ;AACJ;AACJ,GACJ;AACJ;;;;"}
1
+ {"version":3,"file":"index36.js","sources":["../src/presets/lpc.ts"],"sourcesContent":["import { Animation, Direction } from \"@rpgjs/common\";\n\nexport const LPCSpritesheetPreset = (options: {\n id: string;\n imageSource: string;\n width: number;\n height: number;\n ratio?: number;\n }) => {\n const ratio = options.ratio ?? 1;\n\n const frameY = (direction: Direction) => {\n return {\n [Direction.Down]: 2,\n [Direction.Left]: 1,\n [Direction.Right]: 3,\n [Direction.Up]: 0,\n }[direction];\n };\n \n const stand = (direction: Direction) => [\n { time: 0, frameX: 0, frameY: frameY(direction) },\n ];\n const anim = (\n direction: Direction,\n framesWidth: number,\n speed: number = 5\n ) => {\n const array: any = [];\n for (let i = 0; i < framesWidth; i++) {\n array.push({ time: i * speed, frameX: i, frameY: frameY(direction) });\n }\n return array;\n };\n \n return {\n id: options.id,\n image: options.imageSource,\n width: options.width,\n height: options.height,\n opacity: 1,\n rectWidth: 64 * ratio,\n rectHeight: 64 * ratio,\n framesWidth: 6,\n framesHeight: 4,\n spriteRealSize: {\n width: 48 * ratio,\n height: 52 * ratio,\n },\n textures: {\n [Animation.Stand]: {\n offset: {\n x: 0,\n y: 512 * ratio,\n },\n animations: ({ direction }) => [stand(direction)],\n },\n [Animation.Walk]: {\n offset: {\n x: 0,\n y: 512 * ratio,\n },\n framesWidth: 9,\n framesHeight: 4,\n animations: ({ direction }) => [anim(direction, 9)],\n },\n [Animation.Attack]: {\n offset: {\n x: 0,\n y: 768 * ratio,\n },\n framesWidth: 6,\n framesHeight: 4,\n animations: ({ direction }) => [anim(direction, 6, 3)],\n },\n [Animation.Skill]: {\n framesWidth: 7,\n framesHeight: 4,\n animations: ({ direction }) => [anim(direction, 7, 3)],\n },\n attack2: {\n offset: {\n x: 0,\n y: 256 * ratio,\n },\n framesWidth: 7,\n framesHeight: 8,\n animations: ({ direction }) => [anim(direction, 7, 3)],\n },\n ...(options.height > 3000\n ? {\n attack3: {\n offset: {\n x: 0,\n y: 5568 - 288 * 4,\n },\n rectWidth: 288,\n rectHeight: 288,\n framesWidth: 6,\n framesHeight: 4,\n animations: ({ direction }) => [anim(direction, 6, 3)],\n },\n }\n : {}),\n },\n };\n };\n "],"names":[],"mappings":"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"}
package/dist/index37.js CHANGED
@@ -1,95 +1,41 @@
1
1
  import { Animation, Direction } from '@rpgjs/common';
2
2
 
3
- const LPCSpritesheetPreset = (options) => {
4
- const ratio = options.ratio ?? 1;
3
+ const RMSpritesheet = (framesWidth, framesHeight, frameStand = 1) => {
4
+ if (framesWidth <= frameStand) {
5
+ frameStand = framesWidth - 1;
6
+ }
5
7
  const frameY = (direction) => {
8
+ const gap = Math.max(4 - framesHeight, 0);
6
9
  return {
7
- [Direction.Down]: 2,
8
- [Direction.Left]: 1,
9
- [Direction.Right]: 3,
10
- [Direction.Up]: 0
10
+ [Direction.Down]: 0,
11
+ [Direction.Left]: Math.max(0, 1 - gap),
12
+ [Direction.Right]: Math.max(0, 2 - gap),
13
+ [Direction.Up]: Math.max(0, 3 - gap)
11
14
  }[direction];
12
15
  };
13
- const stand = (direction) => [
14
- { time: 0, frameX: 0, frameY: frameY(direction) }
15
- ];
16
- const anim = (direction, framesWidth, speed = 5) => {
16
+ const stand = (direction) => [{ time: 0, frameX: frameStand, frameY: frameY(direction) }];
17
+ const walk = (direction) => {
17
18
  const array = [];
19
+ const durationFrame = 10;
18
20
  for (let i = 0; i < framesWidth; i++) {
19
- array.push({ time: i * speed, frameX: i, frameY: frameY(direction) });
21
+ array.push({ time: i * durationFrame, frameX: i, frameY: frameY(direction) });
20
22
  }
23
+ array.push({ time: array[array.length - 1].time + durationFrame });
21
24
  return array;
22
25
  };
23
26
  return {
24
- id: options.id,
25
- image: options.imageSource,
26
- width: options.width,
27
- height: options.height,
28
- opacity: 1,
29
- rectWidth: 64 * ratio,
30
- rectHeight: 64 * ratio,
31
- framesWidth: 6,
32
- framesHeight: 4,
33
- spriteRealSize: {
34
- width: 48 * ratio,
35
- height: 52 * ratio
36
- },
37
27
  textures: {
38
28
  [Animation.Stand]: {
39
- offset: {
40
- x: 0,
41
- y: 512 * ratio
42
- },
43
29
  animations: ({ direction }) => [stand(direction)]
44
30
  },
45
31
  [Animation.Walk]: {
46
- offset: {
47
- x: 0,
48
- y: 512 * ratio
49
- },
50
- framesWidth: 9,
51
- framesHeight: 4,
52
- animations: ({ direction }) => [anim(direction, 9)]
53
- },
54
- [Animation.Attack]: {
55
- offset: {
56
- x: 0,
57
- y: 768 * ratio
58
- },
59
- framesWidth: 6,
60
- framesHeight: 4,
61
- animations: ({ direction }) => [anim(direction, 6, 3)]
62
- },
63
- [Animation.Skill]: {
64
- framesWidth: 7,
65
- framesHeight: 4,
66
- animations: ({ direction }) => [anim(direction, 7, 3)]
67
- },
68
- attack2: {
69
- offset: {
70
- x: 0,
71
- y: 256 * ratio
72
- },
73
- framesWidth: 7,
74
- framesHeight: 8,
75
- animations: ({ direction }) => [anim(direction, 7, 3)]
76
- },
77
- ...options.height > 3e3 ? {
78
- attack3: {
79
- offset: {
80
- x: 0,
81
- y: 5568 - 288 * 4
82
- },
83
- rectWidth: 288,
84
- rectHeight: 288,
85
- framesWidth: 6,
86
- framesHeight: 4,
87
- animations: ({ direction }) => [anim(direction, 6, 3)]
88
- }
89
- } : {}
90
- }
32
+ animations: ({ direction }) => [walk(direction)]
33
+ }
34
+ },
35
+ framesHeight,
36
+ framesWidth
91
37
  };
92
38
  };
93
39
 
94
- export { LPCSpritesheetPreset };
40
+ export { RMSpritesheet };
95
41
  //# sourceMappingURL=index37.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index37.js","sources":["../src/presets/lpc.ts"],"sourcesContent":["import { Animation, Direction } from \"@rpgjs/common\";\n\nexport const LPCSpritesheetPreset = (options: {\n id: string;\n imageSource: string;\n width: number;\n height: number;\n ratio?: number;\n }) => {\n const ratio = options.ratio ?? 1;\n\n const frameY = (direction: Direction) => {\n return {\n [Direction.Down]: 2,\n [Direction.Left]: 1,\n [Direction.Right]: 3,\n [Direction.Up]: 0,\n }[direction];\n };\n \n const stand = (direction: Direction) => [\n { time: 0, frameX: 0, frameY: frameY(direction) },\n ];\n const anim = (\n direction: Direction,\n framesWidth: number,\n speed: number = 5\n ) => {\n const array: any = [];\n for (let i = 0; i < framesWidth; i++) {\n array.push({ time: i * speed, frameX: i, frameY: frameY(direction) });\n }\n return array;\n };\n \n return {\n id: options.id,\n image: options.imageSource,\n width: options.width,\n height: options.height,\n opacity: 1,\n rectWidth: 64 * ratio,\n rectHeight: 64 * ratio,\n framesWidth: 6,\n framesHeight: 4,\n spriteRealSize: {\n width: 48 * ratio,\n height: 52 * ratio,\n },\n textures: {\n [Animation.Stand]: {\n offset: {\n x: 0,\n y: 512 * ratio,\n },\n animations: ({ direction }) => [stand(direction)],\n },\n [Animation.Walk]: {\n offset: {\n x: 0,\n y: 512 * ratio,\n },\n framesWidth: 9,\n framesHeight: 4,\n animations: ({ direction }) => [anim(direction, 9)],\n },\n [Animation.Attack]: {\n offset: {\n x: 0,\n y: 768 * ratio,\n },\n framesWidth: 6,\n framesHeight: 4,\n animations: ({ direction }) => [anim(direction, 6, 3)],\n },\n [Animation.Skill]: {\n framesWidth: 7,\n framesHeight: 4,\n animations: ({ direction }) => [anim(direction, 7, 3)],\n },\n attack2: {\n offset: {\n x: 0,\n y: 256 * ratio,\n },\n framesWidth: 7,\n framesHeight: 8,\n animations: ({ direction }) => [anim(direction, 7, 3)],\n },\n ...(options.height > 3000\n ? {\n attack3: {\n offset: {\n x: 0,\n y: 5568 - 288 * 4,\n },\n rectWidth: 288,\n rectHeight: 288,\n framesWidth: 6,\n framesHeight: 4,\n animations: ({ direction }) => [anim(direction, 6, 3)],\n },\n }\n : {}),\n },\n };\n };\n "],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index37.js","sources":["../src/presets/rmspritesheet.ts"],"sourcesContent":["import { Direction, Animation } from '@rpgjs/common'\n\nexport const RMSpritesheet = (framesWidth: number, framesHeight: number, frameStand: number = 1) => {\n\n if (framesWidth <= frameStand) {\n frameStand = framesWidth - 1\n }\n\n const frameY = direction => {\n const gap = Math.max(4 - framesHeight, 0)\n return {\n [Direction.Down]: 0,\n [Direction.Left]: Math.max(0, 1 - gap),\n [Direction.Right]: Math.max(0, 2 - gap),\n [Direction.Up]: Math.max(0, 3 - gap)\n }[direction]\n }\n\n const stand = (direction: number) => [{ time: 0, frameX: frameStand, frameY: frameY(direction) }]\n const walk = direction => {\n const array: any = []\n const durationFrame = 10\n for (let i = 0; i < framesWidth; i++) {\n array.push({ time: i * durationFrame, frameX: i, frameY: frameY(direction) })\n }\n array.push({ time: array[array.length - 1].time + durationFrame })\n return array\n }\n\n return {\n textures: {\n [Animation.Stand]: {\n animations: ({direction}) => [stand(direction)]\n },\n [Animation.Walk]: {\n animations: ({direction}) => [walk(direction)]\n }\n },\n framesHeight,\n framesWidth\n }\n}"],"names":[],"mappings":";;AAEO,MAAM,aAAA,GAAgB,CAAC,WAAA,EAAqB,YAAA,EAAsB,aAAqB,CAAA,KAAM;AAEhG,EAAA,IAAI,eAAe,UAAA,EAAY;AAC3B,IAAA,UAAA,GAAa,WAAA,GAAc,CAAA;AAAA,EAC/B;AAEA,EAAA,MAAM,SAAS,CAAA,SAAA,KAAa;AACxB,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,CAAA,GAAI,cAAc,CAAC,CAAA;AACxC,IAAA,OAAO;AAAA,MACH,CAAC,SAAA,CAAU,IAAI,GAAG,CAAA;AAAA,MAClB,CAAC,UAAU,IAAI,GAAG,KAAK,GAAA,CAAI,CAAA,EAAG,IAAI,GAAG,CAAA;AAAA,MACrC,CAAC,UAAU,KAAK,GAAG,KAAK,GAAA,CAAI,CAAA,EAAG,IAAI,GAAG,CAAA;AAAA,MACtC,CAAC,UAAU,EAAE,GAAG,KAAK,GAAA,CAAI,CAAA,EAAG,IAAI,GAAG;AAAA,MACrC,SAAS,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,MAAM,KAAA,GAAQ,CAAC,SAAA,KAAsB,CAAC,EAAE,IAAA,EAAM,CAAA,EAAG,MAAA,EAAQ,UAAA,EAAY,MAAA,EAAQ,MAAA,CAAO,SAAS,GAAG,CAAA;AAChG,EAAA,MAAM,OAAO,CAAA,SAAA,KAAa;AACtB,IAAA,MAAM,QAAa,EAAC;AACpB,IAAA,MAAM,aAAA,GAAgB,EAAA;AACtB,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,WAAA,EAAa,CAAA,EAAA,EAAK;AAClC,MAAA,KAAA,CAAM,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,GAAI,aAAA,EAAe,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAQ,MAAA,CAAO,SAAS,CAAA,EAAG,CAAA;AAAA,IAChF;AACA,IAAA,KAAA,CAAM,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,SAAS,CAAC,CAAA,CAAE,IAAA,GAAO,aAAA,EAAe,CAAA;AACjE,IAAA,OAAO,KAAA;AAAA,EACX,CAAA;AAEA,EAAA,OAAO;AAAA,IACH,QAAA,EAAU;AAAA,MACN,CAAC,SAAA,CAAU,KAAK,GAAG;AAAA,QACf,UAAA,EAAY,CAAC,EAAC,SAAA,OAAe,CAAC,KAAA,CAAM,SAAS,CAAC;AAAA,OAClD;AAAA,MACA,CAAC,SAAA,CAAU,IAAI,GAAG;AAAA,QACd,UAAA,EAAY,CAAC,EAAC,SAAA,OAAe,CAAC,IAAA,CAAK,SAAS,CAAC;AAAA;AACjD,KACJ;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACJ;AACJ;;;;"}
package/dist/index38.js CHANGED
@@ -1,41 +1,24 @@
1
- import { Animation, Direction } from '@rpgjs/common';
2
-
3
- const RMSpritesheet = (framesWidth, framesHeight, frameStand = 1) => {
4
- if (framesWidth <= frameStand) {
5
- frameStand = framesWidth - 1;
6
- }
7
- const frameY = (direction) => {
8
- const gap = Math.max(4 - framesHeight, 0);
9
- return {
10
- [Direction.Down]: 0,
11
- [Direction.Left]: Math.max(0, 1 - gap),
12
- [Direction.Right]: Math.max(0, 2 - gap),
13
- [Direction.Up]: Math.max(0, 3 - gap)
14
- }[direction];
15
- };
16
- const stand = (direction) => [{ time: 0, frameX: frameStand, frameY: frameY(direction) }];
17
- const walk = (direction) => {
18
- const array = [];
19
- const durationFrame = 10;
20
- for (let i = 0; i < framesWidth; i++) {
21
- array.push({ time: i * durationFrame, frameX: i, frameY: frameY(direction) });
22
- }
23
- array.push({ time: array[array.length - 1].time + durationFrame });
24
- return array;
25
- };
1
+ const FacesetPreset = (options, framesWidth, framesHeight, expressions) => {
2
+ const textures = {};
3
+ Object.keys(expressions).forEach((expressionName) => {
4
+ const [frameX, frameY] = expressions[expressionName];
5
+ textures[expressionName] = {
6
+ animations: () => [
7
+ [{
8
+ time: 0,
9
+ frameX,
10
+ frameY
11
+ }]
12
+ ]
13
+ };
14
+ });
26
15
  return {
27
- textures: {
28
- [Animation.Stand]: {
29
- animations: ({ direction }) => [stand(direction)]
30
- },
31
- [Animation.Walk]: {
32
- animations: ({ direction }) => [walk(direction)]
33
- }
34
- },
16
+ ...options,
17
+ framesWidth,
35
18
  framesHeight,
36
- framesWidth
19
+ textures
37
20
  };
38
21
  };
39
22
 
40
- export { RMSpritesheet };
23
+ export { FacesetPreset };
41
24
  //# sourceMappingURL=index38.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index38.js","sources":["../src/presets/rmspritesheet.ts"],"sourcesContent":["import { Direction, Animation } from '@rpgjs/common'\n\nexport const RMSpritesheet = (framesWidth: number, framesHeight: number, frameStand: number = 1) => {\n\n if (framesWidth <= frameStand) {\n frameStand = framesWidth - 1\n }\n\n const frameY = direction => {\n const gap = Math.max(4 - framesHeight, 0)\n return {\n [Direction.Down]: 0,\n [Direction.Left]: Math.max(0, 1 - gap),\n [Direction.Right]: Math.max(0, 2 - gap),\n [Direction.Up]: Math.max(0, 3 - gap)\n }[direction]\n }\n\n const stand = (direction: number) => [{ time: 0, frameX: frameStand, frameY: frameY(direction) }]\n const walk = direction => {\n const array: any = []\n const durationFrame = 10\n for (let i = 0; i < framesWidth; i++) {\n array.push({ time: i * durationFrame, frameX: i, frameY: frameY(direction) })\n }\n array.push({ time: array[array.length - 1].time + durationFrame })\n return array\n }\n\n return {\n textures: {\n [Animation.Stand]: {\n animations: ({direction}) => [stand(direction)]\n },\n [Animation.Walk]: {\n animations: ({direction}) => [walk(direction)]\n }\n },\n framesHeight,\n framesWidth\n }\n}"],"names":[],"mappings":";;AAEO,MAAM,aAAA,GAAgB,CAAC,WAAA,EAAqB,YAAA,EAAsB,aAAqB,CAAA,KAAM;AAEhG,EAAA,IAAI,eAAe,UAAA,EAAY;AAC3B,IAAA,UAAA,GAAa,WAAA,GAAc,CAAA;AAAA,EAC/B;AAEA,EAAA,MAAM,SAAS,CAAA,SAAA,KAAa;AACxB,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,CAAA,GAAI,cAAc,CAAC,CAAA;AACxC,IAAA,OAAO;AAAA,MACH,CAAC,SAAA,CAAU,IAAI,GAAG,CAAA;AAAA,MAClB,CAAC,UAAU,IAAI,GAAG,KAAK,GAAA,CAAI,CAAA,EAAG,IAAI,GAAG,CAAA;AAAA,MACrC,CAAC,UAAU,KAAK,GAAG,KAAK,GAAA,CAAI,CAAA,EAAG,IAAI,GAAG,CAAA;AAAA,MACtC,CAAC,UAAU,EAAE,GAAG,KAAK,GAAA,CAAI,CAAA,EAAG,IAAI,GAAG;AAAA,MACrC,SAAS,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,MAAM,KAAA,GAAQ,CAAC,SAAA,KAAsB,CAAC,EAAE,IAAA,EAAM,CAAA,EAAG,MAAA,EAAQ,UAAA,EAAY,MAAA,EAAQ,MAAA,CAAO,SAAS,GAAG,CAAA;AAChG,EAAA,MAAM,OAAO,CAAA,SAAA,KAAa;AACtB,IAAA,MAAM,QAAa,EAAC;AACpB,IAAA,MAAM,aAAA,GAAgB,EAAA;AACtB,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,WAAA,EAAa,CAAA,EAAA,EAAK;AAClC,MAAA,KAAA,CAAM,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,GAAI,aAAA,EAAe,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAQ,MAAA,CAAO,SAAS,CAAA,EAAG,CAAA;AAAA,IAChF;AACA,IAAA,KAAA,CAAM,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,SAAS,CAAC,CAAA,CAAE,IAAA,GAAO,aAAA,EAAe,CAAA;AACjE,IAAA,OAAO,KAAA;AAAA,EACX,CAAA;AAEA,EAAA,OAAO;AAAA,IACH,QAAA,EAAU;AAAA,MACN,CAAC,SAAA,CAAU,KAAK,GAAG;AAAA,QACf,UAAA,EAAY,CAAC,EAAC,SAAA,OAAe,CAAC,KAAA,CAAM,SAAS,CAAC;AAAA,OAClD;AAAA,MACA,CAAC,SAAA,CAAU,IAAI,GAAG;AAAA,QACd,UAAA,EAAY,CAAC,EAAC,SAAA,OAAe,CAAC,IAAA,CAAK,SAAS,CAAC;AAAA;AACjD,KACJ;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACJ;AACJ;;;;"}
1
+ {"version":3,"file":"index38.js","sources":["../src/presets/faceset.ts"],"sourcesContent":["/**\n * Creates a faceset preset for character expressions\n * \n * This preset allows you to define multiple facial expressions for a character,\n * where each expression corresponds to a specific frame position (frameX, frameY)\n * within a single faceset texture. Each expression is defined by its position\n * in the faceset grid.\n * \n * @param options - Object containing the faceset configuration\n * @param framesWidth - Number of frames horizontally in the faceset texture\n * @param framesHeight - Number of frames vertically in the faceset texture\n * @param expressions - Object mapping expression names to their frame positions as tuples [frameX, frameY]\n * @returns Faceset configuration with animations for each expression\n * \n * @example\n * ```typescript\n * const faceset = FacesetPreset({\n * id: \"facesetId\",\n * image: \"faceset.png\",\n * width: 1024,\n * height: 1024,\n * }, 4, 2, {\n * happy: [0, 0],\n * sad: [1, 0],\n * angry: [2, 0],\n * surprised: [3, 0]\n * });\n * ```\n */\nexport const FacesetPreset = (\n options: any,\n framesWidth: number, \n framesHeight: number,\n expressions: Record<string, [number, number]>,\n) => {\n \n const textures: Record<string, any> = {};\n \n // Create texture configuration for each expression\n Object.keys(expressions).forEach((expressionName) => {\n const [frameX, frameY] = expressions[expressionName];\n textures[expressionName] = {\n animations: () => [\n [{ \n time: 0, \n frameX: frameX, \n frameY: frameY \n }]\n ],\n };\n });\n \n return {\n ...options,\n framesWidth,\n framesHeight,\n textures\n };\n};\n "],"names":[],"mappings":"AA6BO,MAAM,aAAA,GAAgB,CACzB,OAAA,EACA,WAAA,EACA,cACA,WAAA,KACC;AAED,EAAA,MAAM,WAAgC,EAAC;AAGvC,EAAA,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA,CAAE,OAAA,CAAQ,CAAC,cAAA,KAAmB;AACjD,IAAA,MAAM,CAAC,MAAA,EAAQ,MAAM,CAAA,GAAI,YAAY,cAAc,CAAA;AACnD,IAAA,QAAA,CAAS,cAAc,CAAA,GAAI;AAAA,MACvB,YAAY,MAAM;AAAA,QACd,CAAC;AAAA,UACG,IAAA,EAAM,CAAA;AAAA,UACN,MAAA;AAAA,UACA;AAAA,SACH;AAAA;AACL,KACJ;AAAA,EACJ,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACH,GAAG,OAAA;AAAA,IACH,WAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACJ;AACJ;;;;"}