@rpgjs/client 5.0.0-alpha.22 → 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.
- package/dist/Game/Object.d.ts +2 -0
- package/dist/RpgClientEngine.d.ts +115 -9
- package/dist/components/gui/mobile/index.d.ts +8 -0
- package/dist/components/prebuilt/index.d.ts +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +13 -8
- package/dist/index.js.map +1 -1
- package/dist/index10.js +1 -1
- package/dist/index11.js +6 -5
- package/dist/index11.js.map +1 -1
- package/dist/index12.js +2 -2
- package/dist/index13.js +102 -10
- package/dist/index13.js.map +1 -1
- package/dist/index14.js +67 -9
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +10 -263
- package/dist/index15.js.map +1 -1
- package/dist/index16.js +9 -97
- package/dist/index16.js.map +1 -1
- package/dist/index17.js +300 -89
- package/dist/index17.js.map +1 -1
- package/dist/index18.js +63 -80
- package/dist/index18.js.map +1 -1
- package/dist/index19.js +96 -348
- package/dist/index19.js.map +1 -1
- package/dist/index2.js +176 -24
- package/dist/index2.js.map +1 -1
- package/dist/index20.js +360 -17
- package/dist/index20.js.map +1 -1
- package/dist/index21.js +19 -50
- package/dist/index21.js.map +1 -1
- package/dist/index22.js +212 -5
- package/dist/index22.js.map +1 -1
- package/dist/index23.js +6 -395
- package/dist/index23.js.map +1 -1
- package/dist/index24.js +4 -39
- package/dist/index24.js.map +1 -1
- package/dist/index25.js +19 -20
- package/dist/index25.js.map +1 -1
- package/dist/index26.js +43 -2624
- package/dist/index26.js.map +1 -1
- package/dist/index27.js +5 -110
- package/dist/index27.js.map +1 -1
- package/dist/index28.js +394 -65
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +40 -15
- package/dist/index29.js.map +1 -1
- package/dist/index3.js +3 -3
- package/dist/index30.js +21 -23
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +2624 -86
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +107 -34
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +69 -22
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +19 -3
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +21 -329
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +91 -30
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +37 -7
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +22 -9
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +139 -10
- package/dist/index39.js.map +1 -1
- package/dist/index4.js +3 -3
- package/dist/index40.js +16 -6
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +1 -325
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +530 -3680
- package/dist/index42.js.map +1 -1
- package/dist/index43.js +24 -67
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +9 -184
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +6 -503
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +325 -2
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +3687 -17
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +69 -202
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +182 -7
- package/dist/index49.js.map +1 -1
- package/dist/index5.js +1 -1
- package/dist/index50.js +497 -106
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +48 -130
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +17 -134
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +3 -109
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +9 -138
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +111 -7
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +130 -48
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +137 -0
- package/dist/index57.js.map +1 -0
- package/dist/index58.js +112 -0
- package/dist/index58.js.map +1 -0
- package/dist/index59.js +9 -0
- package/dist/index59.js.map +1 -0
- package/dist/index6.js +1 -1
- package/dist/index7.js +1 -1
- package/dist/index8.js +17 -2
- package/dist/index8.js.map +1 -1
- package/dist/index9.js +10 -27
- package/dist/index9.js.map +1 -1
- package/dist/services/keyboardControls.d.ts +1 -2
- package/dist/services/mmorpg.d.ts +1 -1
- package/dist/services/standalone.d.ts +1 -1
- package/package.json +9 -9
- package/src/Game/Object.ts +8 -0
- package/src/Gui/Gui.ts +4 -31
- package/src/RpgClientEngine.ts +193 -20
- package/src/components/character.ce +146 -9
- package/src/components/gui/mobile/index.ts +24 -0
- package/src/components/gui/mobile/mobile.ce +80 -0
- package/src/components/prebuilt/index.ts +1 -0
- package/src/components/prebuilt/light-halo.ce +148 -0
- package/src/components/scenes/canvas.ce +2 -2
- package/src/components/scenes/event-layer.ce +1 -0
- package/src/components/scenes/transition.ce +60 -0
- package/src/index.ts +6 -1
- package/src/module.ts +15 -0
- package/src/services/keyboardControls.ts +1 -1
package/dist/index57.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { util } from './index56.js';
|
|
2
|
+
|
|
3
|
+
const ZodIssueCode = util.arrayToEnum([
|
|
4
|
+
"invalid_type",
|
|
5
|
+
"invalid_literal",
|
|
6
|
+
"custom",
|
|
7
|
+
"invalid_union",
|
|
8
|
+
"invalid_union_discriminator",
|
|
9
|
+
"invalid_enum_value",
|
|
10
|
+
"unrecognized_keys",
|
|
11
|
+
"invalid_arguments",
|
|
12
|
+
"invalid_return_type",
|
|
13
|
+
"invalid_date",
|
|
14
|
+
"invalid_string",
|
|
15
|
+
"too_small",
|
|
16
|
+
"too_big",
|
|
17
|
+
"invalid_intersection_types",
|
|
18
|
+
"not_multiple_of",
|
|
19
|
+
"not_finite",
|
|
20
|
+
]);
|
|
21
|
+
const quotelessJson = (obj) => {
|
|
22
|
+
const json = JSON.stringify(obj, null, 2);
|
|
23
|
+
return json.replace(/"([^"]+)":/g, "$1:");
|
|
24
|
+
};
|
|
25
|
+
class ZodError extends Error {
|
|
26
|
+
get errors() {
|
|
27
|
+
return this.issues;
|
|
28
|
+
}
|
|
29
|
+
constructor(issues) {
|
|
30
|
+
super();
|
|
31
|
+
this.issues = [];
|
|
32
|
+
this.addIssue = (sub) => {
|
|
33
|
+
this.issues = [...this.issues, sub];
|
|
34
|
+
};
|
|
35
|
+
this.addIssues = (subs = []) => {
|
|
36
|
+
this.issues = [...this.issues, ...subs];
|
|
37
|
+
};
|
|
38
|
+
const actualProto = new.target.prototype;
|
|
39
|
+
if (Object.setPrototypeOf) {
|
|
40
|
+
// eslint-disable-next-line ban/ban
|
|
41
|
+
Object.setPrototypeOf(this, actualProto);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
this.__proto__ = actualProto;
|
|
45
|
+
}
|
|
46
|
+
this.name = "ZodError";
|
|
47
|
+
this.issues = issues;
|
|
48
|
+
}
|
|
49
|
+
format(_mapper) {
|
|
50
|
+
const mapper = _mapper ||
|
|
51
|
+
function (issue) {
|
|
52
|
+
return issue.message;
|
|
53
|
+
};
|
|
54
|
+
const fieldErrors = { _errors: [] };
|
|
55
|
+
const processError = (error) => {
|
|
56
|
+
for (const issue of error.issues) {
|
|
57
|
+
if (issue.code === "invalid_union") {
|
|
58
|
+
issue.unionErrors.map(processError);
|
|
59
|
+
}
|
|
60
|
+
else if (issue.code === "invalid_return_type") {
|
|
61
|
+
processError(issue.returnTypeError);
|
|
62
|
+
}
|
|
63
|
+
else if (issue.code === "invalid_arguments") {
|
|
64
|
+
processError(issue.argumentsError);
|
|
65
|
+
}
|
|
66
|
+
else if (issue.path.length === 0) {
|
|
67
|
+
fieldErrors._errors.push(mapper(issue));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
let curr = fieldErrors;
|
|
71
|
+
let i = 0;
|
|
72
|
+
while (i < issue.path.length) {
|
|
73
|
+
const el = issue.path[i];
|
|
74
|
+
const terminal = i === issue.path.length - 1;
|
|
75
|
+
if (!terminal) {
|
|
76
|
+
curr[el] = curr[el] || { _errors: [] };
|
|
77
|
+
// if (typeof el === "string") {
|
|
78
|
+
// curr[el] = curr[el] || { _errors: [] };
|
|
79
|
+
// } else if (typeof el === "number") {
|
|
80
|
+
// const errorArray: any = [];
|
|
81
|
+
// errorArray._errors = [];
|
|
82
|
+
// curr[el] = curr[el] || errorArray;
|
|
83
|
+
// }
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
curr[el] = curr[el] || { _errors: [] };
|
|
87
|
+
curr[el]._errors.push(mapper(issue));
|
|
88
|
+
}
|
|
89
|
+
curr = curr[el];
|
|
90
|
+
i++;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
processError(this);
|
|
96
|
+
return fieldErrors;
|
|
97
|
+
}
|
|
98
|
+
static assert(value) {
|
|
99
|
+
if (!(value instanceof ZodError)) {
|
|
100
|
+
throw new Error(`Not a ZodError: ${value}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
toString() {
|
|
104
|
+
return this.message;
|
|
105
|
+
}
|
|
106
|
+
get message() {
|
|
107
|
+
return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);
|
|
108
|
+
}
|
|
109
|
+
get isEmpty() {
|
|
110
|
+
return this.issues.length === 0;
|
|
111
|
+
}
|
|
112
|
+
flatten(mapper = (issue) => issue.message) {
|
|
113
|
+
const fieldErrors = {};
|
|
114
|
+
const formErrors = [];
|
|
115
|
+
for (const sub of this.issues) {
|
|
116
|
+
if (sub.path.length > 0) {
|
|
117
|
+
const firstEl = sub.path[0];
|
|
118
|
+
fieldErrors[firstEl] = fieldErrors[firstEl] || [];
|
|
119
|
+
fieldErrors[firstEl].push(mapper(sub));
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
formErrors.push(mapper(sub));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return { formErrors, fieldErrors };
|
|
126
|
+
}
|
|
127
|
+
get formErrors() {
|
|
128
|
+
return this.flatten();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
ZodError.create = (issues) => {
|
|
132
|
+
const error = new ZodError(issues);
|
|
133
|
+
return error;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
export { ZodError, ZodIssueCode, quotelessJson };
|
|
137
|
+
//# sourceMappingURL=index57.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index57.js","sources":["../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js"],"sourcesContent":["import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/index58.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { ZodIssueCode } from './index57.js';
|
|
2
|
+
import { util, ZodParsedType } from './index56.js';
|
|
3
|
+
|
|
4
|
+
const errorMap = (issue, _ctx) => {
|
|
5
|
+
let message;
|
|
6
|
+
switch (issue.code) {
|
|
7
|
+
case ZodIssueCode.invalid_type:
|
|
8
|
+
if (issue.received === ZodParsedType.undefined) {
|
|
9
|
+
message = "Required";
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
message = `Expected ${issue.expected}, received ${issue.received}`;
|
|
13
|
+
}
|
|
14
|
+
break;
|
|
15
|
+
case ZodIssueCode.invalid_literal:
|
|
16
|
+
message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;
|
|
17
|
+
break;
|
|
18
|
+
case ZodIssueCode.unrecognized_keys:
|
|
19
|
+
message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`;
|
|
20
|
+
break;
|
|
21
|
+
case ZodIssueCode.invalid_union:
|
|
22
|
+
message = `Invalid input`;
|
|
23
|
+
break;
|
|
24
|
+
case ZodIssueCode.invalid_union_discriminator:
|
|
25
|
+
message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;
|
|
26
|
+
break;
|
|
27
|
+
case ZodIssueCode.invalid_enum_value:
|
|
28
|
+
message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;
|
|
29
|
+
break;
|
|
30
|
+
case ZodIssueCode.invalid_arguments:
|
|
31
|
+
message = `Invalid function arguments`;
|
|
32
|
+
break;
|
|
33
|
+
case ZodIssueCode.invalid_return_type:
|
|
34
|
+
message = `Invalid function return type`;
|
|
35
|
+
break;
|
|
36
|
+
case ZodIssueCode.invalid_date:
|
|
37
|
+
message = `Invalid date`;
|
|
38
|
+
break;
|
|
39
|
+
case ZodIssueCode.invalid_string:
|
|
40
|
+
if (typeof issue.validation === "object") {
|
|
41
|
+
if ("includes" in issue.validation) {
|
|
42
|
+
message = `Invalid input: must include "${issue.validation.includes}"`;
|
|
43
|
+
if (typeof issue.validation.position === "number") {
|
|
44
|
+
message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if ("startsWith" in issue.validation) {
|
|
48
|
+
message = `Invalid input: must start with "${issue.validation.startsWith}"`;
|
|
49
|
+
}
|
|
50
|
+
else if ("endsWith" in issue.validation) {
|
|
51
|
+
message = `Invalid input: must end with "${issue.validation.endsWith}"`;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
util.assertNever(issue.validation);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (issue.validation !== "regex") {
|
|
58
|
+
message = `Invalid ${issue.validation}`;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
message = "Invalid";
|
|
62
|
+
}
|
|
63
|
+
break;
|
|
64
|
+
case ZodIssueCode.too_small:
|
|
65
|
+
if (issue.type === "array")
|
|
66
|
+
message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;
|
|
67
|
+
else if (issue.type === "string")
|
|
68
|
+
message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;
|
|
69
|
+
else if (issue.type === "number")
|
|
70
|
+
message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
|
|
71
|
+
else if (issue.type === "bigint")
|
|
72
|
+
message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;
|
|
73
|
+
else if (issue.type === "date")
|
|
74
|
+
message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;
|
|
75
|
+
else
|
|
76
|
+
message = "Invalid input";
|
|
77
|
+
break;
|
|
78
|
+
case ZodIssueCode.too_big:
|
|
79
|
+
if (issue.type === "array")
|
|
80
|
+
message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;
|
|
81
|
+
else if (issue.type === "string")
|
|
82
|
+
message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;
|
|
83
|
+
else if (issue.type === "number")
|
|
84
|
+
message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
|
|
85
|
+
else if (issue.type === "bigint")
|
|
86
|
+
message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;
|
|
87
|
+
else if (issue.type === "date")
|
|
88
|
+
message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;
|
|
89
|
+
else
|
|
90
|
+
message = "Invalid input";
|
|
91
|
+
break;
|
|
92
|
+
case ZodIssueCode.custom:
|
|
93
|
+
message = `Invalid input`;
|
|
94
|
+
break;
|
|
95
|
+
case ZodIssueCode.invalid_intersection_types:
|
|
96
|
+
message = `Intersection results could not be merged`;
|
|
97
|
+
break;
|
|
98
|
+
case ZodIssueCode.not_multiple_of:
|
|
99
|
+
message = `Number must be a multiple of ${issue.multipleOf}`;
|
|
100
|
+
break;
|
|
101
|
+
case ZodIssueCode.not_finite:
|
|
102
|
+
message = "Number must be finite";
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
message = _ctx.defaultError;
|
|
106
|
+
util.assertNever(issue);
|
|
107
|
+
}
|
|
108
|
+
return { message };
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export { errorMap as default };
|
|
112
|
+
//# sourceMappingURL=index58.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index58.js","sources":["../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js"],"sourcesContent":["import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/index59.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
var errorUtil;
|
|
2
|
+
(function (errorUtil) {
|
|
3
|
+
errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
|
|
4
|
+
// biome-ignore lint:
|
|
5
|
+
errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
|
|
6
|
+
})(errorUtil || (errorUtil = {}));
|
|
7
|
+
|
|
8
|
+
export { errorUtil };
|
|
9
|
+
//# sourceMappingURL=index59.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index59.js","sources":["../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js"],"sourcesContent":["export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n"],"names":[],"mappings":"AAAU,IAAC;AACX,CAAC,UAAU,SAAS,EAAE;AACtB,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE;AAC/F;AACA,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO;AAC9F,CAAC,EAAE,SAAS,KAAK,SAAS,GAAG,EAAE,CAAC,CAAC;;;;","x_google_ignoreList":[0]}
|
package/dist/index6.js
CHANGED
package/dist/index7.js
CHANGED
package/dist/index8.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { provideModules, findModules } from '@rpgjs/common';
|
|
2
|
-
import { inject } from './
|
|
2
|
+
import { inject } from './index20.js';
|
|
3
3
|
import { RpgGui } from './index9.js';
|
|
4
|
-
import { getSoundMetadata } from './
|
|
4
|
+
import { getSoundMetadata } from './index18.js';
|
|
5
5
|
|
|
6
6
|
function provideClientModules(modules) {
|
|
7
7
|
return provideModules(modules, "client", (modules2, context) => {
|
|
@@ -102,6 +102,21 @@ function provideClientModules(modules) {
|
|
|
102
102
|
}
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
|
+
if (module.transitions) {
|
|
106
|
+
const transitions = [...module.transitions];
|
|
107
|
+
module.transitions = {
|
|
108
|
+
load: (engine) => {
|
|
109
|
+
const guiService = inject(engine.context, RpgGui);
|
|
110
|
+
transitions.forEach((transition) => {
|
|
111
|
+
guiService.add({
|
|
112
|
+
name: transition.id,
|
|
113
|
+
component: transition.component,
|
|
114
|
+
data: transition.props || {}
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
105
120
|
if (module.particles) {
|
|
106
121
|
const particles = [...module.particles];
|
|
107
122
|
module.particles = {
|
package/dist/index8.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index8.js","sources":["../src/module.ts"],"sourcesContent":["import { findModules, provideModules } from \"@rpgjs/common\";\nimport { FactoryProvider } from \"@signe/di\";\nimport { RpgClientEngine } from \"./RpgClientEngine\";\nimport { RpgClient } from \"./RpgClient\";\nimport { inject } from \"@signe/di\";\nimport { RpgGui } from \"./Gui/Gui\";\nimport { getSoundMetadata } from \"./Sound\";\n\n/**\n * Type for client modules that can be either:\n * - An object implementing RpgClient interface\n * - A class decorated with @RpgModule decorator\n */\nexport type RpgClientModule = RpgClient | (new () => any);\n\n/**\n * Provides client modules configuration to Dependency Injection\n * \n * This function accepts an array of client modules that can be either:\n * - Objects implementing the RpgClient interface\n * - Classes decorated with the @RpgModule decorator (which will be instantiated)\n * \n * @param modules - Array of client modules (objects or classes)\n * @returns FactoryProvider configuration for DI\n * @example\n * ```ts\n * // Using an object\n * provideClientModules([\n * {\n * engine: {\n * onConnected(engine) {\n * console.log('Client connected')\n * }\n * }\n * }\n * ])\n * \n * // Using a decorated class\n * @RpgModule<RpgClient>({\n * engine: {\n * onStart(engine) {\n * console.log('Client started')\n * }\n * }\n * })\n * class MyClientModule {}\n * \n * provideClientModules([MyClientModule])\n * ```\n */\nexport function provideClientModules(modules: RpgClientModule[]): FactoryProvider {\n return provideModules(modules, \"client\", (modules, context) => {\n const mainModuleClient = findModules(context, 'Client')\n modules = [...mainModuleClient, ...modules]\n modules = modules.map((module) => {\n // If module is a class (constructor function), instantiate it\n // The RpgModule decorator adds properties to the prototype, which will be accessible via the instance\n if (typeof module === 'function') {\n const instance = new module() as any;\n // Copy all enumerable properties (including from prototype) to a plain object\n const moduleObj: any = {};\n for (const key in instance) {\n moduleObj[key] = instance[key];\n }\n module = moduleObj;\n }\n if ('client' in module) {\n module = module.client as any;\n }\n if (module.spritesheets) {\n const spritesheets = [...module.spritesheets];\n module.spritesheets = {\n load: (engine: RpgClientEngine) => {\n spritesheets.forEach((spritesheet) => {\n engine.addSpriteSheet(spritesheet);\n });\n },\n };\n }\n if (module.spritesheetResolver) {\n const resolver = module.spritesheetResolver;\n module.spritesheetResolver = {\n load: (engine: RpgClientEngine) => {\n engine.setSpritesheetResolver(resolver);\n },\n };\n }\n if (module.sounds) {\n const sounds = [...module.sounds];\n module.sounds = {\n load: (engine: RpgClientEngine) => {\n sounds.forEach((sound) => {\n // Check if it's a class decorated with @Sound\n if (typeof sound === 'function' || (sound && sound.constructor && sound.constructor !== Object)) {\n const metadata = getSoundMetadata(sound);\n if (metadata) {\n // Handle single sound\n if (metadata.id && metadata.sound) {\n engine.addSound({\n id: metadata.id,\n src: metadata.sound,\n loop: metadata.loop,\n volume: metadata.volume,\n });\n }\n // Handle multiple sounds\n if (metadata.sounds) {\n Object.entries(metadata.sounds).forEach(([soundId, soundSrc]) => {\n engine.addSound({\n id: soundId,\n src: soundSrc,\n loop: metadata.loop,\n volume: metadata.volume,\n });\n });\n }\n } else {\n // Not a decorated class, treat as regular sound object\n engine.addSound(sound);\n }\n } else {\n // Regular sound object\n engine.addSound(sound);\n }\n });\n },\n };\n }\n if (module.soundResolver) {\n const resolver = module.soundResolver;\n module.soundResolver = {\n load: (engine: RpgClientEngine) => {\n engine.setSoundResolver(resolver);\n },\n };\n }\n if (module.gui) {\n const gui = [...module.gui];\n module.gui = {\n load: (engine: RpgClientEngine) => {\n const guiService = inject(engine.context, RpgGui) as RpgGui;\n gui.forEach((gui) => {\n guiService.add(gui);\n });\n },\n };\n }\n if (module.componentAnimations) {\n const componentAnimations = [...module.componentAnimations];\n module.componentAnimations = {\n load: (engine: RpgClientEngine) => {\n componentAnimations.forEach((componentAnimation) => {\n engine.addComponentAnimation(componentAnimation);\n });\n },\n };\n }\n if (module.particles) {\n const particles = [...module.particles];\n module.particles = {\n load: (engine: RpgClientEngine) => {\n particles.forEach((particle) => {\n engine.addParticle(particle);\n });\n },\n };\n }\n if (module.sprite) {\n const sprite = {...module.sprite};\n module.sprite = {\n ...sprite,\n load: (engine: RpgClientEngine) => {\n if (sprite.componentsBehind) {\n sprite.componentsBehind.forEach((component) => {\n engine.addSpriteComponentBehind(component);\n });\n }\n if (sprite.componentsInFront) {\n sprite.componentsInFront.forEach((component) => {\n engine.addSpriteComponentInFront(component);\n });\n }\n },\n };\n }\n return module;\n });\n return modules\n });\n}\n\nexport const GlobalConfigToken = \"GlobalConfigToken\";\n\nexport function provideGlobalConfig(config: any) {\n return {\n provide: GlobalConfigToken,\n useValue: config ?? {},\n };\n}\n\nexport function provideClientGlobalConfig(config: any = {}) {\n if (!config.keyboardControls) {\n config.keyboardControls = {\n up: 'up',\n down: 'down',\n left: 'left',\n right: 'right',\n action: 'space'\n }\n }\n return provideGlobalConfig(config)\n}\n\n"],"names":["modules","gui"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index8.js","sources":["../src/module.ts"],"sourcesContent":["import { findModules, provideModules } from \"@rpgjs/common\";\nimport { FactoryProvider } from \"@signe/di\";\nimport { RpgClientEngine } from \"./RpgClientEngine\";\nimport { RpgClient } from \"./RpgClient\";\nimport { inject } from \"@signe/di\";\nimport { RpgGui } from \"./Gui/Gui\";\nimport { getSoundMetadata } from \"./Sound\";\n\n/**\n * Type for client modules that can be either:\n * - An object implementing RpgClient interface\n * - A class decorated with @RpgModule decorator\n */\nexport type RpgClientModule = RpgClient | (new () => any);\n\n/**\n * Provides client modules configuration to Dependency Injection\n * \n * This function accepts an array of client modules that can be either:\n * - Objects implementing the RpgClient interface\n * - Classes decorated with the @RpgModule decorator (which will be instantiated)\n * \n * @param modules - Array of client modules (objects or classes)\n * @returns FactoryProvider configuration for DI\n * @example\n * ```ts\n * // Using an object\n * provideClientModules([\n * {\n * engine: {\n * onConnected(engine) {\n * console.log('Client connected')\n * }\n * }\n * }\n * ])\n * \n * // Using a decorated class\n * @RpgModule<RpgClient>({\n * engine: {\n * onStart(engine) {\n * console.log('Client started')\n * }\n * }\n * })\n * class MyClientModule {}\n * \n * provideClientModules([MyClientModule])\n * ```\n */\nexport function provideClientModules(modules: RpgClientModule[]): FactoryProvider {\n return provideModules(modules, \"client\", (modules, context) => {\n const mainModuleClient = findModules(context, 'Client')\n modules = [...mainModuleClient, ...modules]\n modules = modules.map((module) => {\n // If module is a class (constructor function), instantiate it\n // The RpgModule decorator adds properties to the prototype, which will be accessible via the instance\n if (typeof module === 'function') {\n const instance = new module() as any;\n // Copy all enumerable properties (including from prototype) to a plain object\n const moduleObj: any = {};\n for (const key in instance) {\n moduleObj[key] = instance[key];\n }\n module = moduleObj;\n }\n if ('client' in module) {\n module = module.client as any;\n }\n if (module.spritesheets) {\n const spritesheets = [...module.spritesheets];\n module.spritesheets = {\n load: (engine: RpgClientEngine) => {\n spritesheets.forEach((spritesheet) => {\n engine.addSpriteSheet(spritesheet);\n });\n },\n };\n }\n if (module.spritesheetResolver) {\n const resolver = module.spritesheetResolver;\n module.spritesheetResolver = {\n load: (engine: RpgClientEngine) => {\n engine.setSpritesheetResolver(resolver);\n },\n };\n }\n if (module.sounds) {\n const sounds = [...module.sounds];\n module.sounds = {\n load: (engine: RpgClientEngine) => {\n sounds.forEach((sound) => {\n // Check if it's a class decorated with @Sound\n if (typeof sound === 'function' || (sound && sound.constructor && sound.constructor !== Object)) {\n const metadata = getSoundMetadata(sound);\n if (metadata) {\n // Handle single sound\n if (metadata.id && metadata.sound) {\n engine.addSound({\n id: metadata.id,\n src: metadata.sound,\n loop: metadata.loop,\n volume: metadata.volume,\n });\n }\n // Handle multiple sounds\n if (metadata.sounds) {\n Object.entries(metadata.sounds).forEach(([soundId, soundSrc]) => {\n engine.addSound({\n id: soundId,\n src: soundSrc,\n loop: metadata.loop,\n volume: metadata.volume,\n });\n });\n }\n } else {\n // Not a decorated class, treat as regular sound object\n engine.addSound(sound);\n }\n } else {\n // Regular sound object\n engine.addSound(sound);\n }\n });\n },\n };\n }\n if (module.soundResolver) {\n const resolver = module.soundResolver;\n module.soundResolver = {\n load: (engine: RpgClientEngine) => {\n engine.setSoundResolver(resolver);\n },\n };\n }\n if (module.gui) {\n const gui = [...module.gui];\n module.gui = {\n load: (engine: RpgClientEngine) => {\n const guiService = inject(engine.context, RpgGui) as RpgGui;\n gui.forEach((gui) => {\n guiService.add(gui);\n });\n },\n };\n }\n if (module.componentAnimations) {\n const componentAnimations = [...module.componentAnimations];\n module.componentAnimations = {\n load: (engine: RpgClientEngine) => {\n componentAnimations.forEach((componentAnimation) => {\n engine.addComponentAnimation(componentAnimation);\n });\n },\n };\n }\n if (module.transitions) {\n const transitions = [...module.transitions];\n module.transitions = {\n load: (engine: RpgClientEngine) => {\n const guiService = inject(engine.context, RpgGui) as RpgGui;\n transitions.forEach((transition) => {\n guiService.add({\n name: transition.id,\n component: transition.component,\n data: transition.props || {}\n });\n });\n },\n };\n }\n if (module.particles) {\n const particles = [...module.particles];\n module.particles = {\n load: (engine: RpgClientEngine) => {\n particles.forEach((particle) => {\n engine.addParticle(particle);\n });\n },\n };\n }\n if (module.sprite) {\n const sprite = {...module.sprite};\n module.sprite = {\n ...sprite,\n load: (engine: RpgClientEngine) => {\n if (sprite.componentsBehind) {\n sprite.componentsBehind.forEach((component) => {\n engine.addSpriteComponentBehind(component);\n });\n }\n if (sprite.componentsInFront) {\n sprite.componentsInFront.forEach((component) => {\n engine.addSpriteComponentInFront(component);\n });\n }\n },\n };\n }\n return module;\n });\n return modules\n });\n}\n\nexport const GlobalConfigToken = \"GlobalConfigToken\";\n\nexport function provideGlobalConfig(config: any) {\n return {\n provide: GlobalConfigToken,\n useValue: config ?? {},\n };\n}\n\nexport function provideClientGlobalConfig(config: any = {}) {\n if (!config.keyboardControls) {\n config.keyboardControls = {\n up: 'up',\n down: 'down',\n left: 'left',\n right: 'right',\n action: 'space'\n }\n }\n return provideGlobalConfig(config)\n}\n\n"],"names":["modules","gui"],"mappings":"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"}
|
package/dist/index9.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { inject } from './
|
|
1
|
+
import { inject } from './index20.js';
|
|
2
2
|
import { signal } from 'canvasengine';
|
|
3
|
-
import { WebSocketToken } from './
|
|
3
|
+
import { WebSocketToken } from './index27.js';
|
|
4
4
|
import component from './index10.js';
|
|
5
5
|
import { combineLatest } from 'rxjs';
|
|
6
6
|
import '@rpgjs/common';
|
|
7
|
-
import './index17.js';
|
|
8
7
|
import './index18.js';
|
|
9
|
-
import './
|
|
10
|
-
import './
|
|
8
|
+
import './index19.js';
|
|
9
|
+
import './index28.js';
|
|
10
|
+
import './index29.js';
|
|
11
11
|
import 'pixi.js';
|
|
12
|
-
import './
|
|
13
|
-
import './
|
|
12
|
+
import './index31.js';
|
|
13
|
+
import './index32.js';
|
|
14
14
|
import '@canvasengine/presets';
|
|
15
15
|
|
|
16
16
|
const throwError = (id) => {
|
|
@@ -154,7 +154,7 @@ class RpgGui {
|
|
|
154
154
|
display: signal(gui.display || false),
|
|
155
155
|
data: signal(gui.data || {}),
|
|
156
156
|
autoDisplay: gui.autoDisplay || false,
|
|
157
|
-
dependencies: gui.dependencies,
|
|
157
|
+
dependencies: gui.dependencies ? gui.dependencies() : [],
|
|
158
158
|
attachToSprite: gui.attachToSprite || false
|
|
159
159
|
};
|
|
160
160
|
if (typeof gui.component !== "function") {
|
|
@@ -244,7 +244,8 @@ class RpgGui {
|
|
|
244
244
|
if (isVueComponent) {
|
|
245
245
|
this._handleVueComponentDisplay(id, data, dependencies, guiInstance);
|
|
246
246
|
} else {
|
|
247
|
-
|
|
247
|
+
guiInstance.data.set(data);
|
|
248
|
+
guiInstance.display.set(true);
|
|
248
249
|
}
|
|
249
250
|
}
|
|
250
251
|
/**
|
|
@@ -286,24 +287,6 @@ class RpgGui {
|
|
|
286
287
|
* @param guiInstance - GUI instance
|
|
287
288
|
*/
|
|
288
289
|
_handleCanvasComponentDisplay(id, data, dependencies, guiInstance) {
|
|
289
|
-
if (guiInstance.subscription) {
|
|
290
|
-
guiInstance.subscription.unsubscribe();
|
|
291
|
-
guiInstance.subscription = void 0;
|
|
292
|
-
}
|
|
293
|
-
const deps = dependencies.length > 0 ? dependencies : guiInstance.dependencies ? guiInstance.dependencies() : [];
|
|
294
|
-
if (deps.length > 0) {
|
|
295
|
-
guiInstance.subscription = combineLatest(
|
|
296
|
-
deps.map((dependency) => dependency.observable)
|
|
297
|
-
).subscribe((values) => {
|
|
298
|
-
if (values.every((value) => value !== void 0)) {
|
|
299
|
-
guiInstance.data.set(data);
|
|
300
|
-
guiInstance.display.set(true);
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
return;
|
|
304
|
-
}
|
|
305
|
-
guiInstance.data.set(data);
|
|
306
|
-
guiInstance.display.set(true);
|
|
307
290
|
}
|
|
308
291
|
/**
|
|
309
292
|
* Hide a GUI component
|
package/dist/index9.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index9.js","sources":["../src/Gui/Gui.ts"],"sourcesContent":["import { Context, inject } from \"@signe/di\";\nimport { signal, Signal, WritableSignal } from \"canvasengine\";\nimport { AbstractWebsocket, WebSocketToken } from \"../services/AbstractSocket\";\nimport { DialogboxComponent } from \"../components/gui\";\nimport { combineLatest, Subscription } from \"rxjs\";\n\ninterface GuiOptions {\n name?: string;\n id?: string;\n component: any;\n display?: boolean;\n data?: any;\n /**\n * Auto display the GUI when added to the system\n * @default false\n */\n autoDisplay?: boolean;\n /**\n * Function that returns an array of Signal dependencies\n * The GUI will only display when all dependencies are resolved (!= undefined)\n * @returns Array of Signal dependencies\n */\n dependencies?: () => Signal[];\n /**\n * Attach the GUI to sprites instead of displaying globally\n * When true, the GUI will be rendered in character.ce for each sprite\n * @default false\n */\n attachToSprite?: boolean;\n}\n\ninterface GuiInstance {\n name: string;\n component: any;\n display: WritableSignal<boolean>;\n data: WritableSignal<any>;\n autoDisplay: boolean;\n dependencies?: () => Signal[];\n subscription?: Subscription;\n attachToSprite?: boolean;\n}\n\nconst throwError = (id: string) => {\n throw `The GUI named ${id} is non-existent. Please add the component in the gui property of the decorator @RpgClient`;\n};\n\nexport class RpgGui {\n private webSocket: AbstractWebsocket;\n gui = signal<Record<string, GuiInstance>>({});\n extraGuis: GuiInstance[] = [];\n private vueGuiInstance: any = null; // Reference to VueGui instance\n /**\n * Signal tracking which player IDs should display attached GUIs\n * Key: player ID, Value: boolean (true = show, false = hide)\n */\n attachedGuiDisplayState = signal<Record<string, boolean>>({});\n\n constructor(private context: Context) {\n this.webSocket = inject(context, WebSocketToken);\n this.add({\n name: \"rpg-dialog\",\n component: DialogboxComponent,\n });\n }\n\n async _initialize() {\n this.webSocket.on(\"gui.open\", (data: { guiId: string; data: any }) => {\n this.display(data.guiId, data.data);\n });\n\n this.webSocket.on(\"gui.exit\", (guiId: string) => {\n this.hide(guiId);\n });\n\n /**\n * Listen for tooltip display state changes from server\n * This is triggered by showAttachedGui/hideAttachedGui on the server\n */\n this.webSocket.on(\"gui.tooltip\", (data: { players: string[]; display: boolean }) => {\n const currentState = { ...this.attachedGuiDisplayState() };\n data.players.forEach((playerId) => {\n currentState[playerId] = data.display;\n });\n this.attachedGuiDisplayState.set(currentState);\n });\n }\n\n /**\n * Set the VueGui instance reference for Vue component management\n * This is called by VueGui when it's initialized\n * \n * @param vueGuiInstance - The VueGui instance\n */\n _setVueGuiInstance(vueGuiInstance: any) {\n this.vueGuiInstance = vueGuiInstance;\n }\n\n /**\n * Notify VueGui about GUI state changes\n * This synchronizes the Vue component display state\n * \n * @param guiId - The GUI component ID\n * @param display - Display state\n * @param data - Component data\n */\n private _notifyVueGui(guiId: string, display: boolean, data: any = {}) {\n if (this.vueGuiInstance && this.vueGuiInstance.vm) {\n // Find the GUI in extraGuis\n const extraGui = this.extraGuis.find(gui => gui.name === guiId);\n if (extraGui) {\n // Update the Vue component's display state and data\n this.vueGuiInstance.vm.gui[guiId] = {\n name: guiId,\n display,\n data,\n attachToSprite: extraGui.attachToSprite || false\n };\n // Trigger Vue reactivity\n this.vueGuiInstance.vm.gui = Object.assign({}, this.vueGuiInstance.vm.gui);\n }\n }\n }\n\n /**\n * Initialize Vue components in the VueGui instance\n * This should be called after VueGui is mounted\n */\n _initializeVueComponents() {\n if (this.vueGuiInstance && this.vueGuiInstance.vm) {\n // Initialize all extraGuis in the Vue instance\n this.extraGuis.forEach(gui => {\n this.vueGuiInstance.vm.gui[gui.name] = {\n name: gui.name,\n display: gui.display(),\n data: gui.data(),\n attachToSprite: gui.attachToSprite || false\n };\n });\n \n // Trigger Vue reactivity\n this.vueGuiInstance.vm.gui = Object.assign({}, this.vueGuiInstance.vm.gui);\n }\n }\n\n guiInteraction(guiId: string, name: string, data: any) {\n this.webSocket.emit(\"gui.interaction\", {\n guiId,\n name,\n data,\n });\n }\n\n guiClose(guiId: string, data?: any) {\n this.webSocket.emit(\"gui.exit\", {\n guiId,\n data,\n });\n }\n\n /**\n * Add a GUI component to the system\n * \n * By default, only CanvasEngine components (.ce files) are accepted.\n * Vue components should be handled by the @rpgjs/vue package.\n * \n * @param gui - GUI configuration options\n * @param gui.name - Name or ID of the GUI component\n * @param gui.id - Alternative ID if name is not provided\n * @param gui.component - The component to render (must be a CanvasEngine component)\n * @param gui.display - Initial display state (default: false)\n * @param gui.data - Initial data for the component\n * @param gui.autoDisplay - Auto display when added (default: false)\n * @param gui.dependencies - Function returning Signal dependencies\n * @param gui.attachToSprite - Attach GUI to sprites instead of global display (default: false)\n * \n * @example\n * ```ts\n * gui.add({\n * name: 'inventory',\n * component: InventoryComponent, // Must be a .ce component\n * autoDisplay: true,\n * dependencies: () => [playerSignal, inventorySignal]\n * });\n * \n * // Attach to sprites\n * gui.add({\n * name: 'tooltip',\n * component: TooltipComponent,\n * attachToSprite: true\n * });\n * ```\n */\n add(gui: GuiOptions) {\n const guiId = gui.name || gui.id;\n if (!guiId) {\n throw new Error(\"GUI must have a name or id\");\n }\n\n const guiInstance: GuiInstance = {\n name: guiId,\n component: gui.component,\n display: signal(gui.display || false),\n data: signal(gui.data || {}),\n autoDisplay: gui.autoDisplay || false,\n dependencies: gui.dependencies,\n attachToSprite: gui.attachToSprite || false,\n };\n\n // Accept both CanvasEngine components (.ce) and Vue components\n // Vue components will be handled by VueGui if available\n if (typeof gui.component !== 'function') {\n guiInstance.component = gui;\n this.extraGuis.push(guiInstance);\n \n // Auto display Vue components if enabled\n if (guiInstance.autoDisplay) {\n this._notifyVueGui(guiId, true, gui.data || {});\n }\n return;\n }\n\n this.gui()[guiId] = guiInstance;\n\n // Auto display if enabled and it's a CanvasEngine component\n if (guiInstance.autoDisplay && typeof gui.component === 'function') {\n this.display(guiId);\n }\n }\n\n /**\n * Get all attached GUI components (attachToSprite: true)\n * \n * Returns all GUI instances that are configured to be attached to sprites.\n * These GUIs should be rendered in character.ce instead of canvas.ce.\n * \n * @returns Array of GUI instances with attachToSprite: true\n * \n * @example\n * ```ts\n * const attachedGuis = gui.getAttachedGuis();\n * // Use in character.ce to render tooltips\n * ```\n */\n getAttachedGuis(): GuiInstance[] {\n const allGuis = this.getAll();\n return Object.values(allGuis).filter(gui => gui.attachToSprite === true);\n }\n\n /**\n * Check if a player should display attached GUIs\n * \n * @param playerId - The player ID to check\n * @returns true if attached GUIs should be displayed for this player\n */\n shouldDisplayAttachedGui(playerId: string): boolean {\n return this.attachedGuiDisplayState()[playerId] === true;\n }\n\n get(id: string): GuiInstance | undefined {\n // Check CanvasEngine GUIs first\n const canvasGui = this.gui()[id];\n if (canvasGui) {\n return canvasGui;\n }\n \n // Check Vue GUIs in extraGuis\n return this.extraGuis.find(gui => gui.name === id);\n }\n\n exists(id: string): boolean {\n return !!this.get(id);\n }\n\n getAll(): Record<string, GuiInstance> {\n const allGuis = { ...this.gui() };\n \n // Add extraGuis to the result\n this.extraGuis.forEach(gui => {\n allGuis[gui.name] = gui;\n });\n \n return allGuis;\n }\n\n /**\n * Display a GUI component\n * \n * Displays the GUI immediately if no dependencies are configured,\n * or waits for all dependencies to be resolved if dependencies are present.\n * Automatically manages subscriptions to prevent memory leaks.\n * Works with both CanvasEngine components and Vue components.\n * \n * @param id - The GUI component ID\n * @param data - Data to pass to the component\n * @param dependencies - Optional runtime dependencies (overrides config dependencies)\n * \n * @example\n * ```ts\n * // Display immediately\n * gui.display('inventory', { items: [] });\n * \n * // Display with runtime dependencies\n * gui.display('shop', { shopId: 1 }, [playerSignal, shopSignal]);\n * ```\n */\n display(id: string, data = {}, dependencies: Signal[] = []) {\n if (!this.exists(id)) {\n throw throwError(id);\n }\n\n const guiInstance = this.get(id)!;\n \n // Check if it's a Vue component (in extraGuis)\n const isVueComponent = this.extraGuis.some(gui => gui.name === id);\n \n if (isVueComponent) {\n // Handle Vue component display\n this._handleVueComponentDisplay(id, data, dependencies, guiInstance);\n } else {\n // Handle CanvasEngine component display\n this._handleCanvasComponentDisplay(id, data, dependencies, guiInstance);\n }\n }\n\n /**\n * Handle Vue component display logic\n * \n * @param id - GUI component ID\n * @param data - Component data\n * @param dependencies - Runtime dependencies\n * @param guiInstance - GUI instance\n */\n private _handleVueComponentDisplay(id: string, data: any, dependencies: Signal[], guiInstance: GuiInstance) {\n // Unsubscribe from previous subscription if exists\n if (guiInstance.subscription) {\n guiInstance.subscription.unsubscribe();\n guiInstance.subscription = undefined;\n }\n\n // Use runtime dependencies or config dependencies\n const deps = dependencies.length > 0 \n ? dependencies \n : (guiInstance.dependencies ? guiInstance.dependencies() : []);\n\n if (deps.length > 0) {\n // Subscribe to dependencies\n guiInstance.subscription = combineLatest(\n deps.map(dependency => dependency.observable)\n ).subscribe((values) => {\n if (values.every(value => value !== undefined)) {\n guiInstance.data.set(data);\n guiInstance.display.set(true);\n this._notifyVueGui(id, true, data);\n }\n });\n return;\n }\n\n // No dependencies, display immediately\n guiInstance.data.set(data);\n guiInstance.display.set(true);\n this._notifyVueGui(id, true, data);\n }\n\n /**\n * Handle CanvasEngine component display logic\n * \n * @param id - GUI component ID\n * @param data - Component data\n * @param dependencies - Runtime dependencies\n * @param guiInstance - GUI instance\n */\n private _handleCanvasComponentDisplay(id: string, data: any, dependencies: Signal[], guiInstance: GuiInstance) {\n // Unsubscribe from previous subscription if exists\n if (guiInstance.subscription) {\n guiInstance.subscription.unsubscribe();\n guiInstance.subscription = undefined;\n }\n\n // Use runtime dependencies or config dependencies\n const deps = dependencies.length > 0 \n ? dependencies \n : (guiInstance.dependencies ? guiInstance.dependencies() : []);\n\n if (deps.length > 0) {\n // Subscribe to dependencies\n guiInstance.subscription = combineLatest(\n deps.map(dependency => dependency.observable)\n ).subscribe((values) => {\n if (values.every(value => value !== undefined)) {\n guiInstance.data.set(data);\n guiInstance.display.set(true);\n }\n });\n return;\n }\n\n // No dependencies, display immediately\n guiInstance.data.set(data);\n guiInstance.display.set(true);\n }\n\n /**\n * Hide a GUI component\n * \n * Hides the GUI and cleans up any active subscriptions.\n * Works with both CanvasEngine components and Vue components.\n * \n * @param id - The GUI component ID\n * \n * @example\n * ```ts\n * gui.hide('inventory');\n * ```\n */\n hide(id: string) {\n if (!this.exists(id)) {\n throw throwError(id);\n }\n\n const guiInstance = this.get(id)!;\n \n // Unsubscribe if there's an active subscription\n if (guiInstance.subscription) {\n guiInstance.subscription.unsubscribe();\n guiInstance.subscription = undefined;\n }\n\n guiInstance.display.set(false);\n \n // Check if it's a Vue component and notify VueGui\n const isVueComponent = this.extraGuis.some(gui => gui.name === id);\n if (isVueComponent) {\n this._notifyVueGui(id, false);\n }\n }\n}\n"],"names":["DialogboxComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index9.js","sources":["../src/Gui/Gui.ts"],"sourcesContent":["import { Context, inject } from \"@signe/di\";\nimport { signal, Signal, WritableSignal } from \"canvasengine\";\nimport { AbstractWebsocket, WebSocketToken } from \"../services/AbstractSocket\";\nimport { DialogboxComponent } from \"../components/gui\";\nimport { combineLatest, Subscription } from \"rxjs\";\n\ninterface GuiOptions {\n name?: string;\n id?: string;\n component: any;\n display?: boolean;\n data?: any;\n /**\n * Auto display the GUI when added to the system\n * @default false\n */\n autoDisplay?: boolean;\n /**\n * Function that returns an array of Signal dependencies\n * The GUI will only display when all dependencies are resolved (!= undefined)\n * @returns Array of Signal dependencies\n */\n dependencies?: () => Signal[];\n /**\n * Attach the GUI to sprites instead of displaying globally\n * When true, the GUI will be rendered in character.ce for each sprite\n * @default false\n */\n attachToSprite?: boolean;\n}\n\ninterface GuiInstance {\n name: string;\n component: any;\n display: WritableSignal<boolean>;\n data: WritableSignal<any>;\n autoDisplay: boolean;\n dependencies?: () => Signal[];\n subscription?: Subscription;\n attachToSprite?: boolean;\n}\n\nconst throwError = (id: string) => {\n throw `The GUI named ${id} is non-existent. Please add the component in the gui property of the decorator @RpgClient`;\n};\n\nexport class RpgGui {\n private webSocket: AbstractWebsocket;\n gui = signal<Record<string, GuiInstance>>({});\n extraGuis: GuiInstance[] = [];\n private vueGuiInstance: any = null; // Reference to VueGui instance\n /**\n * Signal tracking which player IDs should display attached GUIs\n * Key: player ID, Value: boolean (true = show, false = hide)\n */\n attachedGuiDisplayState = signal<Record<string, boolean>>({});\n\n constructor(private context: Context) {\n this.webSocket = inject(context, WebSocketToken);\n this.add({\n name: \"rpg-dialog\",\n component: DialogboxComponent,\n });\n }\n\n async _initialize() {\n this.webSocket.on(\"gui.open\", (data: { guiId: string; data: any }) => {\n this.display(data.guiId, data.data);\n });\n\n this.webSocket.on(\"gui.exit\", (guiId: string) => {\n this.hide(guiId);\n });\n\n /**\n * Listen for tooltip display state changes from server\n * This is triggered by showAttachedGui/hideAttachedGui on the server\n */\n this.webSocket.on(\"gui.tooltip\", (data: { players: string[]; display: boolean }) => {\n const currentState = { ...this.attachedGuiDisplayState() };\n data.players.forEach((playerId) => {\n currentState[playerId] = data.display;\n });\n this.attachedGuiDisplayState.set(currentState);\n });\n }\n\n /**\n * Set the VueGui instance reference for Vue component management\n * This is called by VueGui when it's initialized\n * \n * @param vueGuiInstance - The VueGui instance\n */\n _setVueGuiInstance(vueGuiInstance: any) {\n this.vueGuiInstance = vueGuiInstance;\n }\n\n /**\n * Notify VueGui about GUI state changes\n * This synchronizes the Vue component display state\n * \n * @param guiId - The GUI component ID\n * @param display - Display state\n * @param data - Component data\n */\n private _notifyVueGui(guiId: string, display: boolean, data: any = {}) {\n if (this.vueGuiInstance && this.vueGuiInstance.vm) {\n // Find the GUI in extraGuis\n const extraGui = this.extraGuis.find(gui => gui.name === guiId);\n if (extraGui) {\n // Update the Vue component's display state and data\n this.vueGuiInstance.vm.gui[guiId] = {\n name: guiId,\n display,\n data,\n attachToSprite: extraGui.attachToSprite || false\n };\n // Trigger Vue reactivity\n this.vueGuiInstance.vm.gui = Object.assign({}, this.vueGuiInstance.vm.gui);\n }\n }\n }\n\n /**\n * Initialize Vue components in the VueGui instance\n * This should be called after VueGui is mounted\n */\n _initializeVueComponents() {\n if (this.vueGuiInstance && this.vueGuiInstance.vm) {\n // Initialize all extraGuis in the Vue instance\n this.extraGuis.forEach(gui => {\n this.vueGuiInstance.vm.gui[gui.name] = {\n name: gui.name,\n display: gui.display(),\n data: gui.data(),\n attachToSprite: gui.attachToSprite || false\n };\n });\n \n // Trigger Vue reactivity\n this.vueGuiInstance.vm.gui = Object.assign({}, this.vueGuiInstance.vm.gui);\n }\n }\n\n guiInteraction(guiId: string, name: string, data: any) {\n this.webSocket.emit(\"gui.interaction\", {\n guiId,\n name,\n data,\n });\n }\n\n guiClose(guiId: string, data?: any) {\n this.webSocket.emit(\"gui.exit\", {\n guiId,\n data,\n });\n }\n\n /**\n * Add a GUI component to the system\n * \n * By default, only CanvasEngine components (.ce files) are accepted.\n * Vue components should be handled by the @rpgjs/vue package.\n * \n * @param gui - GUI configuration options\n * @param gui.name - Name or ID of the GUI component\n * @param gui.id - Alternative ID if name is not provided\n * @param gui.component - The component to render (must be a CanvasEngine component)\n * @param gui.display - Initial display state (default: false)\n * @param gui.data - Initial data for the component\n * @param gui.autoDisplay - Auto display when added (default: false)\n * @param gui.dependencies - Function returning Signal dependencies\n * @param gui.attachToSprite - Attach GUI to sprites instead of global display (default: false)\n * \n * @example\n * ```ts\n * gui.add({\n * name: 'inventory',\n * component: InventoryComponent, // Must be a .ce component\n * autoDisplay: true,\n * dependencies: () => [playerSignal, inventorySignal]\n * });\n * \n * // Attach to sprites\n * gui.add({\n * name: 'tooltip',\n * component: TooltipComponent,\n * attachToSprite: true\n * });\n * ```\n */\n add(gui: GuiOptions) {\n const guiId = gui.name || gui.id;\n if (!guiId) {\n throw new Error(\"GUI must have a name or id\");\n }\n const guiInstance: GuiInstance = {\n name: guiId,\n component: gui.component,\n display: signal(gui.display || false),\n data: signal(gui.data || {}),\n autoDisplay: gui.autoDisplay || false,\n dependencies: gui.dependencies ? gui.dependencies() : [],\n attachToSprite: gui.attachToSprite || false,\n };\n\n // Accept both CanvasEngine components (.ce) and Vue components\n // Vue components will be handled by VueGui if available\n if (typeof gui.component !== 'function') {\n guiInstance.component = gui;\n this.extraGuis.push(guiInstance);\n \n // Auto display Vue components if enabled\n if (guiInstance.autoDisplay) {\n this._notifyVueGui(guiId, true, gui.data || {});\n }\n return;\n }\n\n this.gui()[guiId] = guiInstance;\n\n // Auto display if enabled and it's a CanvasEngine component\n if (guiInstance.autoDisplay && typeof gui.component === 'function') {\n this.display(guiId);\n }\n }\n\n /**\n * Get all attached GUI components (attachToSprite: true)\n * \n * Returns all GUI instances that are configured to be attached to sprites.\n * These GUIs should be rendered in character.ce instead of canvas.ce.\n * \n * @returns Array of GUI instances with attachToSprite: true\n * \n * @example\n * ```ts\n * const attachedGuis = gui.getAttachedGuis();\n * // Use in character.ce to render tooltips\n * ```\n */\n getAttachedGuis(): GuiInstance[] {\n const allGuis = this.getAll();\n return Object.values(allGuis).filter(gui => gui.attachToSprite === true);\n }\n\n /**\n * Check if a player should display attached GUIs\n * \n * @param playerId - The player ID to check\n * @returns true if attached GUIs should be displayed for this player\n */\n shouldDisplayAttachedGui(playerId: string): boolean {\n return this.attachedGuiDisplayState()[playerId] === true;\n }\n\n get(id: string): GuiInstance | undefined {\n // Check CanvasEngine GUIs first\n const canvasGui = this.gui()[id];\n if (canvasGui) {\n return canvasGui;\n }\n \n // Check Vue GUIs in extraGuis\n return this.extraGuis.find(gui => gui.name === id);\n }\n\n exists(id: string): boolean {\n return !!this.get(id);\n }\n\n getAll(): Record<string, GuiInstance> {\n const allGuis = { ...this.gui() };\n \n // Add extraGuis to the result\n this.extraGuis.forEach(gui => {\n allGuis[gui.name] = gui;\n });\n \n return allGuis;\n }\n\n /**\n * Display a GUI component\n * \n * Displays the GUI immediately if no dependencies are configured,\n * or waits for all dependencies to be resolved if dependencies are present.\n * Automatically manages subscriptions to prevent memory leaks.\n * Works with both CanvasEngine components and Vue components.\n * \n * @param id - The GUI component ID\n * @param data - Data to pass to the component\n * @param dependencies - Optional runtime dependencies (overrides config dependencies)\n * \n * @example\n * ```ts\n * // Display immediately\n * gui.display('inventory', { items: [] });\n * \n * // Display with runtime dependencies\n * gui.display('shop', { shopId: 1 }, [playerSignal, shopSignal]);\n * ```\n */\n display(id: string, data = {}, dependencies: Signal[] = []) {\n if (!this.exists(id)) {\n throw throwError(id);\n }\n\n const guiInstance = this.get(id)!;\n \n // Check if it's a Vue component (in extraGuis)\n const isVueComponent = this.extraGuis.some(gui => gui.name === id);\n \n if (isVueComponent) {\n // Handle Vue component display\n this._handleVueComponentDisplay(id, data, dependencies, guiInstance);\n } else {\n guiInstance.data.set(data);\n guiInstance.display.set(true);\n }\n }\n\n /**\n * Handle Vue component display logic\n * \n * @param id - GUI component ID\n * @param data - Component data\n * @param dependencies - Runtime dependencies\n * @param guiInstance - GUI instance\n */\n private _handleVueComponentDisplay(id: string, data: any, dependencies: Signal[], guiInstance: GuiInstance) {\n // Unsubscribe from previous subscription if exists\n if (guiInstance.subscription) {\n guiInstance.subscription.unsubscribe();\n guiInstance.subscription = undefined;\n }\n\n // Use runtime dependencies or config dependencies\n const deps = dependencies.length > 0 \n ? dependencies \n : (guiInstance.dependencies ? guiInstance.dependencies() : []);\n\n if (deps.length > 0) {\n // Subscribe to dependencies\n guiInstance.subscription = combineLatest(\n deps.map(dependency => dependency.observable)\n ).subscribe((values) => {\n if (values.every(value => value !== undefined)) {\n guiInstance.data.set(data);\n guiInstance.display.set(true);\n this._notifyVueGui(id, true, data);\n }\n });\n return;\n }\n\n // No dependencies, display immediately\n guiInstance.data.set(data);\n guiInstance.display.set(true);\n this._notifyVueGui(id, true, data);\n }\n\n /**\n * Handle CanvasEngine component display logic\n * \n * @param id - GUI component ID\n * @param data - Component data\n * @param dependencies - Runtime dependencies\n * @param guiInstance - GUI instance\n */\n private _handleCanvasComponentDisplay(id: string, data: any, dependencies: Signal[], guiInstance: GuiInstance) {\n \n }\n\n /**\n * Hide a GUI component\n * \n * Hides the GUI and cleans up any active subscriptions.\n * Works with both CanvasEngine components and Vue components.\n * \n * @param id - The GUI component ID\n * \n * @example\n * ```ts\n * gui.hide('inventory');\n * ```\n */\n hide(id: string) {\n if (!this.exists(id)) {\n throw throwError(id);\n }\n\n const guiInstance = this.get(id)!;\n \n // Unsubscribe if there's an active subscription\n if (guiInstance.subscription) {\n guiInstance.subscription.unsubscribe();\n guiInstance.subscription = undefined;\n }\n\n guiInstance.display.set(false);\n \n // Check if it's a Vue component and notify VueGui\n const isVueComponent = this.extraGuis.some(gui => gui.name === id);\n if (isVueComponent) {\n this._notifyVueGui(id, false);\n }\n }\n}\n"],"names":["DialogboxComponent"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { KeyboardControls } from 'canvasengine';
|
|
2
1
|
export declare enum Control {
|
|
3
2
|
Action = "action",
|
|
4
3
|
Attack = "attack",
|
|
@@ -11,6 +10,6 @@ export declare enum Control {
|
|
|
11
10
|
Left = 4
|
|
12
11
|
}
|
|
13
12
|
export declare function provideKeyboardControls(): {
|
|
14
|
-
provide:
|
|
13
|
+
provide: string;
|
|
15
14
|
useValue: null;
|
|
16
15
|
};
|
|
@@ -28,7 +28,7 @@ declare class UpdateMapStandaloneService extends UpdateMapService {
|
|
|
28
28
|
update(map: any): Promise<void>;
|
|
29
29
|
}
|
|
30
30
|
export declare function provideMmorpg(options: MmorpgOptions): (typeof RpgClientEngine | typeof RpgGui | {
|
|
31
|
-
provide:
|
|
31
|
+
provide: string;
|
|
32
32
|
useValue: null;
|
|
33
33
|
} | {
|
|
34
34
|
provide: string;
|
|
@@ -72,7 +72,7 @@ declare class UpdateMapStandaloneService extends UpdateMapService {
|
|
|
72
72
|
update(map: any): Promise<void>;
|
|
73
73
|
}
|
|
74
74
|
export declare function provideRpg(server: any): (typeof RpgClientEngine | typeof RpgGui | {
|
|
75
|
-
provide:
|
|
75
|
+
provide: string;
|
|
76
76
|
useValue: null;
|
|
77
77
|
} | {
|
|
78
78
|
provide: string;
|