mca-json 1.1.1 → 1.2.0
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/bin/mca-chunks.js +1 -1
- package/dist/bin/mca-chunks.js.map +1 -1
- package/dist/bin/mca-find-signs.js +2 -2
- package/dist/bin/mca-find-signs.js.map +1 -1
- package/dist/bin/mca-json.js +1 -1
- package/dist/bin/mca-json.js.map +1 -1
- package/dist/bin/mca-remove-chunks.js +1 -1
- package/dist/bin/mca-remove-chunks.js.map +1 -1
- package/dist/bin/nbt-get-player-location.js +1 -1
- package/dist/bin/nbt-get-player-location.js.map +1 -1
- package/dist/bin/nbt-json.js +1 -1
- package/dist/bin/nbt-json.js.map +1 -1
- package/dist/block/banner.d.ts +1 -1
- package/dist/block/banner.d.ts.map +1 -1
- package/dist/block/banner.js +2 -2
- package/dist/block/banner.js.map +1 -1
- package/dist/block/barrel.d.ts +6 -6
- package/dist/block/barrel.d.ts.map +1 -1
- package/dist/block/barrel.js +4 -4
- package/dist/block/barrel.js.map +1 -1
- package/dist/block/beacon.d.ts +6 -6
- package/dist/block/beacon.d.ts.map +1 -1
- package/dist/block/beacon.js +4 -4
- package/dist/block/beacon.js.map +1 -1
- package/dist/block/bed.d.ts +1 -1
- package/dist/block/bed.d.ts.map +1 -1
- package/dist/block/bed.js +1 -1
- package/dist/block/bed.js.map +1 -1
- package/dist/block/beehive.d.ts +4 -4
- package/dist/block/beehive.d.ts.map +1 -1
- package/dist/block/beehive.js +1 -1
- package/dist/block/beehive.js.map +1 -1
- package/dist/block/bell.d.ts +1 -1
- package/dist/block/bell.d.ts.map +1 -1
- package/dist/block/bell.js +1 -1
- package/dist/block/bell.js.map +1 -1
- package/dist/block/block.d.ts +10 -10
- package/dist/block/block.d.ts.map +1 -1
- package/dist/block/block.js +8 -8
- package/dist/block/block.js.map +1 -1
- package/dist/block/generic.d.ts +2 -2
- package/dist/block/generic.d.ts.map +1 -1
- package/dist/block/generic.js.map +1 -1
- package/dist/block/has-entity-data.d.ts +3 -3
- package/dist/block/has-entity-data.d.ts.map +1 -1
- package/dist/block/has-entity-data.js +1 -1
- package/dist/block/has-entity-data.js.map +1 -1
- package/dist/block/mixins/custom-name.d.ts +1 -1
- package/dist/block/mixins/custom-name.d.ts.map +1 -1
- package/dist/block/mixins/custom-name.js +1 -1
- package/dist/block/mixins/custom-name.js.map +1 -1
- package/dist/block/mixins/lock.d.ts +1 -1
- package/dist/block/mixins/lock.d.ts.map +1 -1
- package/dist/block/mixins/lock.js +1 -1
- package/dist/block/mixins/lock.js.map +1 -1
- package/dist/block/sign.d.ts +1 -1
- package/dist/block/sign.d.ts.map +1 -1
- package/dist/block/sign.js +1 -1
- package/dist/block/sign.js.map +1 -1
- package/dist/index.d.ts +38 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -38
- package/dist/index.js.map +1 -1
- package/dist/lib/anvil.d.ts +3 -3
- package/dist/lib/anvil.d.ts.map +1 -1
- package/dist/lib/anvil.js +3 -3
- package/dist/lib/anvil.js.map +1 -1
- package/dist/lib/bit-data.d.ts +1 -1
- package/dist/lib/bit-data.d.ts.map +1 -1
- package/dist/lib/bit-data.js.map +1 -1
- package/dist/lib/block-data.d.ts +4 -4
- package/dist/lib/block-data.d.ts.map +1 -1
- package/dist/lib/block-data.js +1 -1
- package/dist/lib/block-data.js.map +1 -1
- package/dist/lib/chunk.d.ts +5 -5
- package/dist/lib/chunk.d.ts.map +1 -1
- package/dist/lib/chunk.js +3 -3
- package/dist/lib/chunk.js.map +1 -1
- package/dist/nbt/nbt-base.d.ts +2 -2
- package/dist/nbt/nbt-base.d.ts.map +1 -1
- package/dist/nbt/nbt-base.js.map +1 -1
- package/dist/nbt/nbt-byte-array.d.ts +3 -3
- package/dist/nbt/nbt-byte-array.d.ts.map +1 -1
- package/dist/nbt/nbt-byte-array.js +2 -2
- package/dist/nbt/nbt-byte-array.js.map +1 -1
- package/dist/nbt/nbt-byte.d.ts +3 -3
- package/dist/nbt/nbt-byte.d.ts.map +1 -1
- package/dist/nbt/nbt-byte.js +2 -2
- package/dist/nbt/nbt-byte.js.map +1 -1
- package/dist/nbt/nbt-compound.d.ts +3 -3
- package/dist/nbt/nbt-compound.d.ts.map +1 -1
- package/dist/nbt/nbt-compound.js +3 -3
- package/dist/nbt/nbt-compound.js.map +1 -1
- package/dist/nbt/nbt-double.d.ts +3 -3
- package/dist/nbt/nbt-double.d.ts.map +1 -1
- package/dist/nbt/nbt-double.js +2 -2
- package/dist/nbt/nbt-double.js.map +1 -1
- package/dist/nbt/nbt-end.d.ts +2 -2
- package/dist/nbt/nbt-end.d.ts.map +1 -1
- package/dist/nbt/nbt-end.js +2 -2
- package/dist/nbt/nbt-end.js.map +1 -1
- package/dist/nbt/nbt-float.d.ts +3 -3
- package/dist/nbt/nbt-float.d.ts.map +1 -1
- package/dist/nbt/nbt-float.js +2 -2
- package/dist/nbt/nbt-float.js.map +1 -1
- package/dist/nbt/nbt-int-array.d.ts +3 -3
- package/dist/nbt/nbt-int-array.d.ts.map +1 -1
- package/dist/nbt/nbt-int-array.js +2 -2
- package/dist/nbt/nbt-int-array.js.map +1 -1
- package/dist/nbt/nbt-int.d.ts +3 -3
- package/dist/nbt/nbt-int.d.ts.map +1 -1
- package/dist/nbt/nbt-int.js +2 -2
- package/dist/nbt/nbt-int.js.map +1 -1
- package/dist/nbt/nbt-list.d.ts +3 -3
- package/dist/nbt/nbt-list.d.ts.map +1 -1
- package/dist/nbt/nbt-list.js +3 -3
- package/dist/nbt/nbt-list.js.map +1 -1
- package/dist/nbt/nbt-long-array.d.ts +3 -3
- package/dist/nbt/nbt-long-array.d.ts.map +1 -1
- package/dist/nbt/nbt-long-array.js +2 -2
- package/dist/nbt/nbt-long-array.js.map +1 -1
- package/dist/nbt/nbt-long.d.ts +3 -3
- package/dist/nbt/nbt-long.d.ts.map +1 -1
- package/dist/nbt/nbt-long.js +2 -2
- package/dist/nbt/nbt-long.js.map +1 -1
- package/dist/nbt/nbt-short.d.ts +3 -3
- package/dist/nbt/nbt-short.d.ts.map +1 -1
- package/dist/nbt/nbt-short.js +2 -2
- package/dist/nbt/nbt-short.js.map +1 -1
- package/dist/nbt/nbt-string.d.ts +3 -3
- package/dist/nbt/nbt-string.d.ts.map +1 -1
- package/dist/nbt/nbt-string.js +2 -2
- package/dist/nbt/nbt-string.js.map +1 -1
- package/dist/nbt/nbt.d.ts +2 -2
- package/dist/nbt/nbt.d.ts.map +1 -1
- package/dist/nbt/nbt.js +17 -17
- package/dist/nbt/nbt.js.map +1 -1
- package/dist/nbt/snbt-parse.d.ts +1 -1
- package/dist/nbt/snbt-parse.d.ts.map +1 -1
- package/dist/nbt/snbt-parse.js +1 -1
- package/dist/nbt/snbt-parse.js.map +1 -1
- package/dist/nbt/snbt-to-nbt.d.ts +2 -2
- package/dist/nbt/snbt-to-nbt.d.ts.map +1 -1
- package/dist/nbt/snbt-to-nbt.js +12 -12
- package/dist/nbt/snbt-to-nbt.js.map +1 -1
- package/package.json +3 -3
- package/src/bin/mca-chunks.ts +1 -1
- package/src/bin/mca-find-signs.ts +3 -3
- package/src/bin/mca-json.ts +1 -1
- package/src/bin/mca-remove-chunks.ts +1 -1
- package/src/bin/nbt-get-player-location.ts +1 -1
- package/src/bin/nbt-json.ts +1 -1
- package/src/block/banner.ts +4 -4
- package/src/block/barrel.ts +8 -8
- package/src/block/beacon.ts +5 -5
- package/src/block/bed.ts +1 -1
- package/src/block/beehive.ts +5 -5
- package/src/block/bell.ts +1 -1
- package/src/block/block.ts +10 -10
- package/src/block/generic.ts +2 -2
- package/src/block/has-entity-data.ts +3 -3
- package/src/block/mixins/custom-name.ts +2 -2
- package/src/block/mixins/lock.ts +2 -2
- package/src/block/sign.ts +4 -4
- package/src/index.ts +38 -38
- package/src/lib/anvil.ts +4 -4
- package/src/lib/bit-data.ts +1 -1
- package/src/lib/block-data.ts +6 -6
- package/src/lib/chunk.ts +13 -13
- package/src/nbt/nbt-base.ts +2 -2
- package/src/nbt/nbt-byte-array.ts +3 -3
- package/src/nbt/nbt-byte.ts +3 -3
- package/src/nbt/nbt-compound.ts +4 -4
- package/src/nbt/nbt-double.ts +3 -3
- package/src/nbt/nbt-end.ts +2 -2
- package/src/nbt/nbt-float.ts +3 -3
- package/src/nbt/nbt-int-array.ts +3 -3
- package/src/nbt/nbt-int.ts +3 -3
- package/src/nbt/nbt-list.ts +4 -4
- package/src/nbt/nbt-long-array.ts +3 -3
- package/src/nbt/nbt-long.ts +3 -3
- package/src/nbt/nbt-short.ts +3 -3
- package/src/nbt/nbt-string.ts +3 -3
- package/src/nbt/nbt.ts +18 -18
- package/src/nbt/snbt-parse.ts +1 -1
- package/src/nbt/snbt-to-nbt.ts +14 -14
- package/tsconfig.json +2 -2
package/dist/block/block.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/block/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/block/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,KAAK;IACd,MAAM,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAA4C;QACzE,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QACxB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QACxB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QACxB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;QAClB,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC;QAC1B,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;QACpB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;KACvB,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,IAAY,EAAE,MAAgB,EAAE,UAAwB;QAClE,KAAK,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC/D,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QACxB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,KAAK,kBAAkB,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,KAAK,kBAAkB,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,IAAY;QACzB,OAAO,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,oBAAoB,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAY;QACtB,OAAO,IAAI,KAAK,gBAAgB,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAY;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/C,CAAC","sourcesContent":["import { Banner } from './banner.js';\nimport { Barrel } from './barrel.js';\nimport { Beacon } from './beacon.js';\nimport { Bed } from './bed.js';\nimport { Beehive } from './beehive.js';\nimport { Bell } from './bell.js';\nimport { Coords3d } from '../types/coords.js';\nimport { Generic } from './generic.js';\nimport { NbtCompound } from '../nbt/nbt-compound.js';\nimport { Sign } from './sign.js';\n\nexport type BlockInstance = Banner | Barrel | Beacon | Bed | Beehive | Bell | Generic | Sign;\n\nexport class Block {\n static blockConstructor = new Map<(name: string) => boolean, typeof Generic>([\n [Block.isBanner, Banner],\n [Block.isBarrel, Barrel],\n [Block.isBeacon, Beacon],\n [Block.isBed, Bed],\n [Block.isBeehive, Beehive],\n [Block.isBell, Bell],\n [Block.isSign, Sign]\n ]);\n\n static create(name: string, coords: Coords3d, entityData?: NbtCompound): Generic {\n for (const [isBlock, blockConstructor] of Block.blockConstructor) {\n if (isBlock(name)) {\n return new blockConstructor(name, coords, entityData);\n }\n }\n\n return new Generic(name, coords, entityData);\n }\n\n static isBanner(name: string): boolean {\n return !!name.match(/^minecraft:.+_banner$/);\n }\n\n static isBarrel(name: string): boolean {\n return name === 'minecraft:barrel';\n }\n\n static isBeacon(name: string): boolean {\n return name === 'minecraft:beacon';\n }\n\n static isBed(name: string): boolean {\n return !!name.match(/^minecraft:.+_bed$/);\n }\n\n static isBeehive(name: string): boolean {\n return name === 'minecraft:beehive' || name === 'minecraft:bee_nest';\n }\n\n static isBell(name: string): boolean {\n return name === 'minecraft:bell';\n }\n\n static isSign(name: string): boolean {\n return !!name.match(/^minecraft:.+_sign$/);\n }\n}\n"]}
|
package/dist/block/generic.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Coords3d } from '../types/coords';
|
|
2
|
-
import { NbtCompound } from '../nbt/nbt-compound';
|
|
1
|
+
import { Coords3d } from '../types/coords.js';
|
|
2
|
+
import { NbtCompound } from '../nbt/nbt-compound.js';
|
|
3
3
|
export declare class Generic {
|
|
4
4
|
name: string;
|
|
5
5
|
coords: Coords3d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/block/generic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/block/generic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,qBAAa,OAAO;IAEL,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,UAAU,CAAC,EAAE,WAAW;gBAFxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,QAAQ,EAChB,UAAU,CAAC,EAAE,WAAW,YAAA;IAGnC,UAAU,IAAI,WAAW,GAAG,SAAS;CAGxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/block/generic.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,OAAO;IAEL;IACA;IACA;IAHX,YACW,IAAY,EACZ,MAAgB,EAChB,UAAwB;QAFxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAU;QAChB,eAAU,GAAV,UAAU,CAAc;IAChC,CAAC;IAEJ,UAAU;QACN,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,CAAc,YAAY,CAAC,CAAC;IACjE,CAAC;CACJ","sourcesContent":["import { Coords3d } from '../types/coords';\nimport { NbtCompound } from '../nbt/nbt-compound';\n\nexport class Generic {\n constructor(\n public name: string,\n public coords: Coords3d,\n public entityData?: NbtCompound\n ) {}\n\n components(): NbtCompound | undefined {\n return this.entityData?.findChild<NbtCompound>('components');\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/block/generic.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,OAAO;IAEL;IACA;IACA;IAHX,YACW,IAAY,EACZ,MAAgB,EAChB,UAAwB;QAFxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAU;QAChB,eAAU,GAAV,UAAU,CAAc;IAChC,CAAC;IAEJ,UAAU;QACN,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,CAAc,YAAY,CAAC,CAAC;IACjE,CAAC;CACJ","sourcesContent":["import { Coords3d } from '../types/coords.js';\nimport { NbtCompound } from '../nbt/nbt-compound.js';\n\nexport class Generic {\n constructor(\n public name: string,\n public coords: Coords3d,\n public entityData?: NbtCompound\n ) {}\n\n components(): NbtCompound | undefined {\n return this.entityData?.findChild<NbtCompound>('components');\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Generic } from './generic';
|
|
2
|
-
import { Coords3d } from '../types/coords';
|
|
3
|
-
import { NbtCompound } from '../nbt/nbt-compound';
|
|
1
|
+
import { Generic } from './generic.js';
|
|
2
|
+
import { Coords3d } from '../types/coords.js';
|
|
3
|
+
import { NbtCompound } from '../nbt/nbt-compound.js';
|
|
4
4
|
export declare class HasEntityData extends Generic {
|
|
5
5
|
entityData: NbtCompound;
|
|
6
6
|
constructor(name: string, coords: Coords3d, entityData?: NbtCompound);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-entity-data.d.ts","sourceRoot":"","sources":["../../src/block/has-entity-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"has-entity-data.d.ts","sourceRoot":"","sources":["../../src/block/has-entity-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,qBAAa,aAAc,SAAQ,OAAO;IAC7B,UAAU,EAAE,WAAW,CAAC;gBAG7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,QAAQ,EAChB,UAAU,CAAC,EAAE,WAAW;CAS/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-entity-data.js","sourceRoot":"","sources":["../../src/block/has-entity-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"has-entity-data.js","sourceRoot":"","sources":["../../src/block/has-entity-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,MAAM,OAAO,aAAc,SAAQ,OAAO;IAC7B,UAAU,CAAc;IAEjC,YACI,IAAY,EACZ,MAAgB,EAChB,UAAwB;QAExB,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC;QAED,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;CACJ","sourcesContent":["import { Generic } from './generic.js';\nimport { Coords3d } from '../types/coords.js';\nimport { NbtCompound } from '../nbt/nbt-compound.js';\n\nexport class HasEntityData extends Generic {\n override entityData: NbtCompound;\n\n constructor(\n name: string,\n coords: Coords3d,\n entityData?: NbtCompound\n ) {\n if (!entityData) {\n throw new Error('Block is supposed to have entity data');\n }\n\n super(name, coords, entityData);\n this.entityData = entityData;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-name.d.ts","sourceRoot":"","sources":["../../../src/block/mixins/custom-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"custom-name.d.ts","sourceRoot":"","sources":["../../../src/block/mixins/custom-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,qBAAa,UAAW,SAAQ,aAAa;IACzC,UAAU,IAAI,MAAM,GAAG,SAAS;CAGnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-name.js","sourceRoot":"","sources":["../../../src/block/mixins/custom-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"custom-name.js","sourceRoot":"","sources":["../../../src/block/mixins/custom-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,OAAO,UAAW,SAAQ,aAAa;IACzC,UAAU;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAY,YAAY,CAAC,EAAE,IAAI,CAAC;IACpE,CAAC;CACJ","sourcesContent":["import { HasEntityData } from '../has-entity-data.js';\nimport { NbtString } from '../../nbt/nbt-string.js';\n\nexport class CustomName extends HasEntityData {\n customName(): string | undefined {\n return this.entityData.findChild<NbtString>('CustomName')?.data;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/block/mixins/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/block/mixins/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,qBAAa,IAAK,SAAQ,aAAa;IACnC,IAAI,IAAI,MAAM,GAAG,SAAS;CAG7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../src/block/mixins/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../src/block/mixins/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,OAAO,IAAK,SAAQ,aAAa;IACnC,IAAI;QACA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAY,MAAM,CAAC,EAAE,IAAI,CAAC;IAC9D,CAAC;CACJ","sourcesContent":["import { HasEntityData } from '../has-entity-data.js';\nimport { NbtString } from '../../nbt/nbt-string.js';\n\nexport class Lock extends HasEntityData {\n lock(): string | undefined {\n return this.entityData.findChild<NbtString>('Lock')?.data;\n }\n}\n"]}
|
package/dist/block/sign.d.ts
CHANGED
package/dist/block/sign.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../src/block/sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../src/block/sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKrD,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,qBAAa,IAAK,SAAQ,aAAa;IACnC,SAAS,IAAI,MAAM,GAAG,SAAS;IAK/B,eAAe,IAAI,OAAO,GAAG,SAAS;IActC,QAAQ,IAAI,QAAQ,GAAG,SAAS;IAchC,UAAU,IAAI,MAAM,GAAG,SAAS;IAShC,gBAAgB,IAAI,OAAO,GAAG,SAAS;IAcvC,SAAS,IAAI,QAAQ;IAyBrB,OAAO,IAAI,OAAO,GAAG,SAAS;IAY9B,OAAO,CAAC,UAAU;CAGrB"}
|
package/dist/block/sign.js
CHANGED
package/dist/block/sign.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/block/sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/block/sign.ts"],"names":[],"mappings":"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","sourcesContent":["import { HasEntityData } from './has-entity-data.js';\nimport { NbtByte } from '../nbt/nbt-byte.js';\nimport { NbtList } from '../nbt/nbt-list.js';\nimport { NbtString } from '../nbt/nbt-string.js';\n\ntype SignText = [string, string, string, string];\n\nexport class Sign extends HasEntityData {\n backColor(): string | undefined {\n // 1.20+\n return this.entityData.findChild<NbtString>('back_text/color')?.data;\n }\n\n backGlowingText(): boolean | undefined {\n // 1.20+\n const byte = this.entityData.findChild<NbtByte>(\n 'back_text/has_glowing_text'\n );\n\n if (byte) {\n return byte.data !== 0;\n }\n\n // Up to 1.19\n return;\n }\n\n backText(): SignText | undefined {\n // 1.20+\n const backSnbt = this.entityData\n .findChild<NbtList<NbtString>>('back_text/messages')\n ?.data.map((tag) => tag.data);\n\n if (this.isSignText(backSnbt)) {\n return backSnbt;\n }\n\n // Up to 1.19\n return;\n }\n\n frontColor(): string | undefined {\n return (\n // 1.20+\n this.entityData.findChild<NbtString>('front_text/color')?.data ||\n // Up to 1.19\n this.entityData.findChild<NbtString>('Color')?.data\n );\n }\n\n frontGlowingText(): boolean | undefined {\n const byte =\n // 1.20+\n this.entityData.findChild<NbtByte>('front_text/has_glowing_text') ||\n // Up to 1.19\n this.entityData.findChild<NbtByte>('GlowingText');\n\n if (byte) {\n return byte.data !== 0;\n }\n\n return;\n }\n\n frontText(): SignText {\n // 1.20+\n const frontSnbt = this.entityData\n .findChild<NbtList<NbtString>>('front_text/messages')\n ?.data.map((tag) => tag.data);\n\n if (this.isSignText(frontSnbt)) {\n return frontSnbt;\n }\n\n // Up to 1.19\n const frontOldSnbt = [\n this.entityData.findChild<NbtString>('Text1')?.data,\n this.entityData.findChild<NbtString>('Text2')?.data,\n this.entityData.findChild<NbtString>('Text3')?.data,\n this.entityData.findChild<NbtString>('Text4')?.data,\n ].filter((tag): tag is string => !!tag);\n\n if (this.isSignText(frontOldSnbt)) {\n return frontOldSnbt;\n }\n\n throw new Error('Unknown format for sign text');\n }\n\n isWaxed(): boolean | undefined {\n const tag = this.entityData.findChild<NbtByte>('waxed');\n\n if (!tag) {\n // Up to 1.19\n return;\n }\n\n // 1.20+\n return tag.data !== 0;\n }\n\n private isSignText(value?: string[]): value is SignText {\n return value?.length === 4;\n }\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
export * from './block/banner';
|
|
2
|
-
export * from './block/barrel';
|
|
3
|
-
export * from './block/beacon';
|
|
4
|
-
export * from './block/bed';
|
|
5
|
-
export * from './block/beehive';
|
|
6
|
-
export * from './block/bell';
|
|
7
|
-
export * from './block/block';
|
|
8
|
-
export * from './block/generic';
|
|
9
|
-
export * from './block/has-entity-data';
|
|
10
|
-
export * from './block/mixins/custom-name';
|
|
11
|
-
export * from './block/mixins/lock';
|
|
12
|
-
export * from './block/mixins/mixin';
|
|
13
|
-
export * from './block/sign';
|
|
14
|
-
export * from './lib/anvil';
|
|
15
|
-
export * from './lib/binary-data';
|
|
16
|
-
export * from './lib/bit-data';
|
|
17
|
-
export * from './lib/block-data';
|
|
18
|
-
export * from './lib/chunk';
|
|
19
|
-
export * from './nbt/nbt';
|
|
20
|
-
export * from './nbt/nbt-
|
|
21
|
-
export * from './nbt/nbt-byte';
|
|
22
|
-
export * from './nbt/nbt-
|
|
23
|
-
export * from './nbt/nbt-
|
|
24
|
-
export * from './nbt/nbt-
|
|
25
|
-
export * from './nbt/nbt-
|
|
26
|
-
export * from './nbt/nbt-
|
|
27
|
-
export * from './nbt/nbt-int';
|
|
28
|
-
export * from './nbt/nbt-
|
|
29
|
-
export * from './nbt/nbt-
|
|
30
|
-
export * from './nbt/nbt-long';
|
|
31
|
-
export * from './nbt/nbt-
|
|
32
|
-
export * from './nbt/nbt-
|
|
33
|
-
export * from './nbt/nbt-
|
|
34
|
-
export * from './nbt/nbt
|
|
35
|
-
export * from './nbt/snbt-data';
|
|
36
|
-
export * from './nbt/snbt-parse';
|
|
37
|
-
export * from './nbt/snbt-to-nbt';
|
|
38
|
-
export * from './types/coords';
|
|
1
|
+
export * from './block/banner.js';
|
|
2
|
+
export * from './block/barrel.js';
|
|
3
|
+
export * from './block/beacon.js';
|
|
4
|
+
export * from './block/bed.js';
|
|
5
|
+
export * from './block/beehive.js';
|
|
6
|
+
export * from './block/bell.js';
|
|
7
|
+
export * from './block/block.js';
|
|
8
|
+
export * from './block/generic.js';
|
|
9
|
+
export * from './block/has-entity-data.js';
|
|
10
|
+
export * from './block/mixins/custom-name.js';
|
|
11
|
+
export * from './block/mixins/lock.js';
|
|
12
|
+
export * from './block/mixins/mixin.js';
|
|
13
|
+
export * from './block/sign.js';
|
|
14
|
+
export * from './lib/anvil.js';
|
|
15
|
+
export * from './lib/binary-data.js';
|
|
16
|
+
export * from './lib/bit-data.js';
|
|
17
|
+
export * from './lib/block-data.js';
|
|
18
|
+
export * from './lib/chunk.js';
|
|
19
|
+
export * from './nbt/nbt-base.js';
|
|
20
|
+
export * from './nbt/nbt-byte-array.js';
|
|
21
|
+
export * from './nbt/nbt-byte.js';
|
|
22
|
+
export * from './nbt/nbt-compound.js';
|
|
23
|
+
export * from './nbt/nbt-double.js';
|
|
24
|
+
export * from './nbt/nbt-end.js';
|
|
25
|
+
export * from './nbt/nbt-float.js';
|
|
26
|
+
export * from './nbt/nbt-int-array.js';
|
|
27
|
+
export * from './nbt/nbt-int.js';
|
|
28
|
+
export * from './nbt/nbt-list.js';
|
|
29
|
+
export * from './nbt/nbt-long-array.js';
|
|
30
|
+
export * from './nbt/nbt-long.js';
|
|
31
|
+
export * from './nbt/nbt-short.js';
|
|
32
|
+
export * from './nbt/nbt-string.js';
|
|
33
|
+
export * from './nbt/nbt-tag-type.js';
|
|
34
|
+
export * from './nbt/nbt.js';
|
|
35
|
+
export * from './nbt/snbt-data.js';
|
|
36
|
+
export * from './nbt/snbt-parse.js';
|
|
37
|
+
export * from './nbt/snbt-to-nbt.js';
|
|
38
|
+
export * from './types/coords.js';
|
|
39
39
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
export * from './block/banner';
|
|
2
|
-
export * from './block/barrel';
|
|
3
|
-
export * from './block/beacon';
|
|
4
|
-
export * from './block/bed';
|
|
5
|
-
export * from './block/beehive';
|
|
6
|
-
export * from './block/bell';
|
|
7
|
-
export * from './block/block';
|
|
8
|
-
export * from './block/generic';
|
|
9
|
-
export * from './block/has-entity-data';
|
|
10
|
-
export * from './block/mixins/custom-name';
|
|
11
|
-
export * from './block/mixins/lock';
|
|
12
|
-
export * from './block/mixins/mixin';
|
|
13
|
-
export * from './block/sign';
|
|
14
|
-
export * from './lib/anvil';
|
|
15
|
-
export * from './lib/binary-data';
|
|
16
|
-
export * from './lib/bit-data';
|
|
17
|
-
export * from './lib/block-data';
|
|
18
|
-
export * from './lib/chunk';
|
|
19
|
-
export * from './nbt/nbt';
|
|
20
|
-
export * from './nbt/nbt-
|
|
21
|
-
export * from './nbt/nbt-byte';
|
|
22
|
-
export * from './nbt/nbt-
|
|
23
|
-
export * from './nbt/nbt-
|
|
24
|
-
export * from './nbt/nbt-
|
|
25
|
-
export * from './nbt/nbt-
|
|
26
|
-
export * from './nbt/nbt-
|
|
27
|
-
export * from './nbt/nbt-int';
|
|
28
|
-
export * from './nbt/nbt-
|
|
29
|
-
export * from './nbt/nbt-
|
|
30
|
-
export * from './nbt/nbt-long';
|
|
31
|
-
export * from './nbt/nbt-
|
|
32
|
-
export * from './nbt/nbt-
|
|
33
|
-
export * from './nbt/nbt-
|
|
34
|
-
export * from './nbt/nbt
|
|
35
|
-
export * from './nbt/snbt-data';
|
|
36
|
-
export * from './nbt/snbt-parse';
|
|
37
|
-
export * from './nbt/snbt-to-nbt';
|
|
38
|
-
export * from './types/coords';
|
|
1
|
+
export * from './block/banner.js';
|
|
2
|
+
export * from './block/barrel.js';
|
|
3
|
+
export * from './block/beacon.js';
|
|
4
|
+
export * from './block/bed.js';
|
|
5
|
+
export * from './block/beehive.js';
|
|
6
|
+
export * from './block/bell.js';
|
|
7
|
+
export * from './block/block.js';
|
|
8
|
+
export * from './block/generic.js';
|
|
9
|
+
export * from './block/has-entity-data.js';
|
|
10
|
+
export * from './block/mixins/custom-name.js';
|
|
11
|
+
export * from './block/mixins/lock.js';
|
|
12
|
+
export * from './block/mixins/mixin.js';
|
|
13
|
+
export * from './block/sign.js';
|
|
14
|
+
export * from './lib/anvil.js';
|
|
15
|
+
export * from './lib/binary-data.js';
|
|
16
|
+
export * from './lib/bit-data.js';
|
|
17
|
+
export * from './lib/block-data.js';
|
|
18
|
+
export * from './lib/chunk.js';
|
|
19
|
+
export * from './nbt/nbt-base.js';
|
|
20
|
+
export * from './nbt/nbt-byte-array.js';
|
|
21
|
+
export * from './nbt/nbt-byte.js';
|
|
22
|
+
export * from './nbt/nbt-compound.js';
|
|
23
|
+
export * from './nbt/nbt-double.js';
|
|
24
|
+
export * from './nbt/nbt-end.js';
|
|
25
|
+
export * from './nbt/nbt-float.js';
|
|
26
|
+
export * from './nbt/nbt-int-array.js';
|
|
27
|
+
export * from './nbt/nbt-int.js';
|
|
28
|
+
export * from './nbt/nbt-list.js';
|
|
29
|
+
export * from './nbt/nbt-long-array.js';
|
|
30
|
+
export * from './nbt/nbt-long.js';
|
|
31
|
+
export * from './nbt/nbt-short.js';
|
|
32
|
+
export * from './nbt/nbt-string.js';
|
|
33
|
+
export * from './nbt/nbt-tag-type.js';
|
|
34
|
+
export * from './nbt/nbt.js';
|
|
35
|
+
export * from './nbt/snbt-data.js';
|
|
36
|
+
export * from './nbt/snbt-parse.js';
|
|
37
|
+
export * from './nbt/snbt-to-nbt.js';
|
|
38
|
+
export * from './types/coords.js';
|
|
39
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from './block/banner.js';\nexport * from './block/barrel.js';\nexport * from './block/beacon.js';\nexport * from './block/bed.js';\nexport * from './block/beehive.js';\nexport * from './block/bell.js';\nexport * from './block/block.js';\nexport * from './block/generic.js';\nexport * from './block/has-entity-data.js';\nexport * from './block/mixins/custom-name.js';\nexport * from './block/mixins/lock.js';\nexport * from './block/mixins/mixin.js';\nexport * from './block/sign.js';\nexport * from './lib/anvil.js';\nexport * from './lib/binary-data.js';\nexport * from './lib/bit-data.js';\nexport * from './lib/block-data.js';\nexport * from './lib/chunk.js';\nexport * from './nbt/nbt-base.js';\nexport * from './nbt/nbt-byte-array.js';\nexport * from './nbt/nbt-byte.js';\nexport * from './nbt/nbt-compound.js';\nexport * from './nbt/nbt-double.js';\nexport * from './nbt/nbt-end.js';\nexport * from './nbt/nbt-float.js';\nexport * from './nbt/nbt-int-array.js';\nexport * from './nbt/nbt-int.js';\nexport * from './nbt/nbt-list.js';\nexport * from './nbt/nbt-long-array.js';\nexport * from './nbt/nbt-long.js';\nexport * from './nbt/nbt-short.js';\nexport * from './nbt/nbt-string.js';\nexport * from './nbt/nbt-tag-type.js';\nexport * from './nbt/nbt.js';\nexport * from './nbt/snbt-data.js';\nexport * from './nbt/snbt-parse.js';\nexport * from './nbt/snbt-to-nbt.js';\nexport * from './types/coords.js';\n"]}
|
package/dist/lib/anvil.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BinaryData } from './binary-data';
|
|
2
|
-
import { Chunk } from './chunk';
|
|
3
|
-
import { Coords2d } from '../types/coords';
|
|
1
|
+
import { BinaryData } from './binary-data.js';
|
|
2
|
+
import { Chunk } from './chunk.js';
|
|
3
|
+
import { Coords2d } from '../types/coords.js';
|
|
4
4
|
type LocationEntry = {
|
|
5
5
|
offset: number;
|
|
6
6
|
sectorCount: number;
|
package/dist/lib/anvil.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anvil.d.ts","sourceRoot":"","sources":["../../src/lib/anvil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"anvil.d.ts","sourceRoot":"","sources":["../../src/lib/anvil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,KAAK,aAAa,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAWF;;GAEG;AACH,qBAAa,KAAK;IACd,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,KAAK;IAIjD,qBAAqB,EAAE,aAAa,EAAE,GAAG,IAAI,CAAQ;IACrD,IAAI,EAAE,UAAU,CAAC;gBAEL,IAAI,EAAE,eAAe;IAIjC;;OAEG;IACH,MAAM,IAAI,eAAe;IAIzB;;;OAGG;IACH,WAAW,CAAC,aAAa,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI;IAwBlD;;;;;OAKG;IACH,YAAY,IAAI,KAAK,EAAE;IAkBvB,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS;IAalD;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe;IAqBxD;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,IAAI,aAAa,EAAE;CAmBlD"}
|
package/dist/lib/anvil.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BinaryData } from './binary-data';
|
|
2
|
-
import { Chunk } from './chunk';
|
|
1
|
+
import { BinaryData } from './binary-data.js';
|
|
2
|
+
import { Chunk } from './chunk.js';
|
|
3
3
|
import { inflate } from 'pako';
|
|
4
|
-
import { Nbt } from '../nbt/nbt';
|
|
4
|
+
import { Nbt } from '../nbt/nbt.js';
|
|
5
5
|
var CompressionType;
|
|
6
6
|
(function (CompressionType) {
|
|
7
7
|
CompressionType[CompressionType["GZIP"] = 1] = "GZIP";
|
package/dist/lib/anvil.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anvil.js","sourceRoot":"","sources":["../../src/lib/anvil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"anvil.js","sourceRoot":"","sources":["../../src/lib/anvil.ts"],"names":[],"mappings":"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","sourcesContent":["import { BinaryData } from './binary-data.js';\nimport { Chunk } from './chunk.js';\nimport { Coords2d } from '../types/coords.js';\nimport { inflate } from 'pako';\nimport { Nbt } from '../nbt/nbt.js';\n\ntype LocationEntry = {\n offset: number; // 3 bytes\n sectorCount: number; // 1 byte\n};\n\nenum CompressionType {\n GZIP = 1,\n ZLIB = 2,\n NONE = 3,\n}\n\nconst LOCATION_ENTRIES_PER_FILE = 1024;\nconst SECTOR_SIZE = 4096;\n\n/**\n * Read and write Minecraft Anvil region files.\n */\nexport class Anvil {\n static fromBuffer(buffer: ArrayBufferLike): Anvil {\n return new Anvil(buffer);\n }\n\n cachedLocationEntries: LocationEntry[] | null = null;\n data: BinaryData;\n\n constructor(data: ArrayBufferLike) {\n this.data = new BinaryData(data);\n }\n\n /**\n * Returns the buffer that holds the Anvil data.\n */\n buffer(): ArrayBufferLike {\n return this.data.buffer();\n }\n\n /**\n * Delete a chunk. The location is either given in X,Z chunk coordinates or\n * passed in from a Chunk object.\n */\n deleteChunk(chunkLocation: Coords2d | Chunk): void {\n let index;\n\n if (Array.isArray(chunkLocation)) {\n index = this.chunkCoordinatesToIndex(chunkLocation);\n } else {\n const coords = chunkLocation.chunkCoordinates();\n\n if (!coords) {\n throw new Error('Chunk does not have coordinates');\n }\n\n index = this.chunkCoordinatesToIndex(coords);\n }\n\n // Clear cache before modifying location entries\n this.cachedLocationEntries = null;\n this.data.seek(index * 4); // Go to the pointer location for this chunk\n this.data.setNByteInteger(0, 3); // Erase the offset\n this.data.setByte(0); // Erase the sector count\n\n // The actual chunk data is still present in the file.\n }\n\n /**\n * Parses all chunks in the Anvil blob. Chunk objects are read in the order\n * they are stored in the location entry header sector.\n *\n * @returns Chunk[] a list of Chunk objects\n */\n getAllChunks(): Chunk[] {\n // Empty files can be written\n if (this.data.byteLength() === 0) {\n return [];\n }\n\n const chunks = this.getLocationEntries()\n .filter((x) => x.sectorCount > 0)\n .map((offset) => {\n const nbt = Nbt.fromBuffer(this.getChunkData(offset.offset));\n\n return new Chunk(nbt);\n });\n\n return chunks;\n }\n\n // Gets a chunk using chunk coordinates.\n getChunk(chunkCoords: Coords2d): Chunk | undefined {\n const locationEntries = this.getLocationEntries();\n const entry = locationEntries[this.chunkCoordinatesToIndex(chunkCoords)];\n\n if (entry?.sectorCount > 0) {\n const nbt = Nbt.fromBuffer(this.getChunkData(entry.offset));\n\n return new Chunk(nbt);\n }\n\n return;\n }\n\n /**\n * Convert from chunk coordinates to region-relative chunk coordinates, and\n * then to an index.\n */\n private chunkCoordinatesToIndex(chunkCoords: Coords2d): number {\n let regionChunkX = chunkCoords[0];\n let regionChunkZ = chunkCoords[1];\n const step = 4096 * 4096;\n\n while (regionChunkX < 0) {\n regionChunkX += step;\n }\n\n while (regionChunkZ < 0) {\n regionChunkZ += step;\n }\n\n return (regionChunkX % 32) + (regionChunkZ % 32) * 32;\n }\n\n /**\n * Extracts data for a chunk present at the given offset in the Anvil blob.\n * The offset is provided in sectors of SECTOR_SIZE bytes (as in the chunk\n * location entries from the blob's first header sector).\n *\n * @param offset the chunk's offset in number of sectors from the Anvil blob's start.\n */\n protected getChunkData(offset?: number): ArrayBufferLike {\n if (offset !== undefined) {\n this.data.seek(offset * SECTOR_SIZE);\n }\n\n const length = this.data.getUInt();\n const compressionType = this.data.getByte();\n const data = this.data.getArrayBuffer(length - 1); // First byte is the compression type\n\n if (\n compressionType === CompressionType.ZLIB ||\n compressionType === CompressionType.GZIP\n ) {\n // Could be SharedArrayBuffer, but it won't get used again after\n // inflation, so it being \"shared\" does not matter.\n return inflate(data as ArrayBuffer).buffer;\n }\n\n return data;\n }\n\n /**\n * Retrieves the full list of chunk location entries from this Anvil blob.\n * The pointer will be moved to the beginning of the first header sector at\n * the start of this method and advanced to the end during reading.\n */\n protected getLocationEntries(): LocationEntry[] {\n if (this.cachedLocationEntries) {\n return this.cachedLocationEntries;\n }\n\n this.data.seek(0);\n const result: LocationEntry[] = [];\n\n for (let i = 0; i < LOCATION_ENTRIES_PER_FILE; i += 1) {\n result.push({\n offset: this.data.getNByteInteger(3),\n sectorCount: this.data.getByte(),\n });\n }\n\n this.cachedLocationEntries = result;\n\n return result;\n }\n}\n"]}
|
package/dist/lib/bit-data.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bit-data.d.ts","sourceRoot":"","sources":["../../src/lib/bit-data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"bit-data.d.ts","sourceRoot":"","sources":["../../src/lib/bit-data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOxD,qBAAa,OAAO;IAChB,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO;IAgBnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,IAAI,CAAW;gBAEX,IAAI,EAAE,WAAW;IAK7B,eAAe;IAIf,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAgC1B,eAAe;IAIf,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,SAAI;IAQvC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAgBnC"}
|
package/dist/lib/bit-data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bit-data.js","sourceRoot":"","sources":["../../src/lib/bit-data.ts"],"names":[],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport { NbtLongArray } from '../nbt/nbt-long-array';\n\nconst debugLog = debug('bit-data');\n\n// At most, we will have 8 bits to mask\nconst MASK = [0, 1, 3, 7, 15, 31, 63, 127, 255];\n\nexport class BitData {\n static fromLongArrayTag(tag: NbtLongArray): BitData {\n const arrayBuffer = new ArrayBuffer(tag.data.length * 8);\n const view = new DataView(arrayBuffer);\n let position = 0;\n\n for (const value of tag.data) {\n // Convert back to a byte stream. The source comes from\n // NbtLongArray.fromBinaryData(). Make sure the endianness is\n // correct and matches the reader.\n view.setBigInt64(position, value, true);\n position += 8;\n }\n\n return new BitData(arrayBuffer);\n }\n\n private length: number;\n private partial = 0;\n private partialCount = 0;\n private position = 0;\n private view: DataView;\n\n constructor(data: ArrayBuffer) {\n this.view = new DataView(data);\n this.length = data.byteLength;\n }\n\n currentPosition() {\n return this.position;\n }\n\n getBits(n: number): number {\n debugLog(\n `getBits(${n}), start, position ${this.position}, bits ${this.partial.toString(2).padStart(this.partialCount, '0').substr(-this.partialCount)}`\n );\n\n // Add extra bits to the left\n while (n > this.partialCount) {\n if (this.position >= this.length) {\n throw new Error('Out of data');\n }\n\n this.partial |=\n this.view.getUint8(this.position) << this.partialCount;\n debugLog(\n `getBits(${n}), add byte, position ${this.position}, bits ${this.partial.toString(2).padStart(this.partialCount, '0').substr(-this.partialCount)}`\n );\n this.position += 1;\n this.partialCount += 8;\n }\n\n // Return bits from the right\n const result = this.partial & MASK[n];\n this.partial >>= n;\n this.partialCount -= n;\n debugLog(\n `getBits(${n}), end, position ${this.position}, bits ${this.partial.toString(2).padStart(this.partialCount, '0').substr(-this.partialCount)}, result ${result.toString(2).padStart(n, '0')} (${result})`\n );\n\n return result;\n }\n\n // The amount of bytes left in the buffer\n remainingLength() {\n return this.length - this.position;\n }\n\n seek(position: number, partialCount = 0) {\n this.position = position;\n this.partial = 0;\n this.partialCount = partialCount;\n }\n\n // FIXME - need to figure out how this is written. Does it update just one byte?\n // FIXME - I don't see a flush method.\n setBits(n: number, value: number) {\n // Add the new bits to the right\n this.partial <<= n;\n this.partial |= value;\n this.partialCount += n;\n\n while (this.partialCount >= 8) {\n this.view.setUint8(\n this.position,\n this.partial >> (this.partialCount - 8)\n );\n this.position += 1;\n this.partialCount -= 8;\n this.partial &= MASK[this.partialCount];\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"bit-data.js","sourceRoot":"","sources":["../../src/lib/bit-data.ts"],"names":[],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport { NbtLongArray } from '../nbt/nbt-long-array.js';\n\nconst debugLog = debug('bit-data');\n\n// At most, we will have 8 bits to mask\nconst MASK = [0, 1, 3, 7, 15, 31, 63, 127, 255];\n\nexport class BitData {\n static fromLongArrayTag(tag: NbtLongArray): BitData {\n const arrayBuffer = new ArrayBuffer(tag.data.length * 8);\n const view = new DataView(arrayBuffer);\n let position = 0;\n\n for (const value of tag.data) {\n // Convert back to a byte stream. The source comes from\n // NbtLongArray.fromBinaryData(). Make sure the endianness is\n // correct and matches the reader.\n view.setBigInt64(position, value, true);\n position += 8;\n }\n\n return new BitData(arrayBuffer);\n }\n\n private length: number;\n private partial = 0;\n private partialCount = 0;\n private position = 0;\n private view: DataView;\n\n constructor(data: ArrayBuffer) {\n this.view = new DataView(data);\n this.length = data.byteLength;\n }\n\n currentPosition() {\n return this.position;\n }\n\n getBits(n: number): number {\n debugLog(\n `getBits(${n}), start, position ${this.position}, bits ${this.partial.toString(2).padStart(this.partialCount, '0').substr(-this.partialCount)}`\n );\n\n // Add extra bits to the left\n while (n > this.partialCount) {\n if (this.position >= this.length) {\n throw new Error('Out of data');\n }\n\n this.partial |=\n this.view.getUint8(this.position) << this.partialCount;\n debugLog(\n `getBits(${n}), add byte, position ${this.position}, bits ${this.partial.toString(2).padStart(this.partialCount, '0').substr(-this.partialCount)}`\n );\n this.position += 1;\n this.partialCount += 8;\n }\n\n // Return bits from the right\n const result = this.partial & MASK[n];\n this.partial >>= n;\n this.partialCount -= n;\n debugLog(\n `getBits(${n}), end, position ${this.position}, bits ${this.partial.toString(2).padStart(this.partialCount, '0').substr(-this.partialCount)}, result ${result.toString(2).padStart(n, '0')} (${result})`\n );\n\n return result;\n }\n\n // The amount of bytes left in the buffer\n remainingLength() {\n return this.length - this.position;\n }\n\n seek(position: number, partialCount = 0) {\n this.position = position;\n this.partial = 0;\n this.partialCount = partialCount;\n }\n\n // FIXME - need to figure out how this is written. Does it update just one byte?\n // FIXME - I don't see a flush method.\n setBits(n: number, value: number) {\n // Add the new bits to the right\n this.partial <<= n;\n this.partial |= value;\n this.partialCount += n;\n\n while (this.partialCount >= 8) {\n this.view.setUint8(\n this.position,\n this.partial >> (this.partialCount - 8)\n );\n this.position += 1;\n this.partialCount -= 8;\n this.partial &= MASK[this.partialCount];\n }\n }\n}\n"]}
|
package/dist/lib/block-data.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Coords3d } from '../types/coords';
|
|
2
|
-
import { NbtCompound } from '../nbt/nbt-compound';
|
|
3
|
-
import { NbtList } from '../nbt/nbt-list';
|
|
4
|
-
import { NbtLongArray } from '../nbt/nbt-long-array';
|
|
1
|
+
import { Coords3d } from '../types/coords.js';
|
|
2
|
+
import { NbtCompound } from '../nbt/nbt-compound.js';
|
|
3
|
+
import { NbtList } from '../nbt/nbt-list.js';
|
|
4
|
+
import { NbtLongArray } from '../nbt/nbt-long-array.js';
|
|
5
5
|
export declare class BlockData {
|
|
6
6
|
paletteMap: Map<number, string>;
|
|
7
7
|
blockIds: number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-data.d.ts","sourceRoot":"","sources":["../../src/lib/block-data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"block-data.d.ts","sourceRoot":"","sources":["../../src/lib/block-data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAiDxD,qBAAa,SAAS;IA+CP,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE;IA/C7B,MAAM,CAAC,sBAAsB,CACzB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,WAAW,CAAC,EAAE,YAAY;gBA2CnB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,QAAQ,EAAE,MAAM,EAAE;IAG7B,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ;IAI3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAexC,eAAe,CAAC,KAAK,EAAE,MAAM;IAa7B,0BAA0B,CAAC,WAAW,EAAE,QAAQ;IAMhD,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAQhD,OAAO;;;;CA4BV"}
|
package/dist/lib/block-data.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-data.js","sourceRoot":"","sources":["../../src/lib/block-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"block-data.js","sourceRoot":"","sources":["../../src/lib/block-data.ts"],"names":[],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport { BitData } from './bit-data.js';\nimport { Coords3d } from '../types/coords.js';\nimport { NbtCompound } from '../nbt/nbt-compound.js';\nimport { NbtList } from '../nbt/nbt-list.js';\nimport { NbtLongArray } from '../nbt/nbt-long-array.js';\nimport { NbtString } from '../nbt/nbt-string.js';\n\nconst BLOCKS_PER_CHUNK = 16 * 16 * 16;\nconst debugLog = debug('block-data');\n\nfunction parseBlockData(\n blockIds: number[],\n bitData: BitData,\n paletteMap: Map<number, string>\n) {\n let bitsRead = 0;\n let blockIdsRead = 0;\n const bitsNeededForPalette = Math.max(\n 4,\n Math.ceil(Math.log2(paletteMap.size || 1))\n );\n\n while (bitData.remainingLength() > 0) {\n while (bitsRead + bitsNeededForPalette <= 64) {\n const blockId = bitData.getBits(bitsNeededForPalette);\n\n if (!paletteMap.has(blockId)) {\n throw new Error(\n `Block ID ${blockId}, index ${blockIdsRead} not found in palette when reading index ${blockIdsRead}`\n );\n }\n\n debugLog(\n `Block ID ${blockId} (${paletteMap.get(blockId)}) at index ${blockIdsRead}`\n );\n blockIds.push(blockId);\n bitsRead += bitsNeededForPalette;\n blockIdsRead += 1;\n }\n\n if (bitsRead < 64) {\n // These extra bits can have any values. They are not\n // initialized before writing to disk.\n bitData.getBits(64 - bitsRead);\n debugLog(`Skipped ${64 - bitsRead} bits`);\n }\n\n bitsRead = 0;\n }\n\n return blockIds;\n}\n\nexport class BlockData {\n static fromPaletteBlockStates(\n dataVersion: number,\n palette: NbtList<NbtCompound>,\n blockStates?: NbtLongArray\n ) {\n // Convert the palette values to a map\n const paletteSize = palette.data.length;\n const paletteMap = new Map<number, string>();\n\n if (dataVersion < 0) {\n throw new Error('Data version is required to read block data');\n }\n\n for (let i = 0; i < paletteSize; i++) {\n const name = palette.data[i].findChild<NbtString>('Name');\n\n if (name) {\n paletteMap.set(i, name.data);\n } else {\n throw new Error(`Palette entry ${i} does not have a name`);\n }\n }\n\n const blockIds: number[] = [];\n\n if (blockStates) {\n const bitData = BitData.fromLongArrayTag(blockStates);\n parseBlockData(blockIds, bitData, paletteMap);\n }\n\n // Fill the rest of the blocks with the first element in the palette.\n // The documentation says that a chunk could be filled with just the\n // first index in the palette and not have any block data.\n while (blockIds.length < BLOCKS_PER_CHUNK) {\n blockIds.push(0);\n }\n\n // Safety\n while (blockIds.length > BLOCKS_PER_CHUNK) {\n blockIds.pop();\n }\n\n return new BlockData(paletteMap, blockIds);\n }\n\n constructor(\n public paletteMap: Map<number, string>,\n public blockIds: number[]\n ) {}\n\n chunkCoordinatesToIndex([x, y, z]: Coords3d) {\n return (y << 8) | (z << 4) | x;\n }\n\n findBlocksByName(name: string): number[] {\n const number = Array.from(this.paletteMap.keys()).find(\n (key) => this.paletteMap.get(key) === name\n );\n const result = [];\n\n for (let i = 0; i < this.blockIds.length; i++) {\n if (this.blockIds[i] === number) {\n result.push(i);\n }\n }\n\n return result;\n }\n\n getBlockByIndex(index: number) {\n const blockId = this.blockIds[index];\n const blockName = this.paletteMap.get(blockId);\n\n if (!blockName) {\n throw new Error(\n `Block ID ${blockId} not found in palette when reading index ${index}`\n );\n }\n\n return blockName;\n }\n\n getBlockByChunkCoordinates(coordinates: Coords3d) {\n const index = this.chunkCoordinatesToIndex(coordinates);\n\n return this.getBlockByIndex(index);\n }\n\n indexToChunkCoordinates(index: number): Coords3d {\n const x = index & 0xf;\n const y = (index >> 8) & 0xf;\n const z = (index >> 4) & 0xf;\n\n return [x, y, z];\n }\n\n toArray() {\n let errors: any[] = [];\n\n const result = this.blockIds.map((blockId, index) => {\n const blockName = this.paletteMap.get(blockId);\n\n if (!blockName) {\n errors.push({\n index,\n chunkCoordinates: this.indexToChunkCoordinates(index),\n blockId,\n paletteLength: this.paletteMap.size,\n palette: Array.from(this.paletteMap.values()),\n });\n }\n\n return {\n chunkCoordinates: this.indexToChunkCoordinates(index),\n blockName,\n };\n });\n\n if (errors.length) {\n throw new Error(JSON.stringify(errors));\n }\n\n return result;\n }\n}\n"]}
|