@rpgjs/client 5.0.0-alpha.3 → 5.0.0-alpha.5
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/dist/components/index.d.ts +2 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index10.js +1 -1
- package/dist/index11.js +2 -2
- package/dist/index12.js +1 -1
- package/dist/index13.js +1 -1
- package/dist/index13.js.map +1 -1
- package/dist/index14.js +80 -39
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +45 -186
- package/dist/index15.js.map +1 -1
- package/dist/index16.js +187 -5
- package/dist/index16.js.map +1 -1
- package/dist/index17.js +5 -383
- package/dist/index17.js.map +1 -1
- package/dist/index18.js +384 -28
- package/dist/index18.js.map +1 -1
- package/dist/index19.js +24 -17
- package/dist/index19.js.map +1 -1
- package/dist/index2.js +6 -6
- package/dist/index20.js +16 -2413
- package/dist/index20.js.map +1 -1
- package/dist/index21.js +2395 -88
- package/dist/index21.js.map +1 -1
- package/dist/index22.js +108 -103
- package/dist/index22.js.map +1 -1
- package/dist/index23.js +95 -57
- package/dist/index23.js.map +1 -1
- package/dist/index24.js +62 -12
- package/dist/index24.js.map +1 -1
- package/dist/index25.js +17 -37
- package/dist/index25.js.map +1 -1
- package/dist/index26.js +39 -3
- package/dist/index26.js.map +1 -1
- package/dist/index27.js +1 -318
- package/dist/index27.js.map +1 -1
- package/dist/index28.js +319 -22
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +22 -8
- package/dist/index29.js.map +1 -1
- package/dist/index3.js +2 -2
- package/dist/index30.js +4 -4
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +6 -169
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +9 -498
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +4400 -9
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +307 -4394
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +32 -62
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +169 -56
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +497 -16
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +17 -17
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +20 -0
- package/dist/index39.js.map +1 -0
- package/dist/index4.js +2 -2
- package/dist/index5.js +1 -1
- package/dist/index6.js +1 -1
- package/dist/index7.js +1 -1
- package/dist/index8.js +1 -1
- package/dist/index9.js +2 -2
- package/package.json +13 -11
- package/src/components/index.ts +2 -1
- package/src/components/scenes/draw-map.ce +0 -18
- package/src/components/scenes/event-layer.ce +1 -1
- package/vite.config.ts +1 -1
- package/CHANGELOG.md +0 -9
- package/src/components/scenes/element-map.ce +0 -23
package/dist/index22.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index22.js","sources":["
|
|
1
|
+
{"version":3,"file":"index22.js","sources":["../../../node_modules/.pnpm/@signe+sync@2.3.3/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]}
|
package/dist/index23.js
CHANGED
|
@@ -1,69 +1,107 @@
|
|
|
1
|
-
import { useProps, useDefineProps, animatedSignal,
|
|
2
|
-
import
|
|
1
|
+
import { useProps, useDefineProps, signal, animatedSignal, computed, trigger, mount, effect, h, Container, Rect, cond, Text } from 'canvasengine';
|
|
2
|
+
import component$1 from './index35.js';
|
|
3
|
+
import { inject } from './index6.js';
|
|
4
|
+
import { RpgClientEngine } from './index2.js';
|
|
3
5
|
|
|
4
6
|
function component($$props) {
|
|
5
7
|
useProps($$props);
|
|
6
8
|
const defineProps = useDefineProps($$props);
|
|
7
|
-
var _a = defineProps(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var
|
|
16
|
-
|
|
9
|
+
var _a = defineProps(), message = _a.message, _choices = _a.choices, onFinish = _a.onFinish; _a.onInteraction;
|
|
10
|
+
var client = inject(RpgClientEngine);
|
|
11
|
+
var keyboardControls = client.globalConfig.keyboardControls;
|
|
12
|
+
client.stopProcessingInput = true;
|
|
13
|
+
var isDestroyed = false;
|
|
14
|
+
var texts = [message()];
|
|
15
|
+
var height = signal(250);
|
|
16
|
+
var isTextCompleted = signal(false);
|
|
17
|
+
var border = signal({ width: 5, color: "#595971" });
|
|
18
|
+
var shadow = signal({ color: "#000", blur: 10, offsetX: 10, offsetY: 10 });
|
|
19
|
+
var contentOpacity = animatedSignal(0, {
|
|
20
|
+
duration: 1000,
|
|
21
|
+
});
|
|
22
|
+
var scaleX = animatedSignal(0, {
|
|
23
|
+
duration: 500,
|
|
24
|
+
});
|
|
25
|
+
scaleX.set(1);
|
|
26
|
+
contentOpacity.set(1);
|
|
27
|
+
var currentTextIndex = signal(0);
|
|
28
|
+
var currentText = computed(function () { var _a; return (_a = texts === null || texts === void 0 ? void 0 : texts[currentTextIndex()]) !== null && _a !== void 0 ? _a : ''; });
|
|
29
|
+
var isChoiceDisplayed = signal(false);
|
|
30
|
+
var text = computed(function () {
|
|
31
|
+
var current = currentText();
|
|
32
|
+
return typeof current === "string" ? current : current.text;
|
|
17
33
|
});
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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 = -200;
|
|
31
|
-
break;
|
|
32
|
-
case Direction.Up:
|
|
33
|
-
velocityY = speed;
|
|
34
|
-
break;
|
|
35
|
-
case Direction.Down:
|
|
36
|
-
velocityY = -200;
|
|
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);
|
|
34
|
+
var choices = computed(function () {
|
|
35
|
+
//const current = currentText();
|
|
36
|
+
//return typeof current === "string" ? null : current.choices;
|
|
37
|
+
return _choices;
|
|
45
38
|
});
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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;
|
|
39
|
+
var visibleSelection = computed(function () { return isChoiceDisplayed() && choices().length != 0; });
|
|
40
|
+
var triggerSkip = trigger();
|
|
41
|
+
var typewriter = {
|
|
42
|
+
speed: 0.3,
|
|
43
|
+
skip: triggerSkip,
|
|
44
|
+
onComplete: function () {
|
|
45
|
+
isTextCompleted.set(true);
|
|
59
46
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
47
|
+
};
|
|
48
|
+
var textStyle = {
|
|
49
|
+
wordWrap: true,
|
|
50
|
+
wordWrapWidth: 700 - 256 - 80
|
|
51
|
+
};
|
|
52
|
+
signal({ x: 0, y: 0, width: 256, height: 256 });
|
|
53
|
+
mount(function (element) {
|
|
54
|
+
var dialogbox = element.props.children[0];
|
|
55
|
+
return function () {
|
|
56
|
+
dialogbox.directives.controls.onDestroy();
|
|
57
|
+
isDestroyed = true;
|
|
58
|
+
// Wait destroy is finished before start processing input
|
|
59
|
+
setTimeout(function () {
|
|
60
|
+
client.stopProcessingInput = false;
|
|
61
|
+
}, 500);
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
var controls = signal({
|
|
65
|
+
next: {
|
|
66
|
+
bind: keyboardControls.action,
|
|
67
|
+
keyDown: function (e) {
|
|
68
|
+
if (isDestroyed)
|
|
69
|
+
return;
|
|
70
|
+
if (isChoiceDisplayed()) {
|
|
71
|
+
// If choices are displayed, do nothing (wait for selection)
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// If text is still typing, just skip (fast forward) the animation
|
|
75
|
+
if (!isTextCompleted()) {
|
|
76
|
+
triggerSkip.start();
|
|
77
|
+
isTextCompleted.set(true);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
var isFinished = currentTextIndex() === texts.length - 1;
|
|
81
|
+
currentTextIndex.update(function (index) {
|
|
82
|
+
if (index < texts.length - 1) {
|
|
83
|
+
return index + 1;
|
|
84
|
+
}
|
|
85
|
+
return index;
|
|
86
|
+
});
|
|
87
|
+
isChoiceDisplayed.set(false);
|
|
88
|
+
isTextCompleted.set(false);
|
|
89
|
+
if (isFinished && onFinish) {
|
|
90
|
+
onFinish();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
var onSelect = function (index) {
|
|
97
|
+
onFinish(index);
|
|
98
|
+
};
|
|
99
|
+
effect(function () {
|
|
100
|
+
if (choices().length != 0) {
|
|
101
|
+
isChoiceDisplayed.set(true);
|
|
64
102
|
}
|
|
65
103
|
});
|
|
66
|
-
let $this = h(
|
|
104
|
+
let $this = h(Container, { justifyContent: 'center', alignItems: 'center', width: '100%', height: '100%' }, h(Container, { ref: 'dialogbox', scale: { x: scaleX }, anchor: [0.5, 0.5], width: 700, height, controls, positionType: 'absolute', bottom: 10 }, [h(Rect, { width: 700, height: 250, color: '#1a1a2e' }), h(Rect, { x: 0, y: 0, width: 700, height, color: '#1a1a2e', alpha: 0.9, borderRadius: 10, border, shadow }), h(Container, { flexDirection: 'row', width: 700, height, alpha: contentOpacity }, h(Container, { flexDirection: 'column' }, [h(Text, { text, color: '#fff', fontSize: 18, margin: 40, typewriter, style: textStyle }), cond(visibleSelection, () => h(component$1, { selectedIndex: 0, items: choices, onSelect }))]))]));
|
|
67
105
|
return $this
|
|
68
106
|
}
|
|
69
107
|
|
package/dist/index23.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index23.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index23.js","sources":["../src/components/gui/dialogbox/index.ce"],"sourcesContent":["<Container justifyContent=\"center\" alignItems=\"center\" width=\"100%\" height=\"100%\">\n <Container\n ref=\"dialogbox\"\n scale={{ x: scaleX }}\n anchor={[0.5, 0.5]}\n width={700}\n height\n controls\n positionType=\"absolute\"\n bottom={10}\n >\n <Rect width={700} height={250} color=\"#1a1a2e\" />\n <Rect\n x={0}\n y={0}\n width={700}\n height\n color=\"#1a1a2e\"\n alpha={0.9}\n borderRadius={10}\n border\n shadow\n />\n <Container\n flexDirection=\"row\"\n width={700}\n height\n alpha={contentOpacity}\n >\n <Container flexDirection=\"column\">\n <Text\n text\n color=\"#fff\"\n fontSize={18}\n margin={40}\n typewriter\n style={textStyle}\n />\n @if (visibleSelection) {\n <Selection selectedIndex={0} items={choices} onSelect />\n }\n </Container>\n </Container>\n</Container> \n\n \n</Container>\n<script>\n import Selection from './selection.ce'\n\n import {\n animatedSignal,\n computed,\n effect,\n signal,\n trigger,\n mount\n } from \"canvasengine\";\n\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const {\n message,\n choices: _choices,\n onFinish,\n onInteraction\n } = defineProps();\n\n const client = inject(RpgClientEngine);\n const keyboardControls = client.globalConfig.keyboardControls;\n\n client.stopProcessingInput = true;\n let isDestroyed = false;\n\n const texts = [message()]\n const height = signal(250);\n const isTextCompleted = signal(false);\n\n const drawSpeaker = (g) => {\n g.beginFill(0xffa500); // Orange color\n g.lineStyle(2, 0x000000); // Black border\n g.moveTo(0, 0);\n g.lineTo(70, 0);\n g.lineTo(80, 15);\n g.lineTo(70, 30);\n g.lineTo(0, 30);\n g.lineTo(0, 0);\n g.endFill();\n };\n\n const border = signal({ width: 5, color: \"#595971\" });\n const shadow = signal({ color: \"#000\", blur: 10, offsetX: 10, offsetY: 10 });\n\n const contentOpacity = animatedSignal(0, {\n duration: 1000,\n });\n\n const scaleX = animatedSignal(0, {\n duration: 500,\n });\n\n scaleX.set(1);\n contentOpacity.set(1);\n\n const currentTextIndex = signal(0);\n const currentText = computed(() => texts?.[currentTextIndex()] ?? '');\n const isChoiceDisplayed = signal(false);\n\n const text = computed(() => {\n const current = currentText();\n return typeof current === \"string\" ? current : current.text;\n });\n\n const choices = computed(() => {\n //const current = currentText();\n //return typeof current === \"string\" ? null : current.choices;\n return _choices;\n });\n\n const visibleSelection = computed(() => isChoiceDisplayed() && choices().length != 0)\n\n const triggerSkip = trigger();\n\n const typewriter = {\n speed: 0.3,\n skip: triggerSkip,\n onComplete: () => {\n isTextCompleted.set(true);\n }\n }\n\n const textStyle = {\n wordWrap: true,\n wordWrapWidth: 700 - 256 - 80\n }\n\n const face = signal({ x: 0, y: 0, width: 256, height: 256 });\n\n mount((element) => {\n const [dialogbox] = element.props.children\n return () => {\n dialogbox.directives.controls.onDestroy()\n isDestroyed = true;\n // Wait destroy is finished before start processing input\n setTimeout(() => {\n client.stopProcessingInput = false;\n }, 500)\n }\n })\n\n const controls = signal({\n next: {\n bind: keyboardControls.action,\n keyDown(e) {\n if (isDestroyed) return;\n if (isChoiceDisplayed()) {\n // If choices are displayed, do nothing (wait for selection)\n return;\n }\n\n // If text is still typing, just skip (fast forward) the animation\n if (!isTextCompleted()) {\n triggerSkip.start();\n isTextCompleted.set(true);\n }\n else {\n const isFinished = currentTextIndex() === texts.length - 1;\n currentTextIndex.update((index) => {\n if (index < texts.length - 1) {\n return index + 1;\n }\n return index;\n });\n isChoiceDisplayed.set(false);\n isTextCompleted.set(false);\n if (isFinished && onFinish) {\n onFinish();\n } \n }\n },\n },\n });\n\n const onSelect = (index) => {\n onFinish(index);\n }\n \n effect(() => {\n if (choices().length != 0) {\n isChoiceDisplayed.set(true);\n }\n });\n</script>"],"names":["Selection"],"mappings":"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"}
|
package/dist/index24.js
CHANGED
|
@@ -1,19 +1,69 @@
|
|
|
1
|
-
import { useProps, useDefineProps, h,
|
|
2
|
-
import {
|
|
3
|
-
import { inject } from './index6.js';
|
|
1
|
+
import { useProps, useDefineProps, animatedSignal, signal, mount, tick, h, Text } from 'canvasengine';
|
|
2
|
+
import { Direction } from '@rpgjs/common';
|
|
4
3
|
|
|
5
4
|
function component($$props) {
|
|
6
5
|
useProps($$props);
|
|
7
6
|
const defineProps = useDefineProps($$props);
|
|
8
|
-
var _a = defineProps(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
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 = -200;
|
|
31
|
+
break;
|
|
32
|
+
case Direction.Up:
|
|
33
|
+
velocityY = speed;
|
|
34
|
+
break;
|
|
35
|
+
case Direction.Down:
|
|
36
|
+
velocityY = -200;
|
|
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 });
|
|
17
67
|
return $this
|
|
18
68
|
}
|
|
19
69
|
|
package/dist/index24.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index24.js","sources":["../src/components/effects/
|
|
1
|
+
{"version":3,"file":"index24.js","sources":["../src/components/effects/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/index25.js
CHANGED
|
@@ -1,41 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useProps, useDefineProps, h, Sprite } from 'canvasengine';
|
|
2
|
+
import { RpgClientEngine } from './index2.js';
|
|
3
|
+
import { inject } from './index6.js';
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
};
|
|
26
|
-
return {
|
|
27
|
-
textures: {
|
|
28
|
-
[Animation.Stand]: {
|
|
29
|
-
animations: ({ direction }) => [stand(direction)]
|
|
30
|
-
},
|
|
31
|
-
[Animation.Walk]: {
|
|
32
|
-
animations: ({ direction }) => [walk(direction)]
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
framesHeight,
|
|
36
|
-
framesWidth
|
|
37
|
-
};
|
|
5
|
+
function component($$props) {
|
|
6
|
+
useProps($$props);
|
|
7
|
+
const defineProps = useDefineProps($$props);
|
|
8
|
+
var _a = defineProps(), x = _a.x, y = _a.y, name = _a.name, onFinish = _a.onFinish;
|
|
9
|
+
var client = inject(RpgClientEngine);
|
|
10
|
+
var spritesheets = client.spritesheets;
|
|
11
|
+
var sheet = {
|
|
12
|
+
definition: spritesheets.get(name()),
|
|
13
|
+
playing: 'default',
|
|
14
|
+
onFinish: onFinish
|
|
38
15
|
};
|
|
16
|
+
let $this = h(Sprite, { sheet, x, y, anchor: 0.5 });
|
|
17
|
+
return $this
|
|
18
|
+
}
|
|
39
19
|
|
|
40
|
-
export {
|
|
20
|
+
export { component as default };
|
|
41
21
|
//# sourceMappingURL=index25.js.map
|
package/dist/index25.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index25.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"index25.js","sources":["../src/components/effects/animation.ce"],"sourcesContent":["<Sprite sheet x y anchor={0.5} />\n\n<script>\n import { signal } from \"canvasengine\";\n import { RpgClientEngine } from \"../../RpgClientEngine\";\n import { inject } from \"../../core/inject\";\n\n const { x, y, name, onFinish } = defineProps();\n\n const client = inject(RpgClientEngine);\n const spritesheets = client.spritesheets;\n\n const sheet = {\n definition: spritesheets.get(name()),\n playing: 'default',\n onFinish\n };\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,GAAG,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ;AAC1F,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AACpC,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY;AACtC,IAAI,KAAK,GAAG;AACZ,IAAI,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACxC,IAAI,OAAO,EAAE,SAAS;AACtB,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;;;;"}
|
package/dist/index26.js
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
1
|
+
import { Animation, Direction } from '@rpgjs/common';
|
|
3
2
|
|
|
4
|
-
|
|
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
|
+
};
|
|
26
|
+
return {
|
|
27
|
+
textures: {
|
|
28
|
+
[Animation.Stand]: {
|
|
29
|
+
animations: ({ direction }) => [stand(direction)]
|
|
30
|
+
},
|
|
31
|
+
[Animation.Walk]: {
|
|
32
|
+
animations: ({ direction }) => [walk(direction)]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
framesHeight,
|
|
36
|
+
framesWidth
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export { RMSpritesheet };
|
|
5
41
|
//# sourceMappingURL=index26.js.map
|
package/dist/index26.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index26.js","sources":["
|
|
1
|
+
{"version":3,"file":"index26.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,aAAgB,GAAA,CAAC,WAAqB,EAAA,YAAA,EAAsB,aAAqB,CAAM,KAAA;AAEhG,EAAA,IAAI,eAAe,UAAY,EAAA;AAC3B,IAAA,UAAA,GAAa,WAAc,GAAA,CAAA;AAAA;AAG/B,EAAA,MAAM,SAAS,CAAa,SAAA,KAAA;AACxB,IAAA,MAAM,GAAM,GAAA,IAAA,CAAK,GAAI,CAAA,CAAA,GAAI,cAAc,CAAC,CAAA;AACxC,IAAO,OAAA;AAAA,MACH,CAAC,SAAU,CAAA,IAAI,GAAG,CAAA;AAAA,MAClB,CAAC,UAAU,IAAI,GAAG,KAAK,GAAI,CAAA,CAAA,EAAG,IAAI,GAAG,CAAA;AAAA,MACrC,CAAC,UAAU,KAAK,GAAG,KAAK,GAAI,CAAA,CAAA,EAAG,IAAI,GAAG,CAAA;AAAA,MACtC,CAAC,UAAU,EAAE,GAAG,KAAK,GAAI,CAAA,CAAA,EAAG,IAAI,GAAG;AAAA,MACrC,SAAS,CAAA;AAAA,GACf;AAEA,EAAA,MAAM,KAAQ,GAAA,CAAC,SAAsB,KAAA,CAAC,EAAE,IAAA,EAAM,CAAG,EAAA,MAAA,EAAQ,UAAY,EAAA,MAAA,EAAQ,MAAO,CAAA,SAAS,GAAG,CAAA;AAChG,EAAA,MAAM,OAAO,CAAa,SAAA,KAAA;AACtB,IAAA,MAAM,QAAa,EAAC;AACpB,IAAA,MAAM,aAAgB,GAAA,EAAA;AACtB,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,WAAA,EAAa,CAAK,EAAA,EAAA;AAClC,MAAM,KAAA,CAAA,IAAA,CAAK,EAAE,IAAA,EAAM,CAAI,GAAA,aAAA,EAAe,MAAQ,EAAA,CAAA,EAAG,MAAQ,EAAA,MAAA,CAAO,SAAS,CAAA,EAAG,CAAA;AAAA;AAEhF,IAAM,KAAA,CAAA,IAAA,CAAK,EAAE,IAAA,EAAM,KAAM,CAAA,KAAA,CAAM,SAAS,CAAC,CAAA,CAAE,IAAO,GAAA,aAAA,EAAe,CAAA;AACjE,IAAO,OAAA,KAAA;AAAA,GACX;AAEA,EAAO,OAAA;AAAA,IACH,QAAU,EAAA;AAAA,MACN,CAAC,SAAU,CAAA,KAAK,GAAG;AAAA,QACf,UAAA,EAAY,CAAC,EAAC,SAAA,OAAe,CAAC,KAAA,CAAM,SAAS,CAAC;AAAA,OAClD;AAAA,MACA,CAAC,SAAU,CAAA,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;;;;"}
|