pw-js-world 0.4.4-dev.d5503ce → 0.4.5-dev.5a8cfff
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/cm/Block.d.ts +37 -47
- package/cm/Block.js +124 -66
- package/cm/Constants.d.ts +1 -0
- package/cm/Constants.js +3 -2
- package/cm/Helper.d.ts +2 -0
- package/cm/Helper.js +53 -16
- package/cm/Player.d.ts +19 -11
- package/cm/Player.js +9 -5
- package/cm/Structure.d.ts +11 -1
- package/cm/Structure.js +55 -16
- package/cm/util/Error.d.ts +55 -0
- package/cm/util/Error.js +44 -2
- package/cm/util/Misc.d.ts +23 -3
- package/cm/util/Misc.js +111 -10
- package/esm/Block.d.ts +37 -47
- package/esm/Block.js +125 -66
- package/esm/Constants.d.ts +1 -0
- package/esm/Constants.js +2 -1
- package/esm/Helper.d.ts +2 -0
- package/esm/Helper.js +53 -16
- package/esm/Player.d.ts +19 -11
- package/esm/Player.js +9 -5
- package/esm/Structure.d.ts +11 -1
- package/esm/Structure.js +55 -16
- package/esm/types/index.d.ts +3 -2
- package/esm/util/Error.d.ts +55 -0
- package/esm/util/Error.js +41 -1
- package/esm/util/Misc.d.ts +23 -3
- package/esm/util/Misc.js +108 -10
- package/package.json +2 -4
package/cm/Block.d.ts
CHANGED
|
@@ -1,64 +1,53 @@
|
|
|
1
1
|
import type { BlockArg, Point, SendableBlockPacket } from "./types/index.js";
|
|
2
|
-
import BufferReader, { ComponentTypeHeader } from "./BufferReader.js";
|
|
3
2
|
import { LayerType } from "./Constants.js";
|
|
4
|
-
import { type BlockKeys } from "pw-js-api";
|
|
3
|
+
import { AnyBlockField, OmitRecursively, ProtoGen, type BlockKeys } from "pw-js-api";
|
|
5
4
|
export default class Block {
|
|
6
5
|
bId: number;
|
|
7
|
-
args: BlockArg[];
|
|
8
|
-
constructor(bId: number | BlockKeys | string, args?: BlockArg[]);
|
|
9
6
|
/**
|
|
10
|
-
*
|
|
7
|
+
* NOTE as of October 2025, this is an object NOT an array.
|
|
11
8
|
*
|
|
12
|
-
*
|
|
9
|
+
* Stores the arguments
|
|
13
10
|
*/
|
|
14
|
-
|
|
11
|
+
args: Record<string, BlockArg>;
|
|
15
12
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* This is in Block class for organisation.
|
|
19
|
-
*
|
|
20
|
-
* This will deserialise by using the reader to get the block ID then retrieve the args, if applicable.
|
|
13
|
+
* NOTE: This is a deprecated form as the arrangement of fields/args for a block may change in the future.
|
|
21
14
|
*/
|
|
22
|
-
|
|
23
|
-
protected deserializeArgs(reader: BufferReader, flag?: boolean): this;
|
|
15
|
+
constructor(bId: number | BlockKeys | string, args?: BlockArg[]);
|
|
24
16
|
/**
|
|
25
|
-
* For helper.
|
|
26
17
|
*
|
|
27
|
-
* This is in Block class for organisation.
|
|
28
18
|
*/
|
|
29
|
-
|
|
19
|
+
constructor(bId: number | BlockKeys | string, args?: Record<string, BlockArg>);
|
|
30
20
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* server. As this is static, block id and args are required.
|
|
21
|
+
* This is called upon automatically (if a helper is attached) binding the args to the newly instantised block.
|
|
22
|
+
* This does not validate if the fields truly belong to the block.
|
|
34
23
|
*
|
|
35
|
-
*
|
|
36
|
-
* - With Id
|
|
37
|
-
* - Type Byte omitted
|
|
24
|
+
* INTERNAL
|
|
38
25
|
*/
|
|
39
|
-
|
|
26
|
+
_initArgs(args: OmitRecursively<Record<string, ProtoGen.BlockFieldValue>, "$typeName" | "$unknown">): this;
|
|
40
27
|
/**
|
|
41
|
-
*
|
|
42
|
-
* the block into a binary format that can be sent over the game
|
|
43
|
-
* server. As this is static, block id and args are required.
|
|
44
|
-
*
|
|
45
|
-
* - Big Endian
|
|
46
|
-
* - No Id
|
|
47
|
-
* - Type Byte included
|
|
28
|
+
* True if there is at least one argument, otherwise false.
|
|
48
29
|
*/
|
|
49
|
-
|
|
50
|
-
endian: "big";
|
|
51
|
-
writeId: false;
|
|
52
|
-
readTypeByte: true;
|
|
53
|
-
}): Buffer;
|
|
54
|
-
static serializeArgs(bId: number, args: BlockArg[], options: {
|
|
55
|
-
endian: "little";
|
|
56
|
-
writeId: false;
|
|
57
|
-
readTypeByte: true;
|
|
58
|
-
}): Buffer;
|
|
30
|
+
hasArgs(): boolean;
|
|
59
31
|
/**
|
|
32
|
+
* This is for the fields parameter in sending world block placement.
|
|
60
33
|
*
|
|
61
|
-
*
|
|
34
|
+
* If the whole Block is passed, and the args parameter is undefined, the block's args will be used.
|
|
35
|
+
*/
|
|
36
|
+
static getArgsAsFields(block: Block, args?: Record<string, BlockArg>): OmitRecursively<ProtoGen.WorldBlockPlacedPacket["fields"], "$typeName">;
|
|
37
|
+
static getArgsAsFields(bId: number, args?: Record<string, BlockArg>): OmitRecursively<ProtoGen.WorldBlockPlacedPacket["fields"], "$typeName">;
|
|
38
|
+
/**
|
|
39
|
+
*/
|
|
40
|
+
static getArgsAsArray(block: Block): BlockArg[];
|
|
41
|
+
static getArgsAsArray(bId: number, args?: Record<string, BlockArg>): BlockArg[];
|
|
42
|
+
/**
|
|
43
|
+
* This is sort of for internal use,
|
|
44
|
+
* this will convert the packet form of fields
|
|
45
|
+
* back into object of arg names mapped to their values.
|
|
46
|
+
*/
|
|
47
|
+
static parseArgFields(args: OmitRecursively<ProtoGen.WorldBlockPlacedPacket["fields"], "$typeName">): Record<string, BlockArg>;
|
|
48
|
+
/**
|
|
49
|
+
* Returns an object suitable for sending worldBlockPlacedPacket to connection.
|
|
50
|
+
* @param pos List of possible positions (a max of 250 positions) - this does not automatically truncate if it overfills.
|
|
62
51
|
*/
|
|
63
52
|
toPacket(pos: Point[], layer: LayerType): SendableBlockPacket;
|
|
64
53
|
toPacket(x: number, y: number, layer: LayerType): SendableBlockPacket;
|
|
@@ -77,9 +66,10 @@ export default class Block {
|
|
|
77
66
|
clone(obj?: false): Block;
|
|
78
67
|
clone(obj: true): {
|
|
79
68
|
bId: number;
|
|
80
|
-
args: BlockArg
|
|
69
|
+
args: Record<string, BlockArg>;
|
|
81
70
|
name: string;
|
|
82
71
|
};
|
|
72
|
+
compareTo(b: Block): boolean;
|
|
83
73
|
/**
|
|
84
74
|
* This can be convenient as it will always return the ID if it exists, and it will throw an error if it doesn't.
|
|
85
75
|
*
|
|
@@ -99,15 +89,15 @@ export default class Block {
|
|
|
99
89
|
*/
|
|
100
90
|
static getPaletteIdById(blockId: number): string;
|
|
101
91
|
/**
|
|
102
|
-
* Returns the
|
|
92
|
+
* Returns the block fields for that block by given block ID.
|
|
103
93
|
*
|
|
104
94
|
* If a block don't have args, it will return an empty array.
|
|
105
95
|
*
|
|
106
96
|
* If the block don't exist, it may throw an exception.
|
|
107
97
|
*/
|
|
108
|
-
static
|
|
98
|
+
static getFieldsByBlockId(blockId: number): AnyBlockField[];
|
|
109
99
|
/**
|
|
110
|
-
* Returns the
|
|
100
|
+
* Returns the block fields for that block by given palette ID (full upper case).
|
|
111
101
|
*
|
|
112
102
|
* For eg "EMPTY" or "SIGN_GOLD"
|
|
113
103
|
*
|
|
@@ -115,5 +105,5 @@ export default class Block {
|
|
|
115
105
|
*
|
|
116
106
|
* If the block don't exist, it may throw an exception.
|
|
117
107
|
*/
|
|
118
|
-
static
|
|
108
|
+
static getFieldsByPaletteId(paletteId: string): AnyBlockField[];
|
|
119
109
|
}
|
package/cm/Block.js
CHANGED
|
@@ -1,83 +1,134 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const BufferReader_js_1 = tslib_1.__importDefault(require("./BufferReader.js"));
|
|
5
3
|
const pw_js_api_1 = require("pw-js-api");
|
|
6
4
|
const Error_js_1 = require("./util/Error.js");
|
|
5
|
+
const Misc_js_1 = require("./util/Misc.js");
|
|
7
6
|
class Block {
|
|
7
|
+
/**
|
|
8
|
+
* @param bId ID of the block, can be the current numeric block ID, or string ID (from /listblocks).
|
|
9
|
+
* @param args Arguments belonging to the block. This class does not clone.
|
|
10
|
+
*/
|
|
8
11
|
constructor(bId, args) {
|
|
9
|
-
|
|
12
|
+
/**
|
|
13
|
+
* NOTE as of October 2025, this is an object NOT an array.
|
|
14
|
+
*
|
|
15
|
+
* Stores the arguments
|
|
16
|
+
*/
|
|
17
|
+
this.args = {};
|
|
10
18
|
if (typeof bId === "number")
|
|
11
19
|
this.bId = bId;
|
|
12
20
|
else {
|
|
13
21
|
this.bId = Block.getIdByName(bId);
|
|
14
22
|
}
|
|
15
|
-
if (args)
|
|
16
|
-
|
|
23
|
+
if (args) {
|
|
24
|
+
// LEGACY SUPPORT
|
|
25
|
+
if (Array.isArray(args)) {
|
|
26
|
+
const fields = Block.getFieldsByBlockId(this.bId);
|
|
27
|
+
// For now, assuming they're of the same length.
|
|
28
|
+
if (args.length !== fields.length)
|
|
29
|
+
throw new Error_js_1.LegacyIncorrectArgsLenError("Args length is not equal to fields length for this block ID", this.bId, args.length, fields.length);
|
|
30
|
+
for (let i = 0, ken = fields.length; i < ken; i++) {
|
|
31
|
+
// const arg = fieldedArgs[keys[i]];
|
|
32
|
+
const field = fields[i];
|
|
33
|
+
const arg = args[i];
|
|
34
|
+
if (field.Type === "String" && typeof arg !== "string"
|
|
35
|
+
|| field.Type === "Boolean" && typeof arg !== "boolean"
|
|
36
|
+
|| field.Type === "Int32" && typeof arg !== "number"
|
|
37
|
+
|| field.Type === "UInt32" && typeof arg !== "number")
|
|
38
|
+
throw new Error_js_1.LegacyIncorrectArgError("The arg type does not match the field", this.bId, arg, field);
|
|
39
|
+
// todo: uint8array?
|
|
40
|
+
this.args[field.Name] = arg;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else
|
|
44
|
+
this.args = args;
|
|
45
|
+
}
|
|
17
46
|
}
|
|
18
47
|
/**
|
|
19
|
-
*
|
|
48
|
+
* This is called upon automatically (if a helper is attached) binding the args to the newly instantised block.
|
|
49
|
+
* This does not validate if the fields truly belong to the block.
|
|
20
50
|
*
|
|
21
|
-
*
|
|
51
|
+
* INTERNAL
|
|
22
52
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
53
|
+
_initArgs(args) {
|
|
54
|
+
this.args = Block.parseArgFields(args);
|
|
55
|
+
return this;
|
|
25
56
|
}
|
|
26
57
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* This is in Block class for organisation.
|
|
30
|
-
*
|
|
31
|
-
* This will deserialise by using the reader to get the block ID then retrieve the args, if applicable.
|
|
58
|
+
* True if there is at least one argument, otherwise false.
|
|
32
59
|
*/
|
|
33
|
-
|
|
34
|
-
return
|
|
60
|
+
hasArgs() {
|
|
61
|
+
return Object.keys(this.args).length > 0;
|
|
35
62
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (flag) {
|
|
41
|
-
reader.expectUInt8(format[i]);
|
|
42
|
-
}
|
|
43
|
-
this.args[i] = reader.read(format[i], !flag);
|
|
63
|
+
static getArgsAsFields(bId, args) {
|
|
64
|
+
if (bId instanceof Block) {
|
|
65
|
+
args !== null && args !== void 0 ? args : (args = bId.args);
|
|
66
|
+
bId = bId.bId;
|
|
44
67
|
}
|
|
45
|
-
|
|
68
|
+
if (args === undefined)
|
|
69
|
+
return {};
|
|
70
|
+
const fields = Block.getFieldsByBlockId(bId);
|
|
71
|
+
const obj = {};
|
|
72
|
+
for (let i = 0, len = fields.length; i < len; i++) {
|
|
73
|
+
const f = fields[i];
|
|
74
|
+
if (f.Required === true && args[f.Name] === undefined)
|
|
75
|
+
throw Error(`Missing argument: ${f.Name} (Type: ${f.Type})`);
|
|
76
|
+
else if (f.Required === false && args[f.Name] === undefined)
|
|
77
|
+
continue;
|
|
78
|
+
obj[f.Name] = {
|
|
79
|
+
value: {
|
|
80
|
+
case: (0, Misc_js_1.listedFieldTypeToGameType)(f.Type),
|
|
81
|
+
value: args[f.Name]
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return obj;
|
|
86
|
+
}
|
|
87
|
+
static getArgsAsArray(bId, args) {
|
|
88
|
+
if (bId instanceof Block) {
|
|
89
|
+
args = bId.args;
|
|
90
|
+
bId = bId.bId;
|
|
91
|
+
}
|
|
92
|
+
if (args === undefined)
|
|
93
|
+
return [];
|
|
94
|
+
const arr = [];
|
|
95
|
+
const fields = Block.getFieldsByBlockId(bId);
|
|
96
|
+
for (let i = 0, len = fields.length; i < len; i++) {
|
|
97
|
+
const f = fields[i];
|
|
98
|
+
const val = args[f.Name];
|
|
99
|
+
if (f.Required === true && val === undefined)
|
|
100
|
+
throw Error(`Missing argument: ${f.Name} (Type: ${f.Type})`);
|
|
101
|
+
else if (f.Required === false && args[f.Name] === undefined)
|
|
102
|
+
arr.push(undefined);
|
|
103
|
+
arr.push(args[fields[i].Name]);
|
|
104
|
+
}
|
|
105
|
+
return arr;
|
|
46
106
|
}
|
|
47
107
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
108
|
+
* This is sort of for internal use,
|
|
109
|
+
* this will convert the packet form of fields
|
|
110
|
+
* back into object of arg names mapped to their values.
|
|
51
111
|
*/
|
|
52
|
-
static
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (options.writeId) {
|
|
71
|
-
const idBuffer = Buffer.alloc(4);
|
|
72
|
-
idBuffer.writeUInt32LE(bId);
|
|
73
|
-
buffer.push(idBuffer);
|
|
74
|
-
}
|
|
75
|
-
const blockData = Block.getArgTypesByBlockId(bId);
|
|
76
|
-
for (let i = 0, len = blockData.length; i < len; i++) {
|
|
77
|
-
const entry = BufferReader_js_1.default.Dynamic(blockData[i], args[i]);
|
|
78
|
-
buffer.push(entry);
|
|
112
|
+
static parseArgFields(args) {
|
|
113
|
+
const obj = {};
|
|
114
|
+
const keys = Object.keys(args);
|
|
115
|
+
for (let i = 0; i < keys.length; i++) {
|
|
116
|
+
const arg = args[keys[i]];
|
|
117
|
+
const val = arg.value;
|
|
118
|
+
switch (val.case) {
|
|
119
|
+
default:
|
|
120
|
+
// TODO: error handling?
|
|
121
|
+
case "boolValue":
|
|
122
|
+
obj[keys[i]] = !!val.value; // server sends 0 or 1
|
|
123
|
+
break;
|
|
124
|
+
case "byteArrayValue":
|
|
125
|
+
case "stringValue":
|
|
126
|
+
case "uint32Value":
|
|
127
|
+
case "int32Value":
|
|
128
|
+
obj[keys[i]] = val.value;
|
|
129
|
+
}
|
|
79
130
|
}
|
|
80
|
-
return
|
|
131
|
+
return obj;
|
|
81
132
|
}
|
|
82
133
|
toPacket(pos, y, layer) {
|
|
83
134
|
if (typeof pos === "number") {
|
|
@@ -93,7 +144,8 @@ class Block {
|
|
|
93
144
|
blockId: this.bId,
|
|
94
145
|
layer,
|
|
95
146
|
positions: pos,
|
|
96
|
-
|
|
147
|
+
fields: Block.getArgsAsFields(this),
|
|
148
|
+
// extraFields: Block.serializeArgs(this.bId, this.args, { endian: "big", writeId: false, readTypeByte: true })
|
|
97
149
|
};
|
|
98
150
|
}
|
|
99
151
|
/**
|
|
@@ -114,7 +166,13 @@ class Block {
|
|
|
114
166
|
clone(obj = false) {
|
|
115
167
|
if (obj === true)
|
|
116
168
|
return { bId: this.bId, args: this.args, name: this.name };
|
|
117
|
-
|
|
169
|
+
const b = new Block(this.bId);
|
|
170
|
+
b.args = structuredClone(this.args);
|
|
171
|
+
return b;
|
|
172
|
+
}
|
|
173
|
+
compareTo(b) {
|
|
174
|
+
return this.bId === b.bId
|
|
175
|
+
&& (0, Misc_js_1.compareObjs)(this.args, b.args);
|
|
118
176
|
}
|
|
119
177
|
/**
|
|
120
178
|
* This can be convenient as it will always return the ID if it exists, and it will throw an error if it doesn't.
|
|
@@ -126,7 +184,7 @@ class Block {
|
|
|
126
184
|
*/
|
|
127
185
|
static getIdByName(paletteId) {
|
|
128
186
|
var _a;
|
|
129
|
-
const block = (_a = pw_js_api_1.PWApiClient.listBlocksObj) === null || _a === void 0 ? void 0 : _a[paletteId];
|
|
187
|
+
const block = (_a = pw_js_api_1.PWApiClient.listBlocksObj) === null || _a === void 0 ? void 0 : _a[paletteId.toUpperCase()];
|
|
130
188
|
if (block === undefined)
|
|
131
189
|
throw new Error_js_1.MissingBlockError("Current block data is missing, run Api#listBlocks first?", paletteId);
|
|
132
190
|
return block.Id;
|
|
@@ -147,20 +205,20 @@ class Block {
|
|
|
147
205
|
return block.PaletteId.toUpperCase();
|
|
148
206
|
}
|
|
149
207
|
/**
|
|
150
|
-
* Returns the
|
|
208
|
+
* Returns the block fields for that block by given block ID.
|
|
151
209
|
*
|
|
152
210
|
* If a block don't have args, it will return an empty array.
|
|
153
211
|
*
|
|
154
212
|
* If the block don't exist, it may throw an exception.
|
|
155
213
|
*/
|
|
156
|
-
static
|
|
214
|
+
static getFieldsByBlockId(blockId) {
|
|
157
215
|
var _a, _b;
|
|
158
|
-
return (_b = (_a = pw_js_api_1.PWApiClient.listBlocks) === null || _a === void 0 ? void 0 : _a[blockId].
|
|
216
|
+
return (_b = (_a = pw_js_api_1.PWApiClient.listBlocks) === null || _a === void 0 ? void 0 : _a[blockId].Fields) !== null && _b !== void 0 ? _b : [];
|
|
159
217
|
// const block = PWApiClient.listBlocks?.[blockId];
|
|
160
218
|
// return block ? MissingBlockData[block?.PaletteId.toUpperCase()] ?? (block.BlockDataArgs) as ComponentTypeHeader[] ?? [] : [];
|
|
161
219
|
}
|
|
162
220
|
/**
|
|
163
|
-
* Returns the
|
|
221
|
+
* Returns the block fields for that block by given palette ID (full upper case).
|
|
164
222
|
*
|
|
165
223
|
* For eg "EMPTY" or "SIGN_GOLD"
|
|
166
224
|
*
|
|
@@ -168,9 +226,9 @@ class Block {
|
|
|
168
226
|
*
|
|
169
227
|
* If the block don't exist, it may throw an exception.
|
|
170
228
|
*/
|
|
171
|
-
static
|
|
229
|
+
static getFieldsByPaletteId(paletteId) {
|
|
172
230
|
var _a, _b;
|
|
173
|
-
return (_b = (_a = pw_js_api_1.PWApiClient.listBlocksObj) === null || _a === void 0 ? void 0 : _a[paletteId].
|
|
231
|
+
return (_b = (_a = pw_js_api_1.PWApiClient.listBlocksObj) === null || _a === void 0 ? void 0 : _a[paletteId].Fields) !== null && _b !== void 0 ? _b : [];
|
|
174
232
|
//MissingBlockData[paletteId] ?? (PWApiClient.listBlocksObj?.[paletteId].BlockDataArgs) as ComponentTypeHeader[] ?? []
|
|
175
233
|
}
|
|
176
234
|
}
|
|
@@ -180,4 +238,4 @@ exports.default = Block;
|
|
|
180
238
|
// SWITCH_LOCAL_ACTIVATOR: [ComponentTypeHeader.Int32, ComponentTypeHeader.Byte],
|
|
181
239
|
// SWITCH_GLOBAL_ACTIVATOR: [ComponentTypeHeader.Int32, ComponentTypeHeader.Byte],
|
|
182
240
|
// } as Record<string, ComponentTypeHeader[]>;
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvQmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSx5Q0FBa0c7QUFDbEcsOENBQTBHO0FBQzFHLDRDQUF3RTtBQUV4RSxNQUFxQixLQUFLO0lBaUJ0Qjs7O09BR0c7SUFDSCxZQUFZLEdBQWdDLEVBQUUsSUFBNEM7UUFuQjFGOzs7O1dBSUc7UUFDSCxTQUFJLEdBQTZCLEVBQUUsQ0FBQztRQWVoQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUN2QyxDQUFDO1lBQ0YsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsaUJBQWlCO1lBQ2pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVsRCxnREFBZ0Q7Z0JBRWhELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTTtvQkFBRSxNQUFNLElBQUksc0NBQTJCLENBQUMsNkRBQTZELEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFOUssS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNoRCxvQ0FBb0M7b0JBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEIsTUFBTSxHQUFHLEdBQUcs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
|
package/cm/Constants.d.ts
CHANGED
package/cm/Constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EffectId = exports.LayerType = void 0;
|
|
3
|
+
exports.MAX_WORLD_BLOCK_PLACED_PACKET_POSITION_SIZE = exports.EffectId = exports.LayerType = void 0;
|
|
4
4
|
var LayerType;
|
|
5
5
|
(function (LayerType) {
|
|
6
6
|
LayerType[LayerType["Background"] = 0] = "Background";
|
|
@@ -23,4 +23,5 @@ var EffectId;
|
|
|
23
23
|
*/
|
|
24
24
|
EffectId[EffectId["GravityDirection"] = 9] = "GravityDirection";
|
|
25
25
|
})(EffectId || (exports.EffectId = EffectId = {}));
|
|
26
|
-
|
|
26
|
+
exports.MAX_WORLD_BLOCK_PLACED_PACKET_POSITION_SIZE = 200;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL0NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDakIscURBQVUsQ0FBQTtJQUNWLHFEQUFVLENBQUE7SUFDViwrQ0FBTyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLFNBQVMseUJBQVQsU0FBUyxRQUlwQjtBQUVELElBQVksUUFjWDtBQWRELFdBQVksUUFBUTtJQUNoQixtREFBVSxDQUFBO0lBQ1YscUNBQUcsQ0FBQTtJQUNILHlDQUFLLENBQUE7SUFDTCw2REFBZSxDQUFBO0lBQ2YseUNBQUssQ0FBQTtJQUNMLDJDQUFNLENBQUE7SUFDTiwyQ0FBTSxDQUFBO0lBQ04sdURBQVksQ0FBQTtJQUNaLGlEQUFTLENBQUE7SUFDVDs7T0FFRztJQUNILCtEQUFnQixDQUFBO0FBQ3BCLENBQUMsRUFkVyxRQUFRLHdCQUFSLFFBQVEsUUFjbkI7QUFDWSxRQUFBLDJDQUEyQyxHQUFHLEdBQUcsQ0FBQyJ9
|