minerender 2.1.0-alpha.37 → 2.1.0-alpha.39

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.
@@ -278,6 +278,14 @@ var CubeFaceIndex = /* @__PURE__ */ ((CubeFaceIndex2) => {
278
278
  return CubeFaceIndex2;
279
279
  })(CubeFaceIndex || {});
280
280
  var CUBE_FACES = Object.values(CubeFace);
281
+ var CUBE_FACE_OFFSETS = [
282
+ [1, 0, 0],
283
+ [-1, 0, 0],
284
+ [0, 1, 0],
285
+ [0, -1, 0],
286
+ [0, 0, 1],
287
+ [0, 0, -1]
288
+ ];
281
289
 
282
290
  // src/Disposable.ts
283
291
  function isDisposable(obj) {
@@ -1619,11 +1627,17 @@ function isOrthographicCamera(obj) {
1619
1627
  }
1620
1628
 
1621
1629
  // src/nbt/NBTHelper.ts
1630
+ import { Buffer as Buffer3 } from "buffer";
1622
1631
  var NBTHelper = class {
1623
- static async fromBuffer(buffer) {
1632
+ static async fromBuffer(data, format) {
1633
+ const buffer = Buffer3.from(data instanceof Uint8Array ? data : new Uint8Array(data));
1624
1634
  const prismarineNbt = await import("prismarine-nbt");
1625
- const { parsed, type, metadata } = await prismarineNbt.parse(buffer);
1626
- return parsed;
1635
+ const { parsed, type, metadata } = await prismarineNbt.parse(buffer, format);
1636
+ return Object.assign(parsed, {
1637
+ format: type,
1638
+ metadata,
1639
+ compression: buffer[0] === 31 && buffer[1] === 139 ? "gzip" : "none"
1640
+ });
1627
1641
  }
1628
1642
  };
1629
1643
 
@@ -2428,6 +2442,9 @@ var UVMapper = class {
2428
2442
  const textureMap = {};
2429
2443
  const metaMap = {};
2430
2444
  const model = { ...originalModel };
2445
+ if (originalModel.elements) {
2446
+ model.elements = originalModel.elements.map((element) => ({ ...element }));
2447
+ }
2431
2448
  const isItemModel = !("elements" in model);
2432
2449
  console.debug(p5, "Creating Atlas for", model.key);
2433
2450
  if (model.textures) {
@@ -3849,6 +3866,42 @@ function isQuadArray(obj) {
3849
3866
  return Array.isArray(obj) && obj.length === 4;
3850
3867
  }
3851
3868
 
3869
+ // src/model/ModelCulling.ts
3870
+ import { Vector3 as Vector36 } from "three";
3871
+ var ModelCulling = class {
3872
+ static toLocalMask(worldMask, rotation) {
3873
+ let localMask = 0;
3874
+ for (const [localFace, offset] of CUBE_FACE_OFFSETS.entries()) {
3875
+ const normal = new Vector36(...offset).applyEuler(rotation);
3876
+ const worldFace = CUBE_FACE_OFFSETS.findIndex(([x, y, z]) => Math.abs(normal.x - x) < 1e-6 && Math.abs(normal.y - y) < 1e-6 && Math.abs(normal.z - z) < 1e-6);
3877
+ if (worldFace < 0) return 0;
3878
+ if (worldMask & 1 << worldFace) localMask |= 1 << localFace;
3879
+ }
3880
+ return localMask;
3881
+ }
3882
+ static isOpaqueFullCube(atlas) {
3883
+ if (!atlas || atlas.hasTransparency !== false || atlas.model.elements?.length !== 1) return false;
3884
+ const element = atlas.model.elements[0];
3885
+ if (element.from.length !== 3 || !element.from.every((value) => value === 0) || element.to.length !== 3 || !element.to.every((value) => value === 16) || element.rotation && element.rotation.angle !== 0 || element.mappedUv?.length !== 48 || !element.mappedUv.every(Number.isFinite)) return false;
3886
+ if (!(atlas.image.width > 0 && atlas.image.height > 0)) return false;
3887
+ return CUBE_FACES.every((face, faceIndex) => {
3888
+ const texture = element.faces[face]?.texture;
3889
+ if (!texture?.startsWith("#")) return false;
3890
+ const key = texture.slice(1);
3891
+ const position = atlas.positions[key];
3892
+ const size = atlas.sizes[key];
3893
+ if (position?.length !== 2 || !position.every(Number.isFinite) || size?.length !== 2 || !size.every((value) => value > 0 && Number.isFinite(value))) return false;
3894
+ for (let vertex = 0; vertex < 4; vertex++) {
3895
+ const uvIndex = (faceIndex * 4 + vertex) * 2;
3896
+ const x = element.mappedUv[uvIndex] * atlas.image.width;
3897
+ const y = (1 - element.mappedUv[uvIndex + 1]) * atlas.image.height;
3898
+ if (x < position[0] - 1e-6 || x > position[0] + size[0] + 1e-6 || y < position[1] - 1e-6 || y > position[1] + size[1] + 1e-6) return false;
3899
+ }
3900
+ return true;
3901
+ });
3902
+ }
3903
+ };
3904
+
3852
3905
  // src/model/block/blockTints.json
3853
3906
  var blockTints_default = {
3854
3907
  "minecraft:large_fern": { source: "grass" },
@@ -3935,7 +3988,7 @@ var BlockTints = class {
3935
3988
  };
3936
3989
 
3937
3990
  // src/model/scene/ModelObject.ts
3938
- import { BoxGeometry as BoxGeometry5, BufferAttribute as BufferAttribute4, Color as Color3, Euler as Euler4, Matrix4 as Matrix44 } from "three";
3991
+ import { BoxGeometry as BoxGeometry5, BufferAttribute as BufferAttribute4, Color as Color3, Euler as Euler5, Matrix4 as Matrix44 } from "three";
3939
3992
 
3940
3993
  // src/three/BufferGeometryUtils.js
3941
3994
  import {
@@ -3947,7 +4000,7 @@ import {
3947
4000
  TriangleFanDrawMode,
3948
4001
  TriangleStripDrawMode,
3949
4002
  TrianglesDrawMode,
3950
- Vector3 as Vector36
4003
+ Vector3 as Vector37
3951
4004
  } from "three";
3952
4005
  function computeTangents(geometry) {
3953
4006
  geometry.computeTangents();
@@ -4266,15 +4319,15 @@ function computeMorphedAttributes(object) {
4266
4319
  console.error("THREE.BufferGeometryUtils: Geometry is not of type BufferGeometry.");
4267
4320
  return null;
4268
4321
  }
4269
- const _vA = new Vector36();
4270
- const _vB = new Vector36();
4271
- const _vC = new Vector36();
4272
- const _tempA = new Vector36();
4273
- const _tempB = new Vector36();
4274
- const _tempC = new Vector36();
4275
- const _morphA = new Vector36();
4276
- const _morphB = new Vector36();
4277
- const _morphC = new Vector36();
4322
+ const _vA = new Vector37();
4323
+ const _vB = new Vector37();
4324
+ const _vC = new Vector37();
4325
+ const _tempA = new Vector37();
4326
+ const _tempB = new Vector37();
4327
+ const _tempC = new Vector37();
4328
+ const _morphA = new Vector37();
4329
+ const _morphB = new Vector37();
4330
+ const _morphC = new Vector37();
4278
4331
  function _calculateMorphedAttributeData(object2, material2, attribute, morphAttribute, morphTargetsRelative2, a2, b2, c2, modifiedAttributeArray) {
4279
4332
  _vA.fromBufferAttribute(attribute, a2);
4280
4333
  _vB.fromBufferAttribute(attribute, b2);
@@ -4503,6 +4556,9 @@ var ModelObject = class _ModelObject extends SceneObject {
4503
4556
  get textureAtlas() {
4504
4557
  return this.atlas;
4505
4558
  }
4559
+ get isOpaqueFullCube() {
4560
+ return !this.options.displayPosition && ModelCulling.isOpaqueFullCube(this.atlas);
4561
+ }
4506
4562
  //TODO: support for replacing textures
4507
4563
  async loadTextures() {
4508
4564
  this.atlas = await UVMapper.getAtlas(this.originalModel);
@@ -4516,8 +4572,17 @@ var ModelObject = class _ModelObject extends SceneObject {
4516
4572
  if (this.atlas.model.elements) {
4517
4573
  this.atlas.model.elements?.forEach((el) => {
4518
4574
  const elGeo = this._getBoxGeometryFromElement(el).clone();
4575
+ if (this.options.cullMask) {
4576
+ const indices = Array.from(elGeo.getIndex().array);
4577
+ elGeo.setIndex(indices.filter((_, index) => {
4578
+ const face = CUBE_FACES[Math.floor(index / 6)];
4579
+ const direction = CUBE_FACES.findIndex((name) => name === el.faces[face]?.cullface);
4580
+ return direction < 0 || !(this.options.cullMask & 1 << direction);
4581
+ }));
4582
+ elGeo.clearGroups();
4583
+ }
4519
4584
  if (this.options.uvLockRotation) {
4520
- UVMapper.lockUvs(elGeo, el.faces, this.atlas, new Euler4(...this.options.uvLockRotation));
4585
+ UVMapper.lockUvs(elGeo, el.faces, this.atlas, new Euler5(...this.options.uvLockRotation));
4521
4586
  }
4522
4587
  if (this.options.tints) {
4523
4588
  const colors = new Float32Array(elGeo.getAttribute("position").count * 3).fill(1);
@@ -4613,7 +4678,7 @@ function isModelObject(obj) {
4613
4678
 
4614
4679
  // src/model/block/scene/BlockObject.ts
4615
4680
  var import_ts_deepmerge6 = __toESM(require_dist());
4616
- import { Euler as Euler5, Matrix4 as Matrix45 } from "three";
4681
+ import { Euler as Euler6, Matrix4 as Matrix45, Quaternion as Quaternion4, Vector3 as Vector38 } from "three";
4617
4682
  var p10 = prefix("BlockObject");
4618
4683
  function matchesCondition(condition, state) {
4619
4684
  return Object.entries(condition).every(([key, value]) => {
@@ -4638,6 +4703,7 @@ var BlockObject = class _BlockObject extends SceneObject {
4638
4703
  this._instanceModel = [];
4639
4704
  this._variants = [];
4640
4705
  this._models = [];
4706
+ this._cullMask = 0;
4641
4707
  this.options = (0, import_ts_deepmerge6.default)({}, _BlockObject.DEFAULT_OPTIONS, options ?? {});
4642
4708
  }
4643
4709
  static {
@@ -4676,12 +4742,69 @@ var BlockObject = class _BlockObject extends SceneObject {
4676
4742
  super.removeFromScene();
4677
4743
  }
4678
4744
  clearModels() {
4679
- for (const model of this._models.splice(0)) {
4745
+ this.removeModels(this._models.splice(0));
4746
+ this._isInstanced = false;
4747
+ this._instanceCounter = 0;
4748
+ }
4749
+ removeModels(models) {
4750
+ for (const model of models) {
4680
4751
  model.removeFromScene();
4681
4752
  if (!isInstanceReference(model)) model.dispose();
4682
4753
  }
4683
- this._isInstanced = false;
4684
- this._instanceCounter = 0;
4754
+ }
4755
+ get isOccluding() {
4756
+ return this._models.some((model) => {
4757
+ const object = isInstanceReference(model) ? model.instanceable : model;
4758
+ return object.isOpaqueFullCube && this.getModelCullMask(model, 63) === 63;
4759
+ });
4760
+ }
4761
+ getModelMatrix(model) {
4762
+ if (isInstanceReference(model)) return model.getMatrix();
4763
+ if (model.matrixAutoUpdate) model.updateMatrix();
4764
+ return model.matrix.clone();
4765
+ }
4766
+ getModelCullMask(model, worldMask) {
4767
+ const object = isInstanceReference(model) ? model.instanceable : model;
4768
+ if (object.options.displayPosition) return 0;
4769
+ const position = new Vector38();
4770
+ const rotation = new Quaternion4();
4771
+ const scale = new Vector38();
4772
+ this.getModelMatrix(model).decompose(position, rotation, scale);
4773
+ if (position.distanceToSquared(this.position) > 1e-10 || scale.distanceToSquared(new Vector38(1, 1, 1)) > 1e-10) return 0;
4774
+ return ModelCulling.toLocalMask(worldMask, new Euler6().setFromQuaternion(rotation));
4775
+ }
4776
+ async setCullMask(worldMask) {
4777
+ worldMask &= 63;
4778
+ const replacements = [];
4779
+ try {
4780
+ for (const model of this._models) {
4781
+ const object = isInstanceReference(model) ? model.instanceable : model;
4782
+ const cullMask = this.getModelCullMask(model, worldMask);
4783
+ if (cullMask === (object.options.cullMask ?? 0)) {
4784
+ replacements.push(model);
4785
+ continue;
4786
+ }
4787
+ const matrix = this.getModelMatrix(model);
4788
+ const replacement = await this.scene.addModel(object.originalModel, { ...object.options, cullMask });
4789
+ replacements.push(replacement);
4790
+ if (isInstanceReference(replacement)) {
4791
+ replacement.setMatrix(matrix);
4792
+ } else {
4793
+ replacement.matrix.copy(matrix);
4794
+ matrix.decompose(replacement.position, replacement.quaternion, replacement.scale);
4795
+ replacement.matrixAutoUpdate = object.matrixAutoUpdate;
4796
+ replacement.visible = object.visible;
4797
+ }
4798
+ }
4799
+ } catch (error) {
4800
+ this.removeModels(replacements.filter((model) => !this._models.includes(model)));
4801
+ throw error;
4802
+ }
4803
+ const previous = this._models;
4804
+ this._models = replacements;
4805
+ this._cullMask = worldMask;
4806
+ this.removeModels(previous.filter((model) => !replacements.includes(model)));
4807
+ this.notifyDirty();
4685
4808
  }
4686
4809
  get state() {
4687
4810
  return this._state;
@@ -4761,7 +4884,7 @@ var BlockObject = class _BlockObject extends SceneObject {
4761
4884
  await this.createVariant(variant);
4762
4885
  }
4763
4886
  async createVariant(variant) {
4764
- const rotation = new Euler5();
4887
+ const rotation = new Euler6();
4765
4888
  if (typeof variant.x !== "undefined") {
4766
4889
  rotation.x = toRadians(clampRotationDegrees(variant.x));
4767
4890
  }
@@ -4774,7 +4897,8 @@ var BlockObject = class _BlockObject extends SceneObject {
4774
4897
  const options = {
4775
4898
  ...this.options,
4776
4899
  tints: model ? await BlockTints.get(this.blockState.key, this.state, model, this.options.tints) : this.options.tints,
4777
- uvLockRotation: variant.uvlock && (rotation.x !== 0 || rotation.y !== 0) ? [rotation.x, rotation.y, rotation.z] : void 0
4900
+ uvLockRotation: variant.uvlock && (rotation.x !== 0 || rotation.y !== 0) ? [rotation.x, rotation.y, rotation.z] : void 0,
4901
+ cullMask: this.options.displayPosition ? 0 : ModelCulling.toLocalMask(this._cullMask, rotation)
4778
4902
  };
4779
4903
  const obj = await this.scene.addModel(model, options);
4780
4904
  if (isInstanceReference(obj) || obj.isInstanced) {
@@ -4885,12 +5009,1780 @@ function isBlockObject(obj) {
4885
5009
  return obj.isBlockObject;
4886
5010
  }
4887
5011
 
5012
+ // src/model/multiblock/legacyBlocks.json
5013
+ var legacyBlocks_default = {
5014
+ __comment: "Block mappings from res/idsToNames.json (WorldEdit legacy.json); block names and cauldrons updated for Minecraft 1.21.11. Source: https://github.com/sk89q/WorldEdit/blob/master/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/legacy.json",
5015
+ blocks: {
5016
+ "0:0": "minecraft:air",
5017
+ "1:0": "minecraft:stone",
5018
+ "1:1": "minecraft:granite",
5019
+ "1:2": "minecraft:polished_granite",
5020
+ "1:3": "minecraft:diorite",
5021
+ "1:4": "minecraft:polished_diorite",
5022
+ "1:5": "minecraft:andesite",
5023
+ "1:6": "minecraft:polished_andesite",
5024
+ "2:0": "minecraft:grass_block[snowy=false]",
5025
+ "3:0": "minecraft:dirt",
5026
+ "3:1": "minecraft:coarse_dirt",
5027
+ "3:2": "minecraft:podzol[snowy=false]",
5028
+ "4:0": "minecraft:cobblestone",
5029
+ "5:0": "minecraft:oak_planks",
5030
+ "5:1": "minecraft:spruce_planks",
5031
+ "5:2": "minecraft:birch_planks",
5032
+ "5:3": "minecraft:jungle_planks",
5033
+ "5:4": "minecraft:acacia_planks",
5034
+ "5:5": "minecraft:dark_oak_planks",
5035
+ "6:0": "minecraft:oak_sapling[stage=0]",
5036
+ "6:1": "minecraft:spruce_sapling[stage=0]",
5037
+ "6:2": "minecraft:birch_sapling[stage=0]",
5038
+ "6:3": "minecraft:jungle_sapling[stage=0]",
5039
+ "6:4": "minecraft:acacia_sapling[stage=0]",
5040
+ "6:5": "minecraft:dark_oak_sapling[stage=0]",
5041
+ "6:8": "minecraft:oak_sapling[stage=1]",
5042
+ "6:9": "minecraft:spruce_sapling[stage=1]",
5043
+ "6:10": "minecraft:birch_sapling[stage=1]",
5044
+ "6:11": "minecraft:jungle_sapling[stage=1]",
5045
+ "6:12": "minecraft:acacia_sapling[stage=1]",
5046
+ "6:13": "minecraft:dark_oak_sapling[stage=1]",
5047
+ "7:0": "minecraft:bedrock",
5048
+ "8:0": "minecraft:water[level=0]",
5049
+ "8:1": "minecraft:water[level=1]",
5050
+ "8:2": "minecraft:water[level=2]",
5051
+ "8:3": "minecraft:water[level=3]",
5052
+ "8:4": "minecraft:water[level=4]",
5053
+ "8:5": "minecraft:water[level=5]",
5054
+ "8:6": "minecraft:water[level=6]",
5055
+ "8:7": "minecraft:water[level=7]",
5056
+ "8:8": "minecraft:water[level=8]",
5057
+ "8:9": "minecraft:water[level=9]",
5058
+ "8:10": "minecraft:water[level=10]",
5059
+ "8:11": "minecraft:water[level=11]",
5060
+ "8:12": "minecraft:water[level=12]",
5061
+ "8:13": "minecraft:water[level=13]",
5062
+ "8:14": "minecraft:water[level=14]",
5063
+ "8:15": "minecraft:water[level=15]",
5064
+ "9:0": "minecraft:water[level=0]",
5065
+ "9:1": "minecraft:water[level=1]",
5066
+ "9:2": "minecraft:water[level=2]",
5067
+ "9:3": "minecraft:water[level=3]",
5068
+ "9:4": "minecraft:water[level=4]",
5069
+ "9:5": "minecraft:water[level=5]",
5070
+ "9:6": "minecraft:water[level=6]",
5071
+ "9:7": "minecraft:water[level=7]",
5072
+ "9:8": "minecraft:water[level=8]",
5073
+ "9:9": "minecraft:water[level=9]",
5074
+ "9:10": "minecraft:water[level=10]",
5075
+ "9:11": "minecraft:water[level=11]",
5076
+ "9:12": "minecraft:water[level=12]",
5077
+ "9:13": "minecraft:water[level=13]",
5078
+ "9:14": "minecraft:water[level=14]",
5079
+ "9:15": "minecraft:water[level=15]",
5080
+ "10:0": "minecraft:lava[level=0]",
5081
+ "10:1": "minecraft:lava[level=1]",
5082
+ "10:2": "minecraft:lava[level=2]",
5083
+ "10:3": "minecraft:lava[level=3]",
5084
+ "10:4": "minecraft:lava[level=4]",
5085
+ "10:5": "minecraft:lava[level=5]",
5086
+ "10:6": "minecraft:lava[level=6]",
5087
+ "10:7": "minecraft:lava[level=7]",
5088
+ "10:8": "minecraft:lava[level=8]",
5089
+ "10:9": "minecraft:lava[level=9]",
5090
+ "10:10": "minecraft:lava[level=10]",
5091
+ "10:11": "minecraft:lava[level=11]",
5092
+ "10:12": "minecraft:lava[level=12]",
5093
+ "10:13": "minecraft:lava[level=13]",
5094
+ "10:14": "minecraft:lava[level=14]",
5095
+ "10:15": "minecraft:lava[level=15]",
5096
+ "11:0": "minecraft:lava[level=0]",
5097
+ "11:1": "minecraft:lava[level=1]",
5098
+ "11:2": "minecraft:lava[level=2]",
5099
+ "11:3": "minecraft:lava[level=3]",
5100
+ "11:4": "minecraft:lava[level=4]",
5101
+ "11:5": "minecraft:lava[level=5]",
5102
+ "11:6": "minecraft:lava[level=6]",
5103
+ "11:7": "minecraft:lava[level=7]",
5104
+ "11:8": "minecraft:lava[level=8]",
5105
+ "11:9": "minecraft:lava[level=9]",
5106
+ "11:10": "minecraft:lava[level=10]",
5107
+ "11:11": "minecraft:lava[level=11]",
5108
+ "11:12": "minecraft:lava[level=12]",
5109
+ "11:13": "minecraft:lava[level=13]",
5110
+ "11:14": "minecraft:lava[level=14]",
5111
+ "11:15": "minecraft:lava[level=15]",
5112
+ "12:0": "minecraft:sand",
5113
+ "12:1": "minecraft:red_sand",
5114
+ "13:0": "minecraft:gravel",
5115
+ "14:0": "minecraft:gold_ore",
5116
+ "15:0": "minecraft:iron_ore",
5117
+ "16:0": "minecraft:coal_ore",
5118
+ "17:0": "minecraft:oak_log[axis=y]",
5119
+ "17:1": "minecraft:spruce_log[axis=y]",
5120
+ "17:2": "minecraft:birch_log[axis=y]",
5121
+ "17:3": "minecraft:jungle_log[axis=y]",
5122
+ "17:4": "minecraft:oak_log[axis=x]",
5123
+ "17:5": "minecraft:spruce_log[axis=x]",
5124
+ "17:6": "minecraft:birch_log[axis=x]",
5125
+ "17:7": "minecraft:jungle_log[axis=x]",
5126
+ "17:8": "minecraft:oak_log[axis=z]",
5127
+ "17:9": "minecraft:spruce_log[axis=z]",
5128
+ "17:10": "minecraft:birch_log[axis=z]",
5129
+ "17:11": "minecraft:jungle_log[axis=z]",
5130
+ "17:12": "minecraft:oak_wood",
5131
+ "17:13": "minecraft:spruce_wood",
5132
+ "17:14": "minecraft:birch_wood",
5133
+ "17:15": "minecraft:jungle_wood",
5134
+ "18:0": "minecraft:oak_leaves[persistent=false,distance=1]",
5135
+ "18:1": "minecraft:spruce_leaves[persistent=false,distance=1]",
5136
+ "18:2": "minecraft:birch_leaves[persistent=false,distance=1]",
5137
+ "18:3": "minecraft:jungle_leaves[persistent=false,distance=1]",
5138
+ "18:4": "minecraft:oak_leaves[persistent=true,distance=1]",
5139
+ "18:5": "minecraft:spruce_leaves[persistent=true,distance=1]",
5140
+ "18:6": "minecraft:birch_leaves[persistent=true,distance=1]",
5141
+ "18:7": "minecraft:jungle_leaves[persistent=true,distance=1]",
5142
+ "18:8": "minecraft:oak_leaves[persistent=false,distance=1]",
5143
+ "18:9": "minecraft:spruce_leaves[persistent=false,distance=1]",
5144
+ "18:10": "minecraft:birch_leaves[persistent=false,distance=1]",
5145
+ "18:11": "minecraft:jungle_leaves[persistent=false,distance=1]",
5146
+ "18:12": "minecraft:oak_leaves[persistent=true,distance=1]",
5147
+ "18:13": "minecraft:spruce_leaves[persistent=true,distance=1]",
5148
+ "18:14": "minecraft:birch_leaves[persistent=true,distance=1]",
5149
+ "18:15": "minecraft:jungle_leaves[persistent=true,distance=1]",
5150
+ "19:0": "minecraft:sponge",
5151
+ "19:1": "minecraft:wet_sponge",
5152
+ "20:0": "minecraft:glass",
5153
+ "21:0": "minecraft:lapis_ore",
5154
+ "22:0": "minecraft:lapis_block",
5155
+ "23:0": "minecraft:dispenser[triggered=false,facing=down]",
5156
+ "23:1": "minecraft:dispenser[triggered=false,facing=up]",
5157
+ "23:2": "minecraft:dispenser[triggered=false,facing=north]",
5158
+ "23:3": "minecraft:dispenser[triggered=false,facing=south]",
5159
+ "23:4": "minecraft:dispenser[triggered=false,facing=west]",
5160
+ "23:5": "minecraft:dispenser[triggered=false,facing=east]",
5161
+ "23:8": "minecraft:dispenser[triggered=true,facing=down]",
5162
+ "23:9": "minecraft:dispenser[triggered=true,facing=up]",
5163
+ "23:10": "minecraft:dispenser[triggered=true,facing=north]",
5164
+ "23:11": "minecraft:dispenser[triggered=true,facing=south]",
5165
+ "23:12": "minecraft:dispenser[triggered=true,facing=west]",
5166
+ "23:13": "minecraft:dispenser[triggered=true,facing=east]",
5167
+ "24:0": "minecraft:sandstone",
5168
+ "24:1": "minecraft:chiseled_sandstone",
5169
+ "24:2": "minecraft:cut_sandstone",
5170
+ "25:0": "minecraft:note_block",
5171
+ "26:0": "minecraft:red_bed[part=foot,facing=south,occupied=false]",
5172
+ "26:1": "minecraft:red_bed[part=foot,facing=west,occupied=false]",
5173
+ "26:2": "minecraft:red_bed[part=foot,facing=north,occupied=false]",
5174
+ "26:3": "minecraft:red_bed[part=foot,facing=east,occupied=false]",
5175
+ "26:4": "minecraft:red_bed[part=foot,facing=south,occupied=true]",
5176
+ "26:5": "minecraft:red_bed[part=foot,facing=west,occupied=true]",
5177
+ "26:6": "minecraft:red_bed[part=foot,facing=north,occupied=true]",
5178
+ "26:7": "minecraft:red_bed[part=foot,facing=east,occupied=true]",
5179
+ "26:8": "minecraft:red_bed[part=head,facing=south,occupied=false]",
5180
+ "26:9": "minecraft:red_bed[part=head,facing=west,occupied=false]",
5181
+ "26:10": "minecraft:red_bed[part=head,facing=north,occupied=false]",
5182
+ "26:11": "minecraft:red_bed[part=head,facing=east,occupied=false]",
5183
+ "26:12": "minecraft:red_bed[part=head,facing=south,occupied=true]",
5184
+ "26:13": "minecraft:red_bed[part=head,facing=west,occupied=true]",
5185
+ "26:14": "minecraft:red_bed[part=head,facing=north,occupied=true]",
5186
+ "26:15": "minecraft:red_bed[part=head,facing=east,occupied=true]",
5187
+ "27:0": "minecraft:powered_rail[shape=north_south,powered=false]",
5188
+ "27:1": "minecraft:powered_rail[shape=east_west,powered=false]",
5189
+ "27:2": "minecraft:powered_rail[shape=ascending_east,powered=false]",
5190
+ "27:3": "minecraft:powered_rail[shape=ascending_west,powered=false]",
5191
+ "27:4": "minecraft:powered_rail[shape=ascending_north,powered=false]",
5192
+ "27:5": "minecraft:powered_rail[shape=ascending_south,powered=false]",
5193
+ "27:8": "minecraft:powered_rail[shape=north_south,powered=true]",
5194
+ "27:9": "minecraft:powered_rail[shape=east_west,powered=true]",
5195
+ "27:10": "minecraft:powered_rail[shape=ascending_east,powered=true]",
5196
+ "27:11": "minecraft:powered_rail[shape=ascending_west,powered=true]",
5197
+ "27:12": "minecraft:powered_rail[shape=ascending_north,powered=true]",
5198
+ "27:13": "minecraft:powered_rail[shape=ascending_south,powered=true]",
5199
+ "28:0": "minecraft:detector_rail[shape=north_south,powered=false]",
5200
+ "28:1": "minecraft:detector_rail[shape=east_west,powered=false]",
5201
+ "28:2": "minecraft:detector_rail[shape=ascending_east,powered=false]",
5202
+ "28:3": "minecraft:detector_rail[shape=ascending_west,powered=false]",
5203
+ "28:4": "minecraft:detector_rail[shape=ascending_north,powered=false]",
5204
+ "28:5": "minecraft:detector_rail[shape=ascending_south,powered=false]",
5205
+ "28:8": "minecraft:detector_rail[shape=north_south,powered=true]",
5206
+ "28:9": "minecraft:detector_rail[shape=east_west,powered=true]",
5207
+ "28:10": "minecraft:detector_rail[shape=ascending_east,powered=true]",
5208
+ "28:11": "minecraft:detector_rail[shape=ascending_west,powered=true]",
5209
+ "28:12": "minecraft:detector_rail[shape=ascending_north,powered=true]",
5210
+ "28:13": "minecraft:detector_rail[shape=ascending_south,powered=true]",
5211
+ "29:0": "minecraft:sticky_piston[facing=down,extended=false]",
5212
+ "29:1": "minecraft:sticky_piston[facing=up,extended=false]",
5213
+ "29:2": "minecraft:sticky_piston[facing=north,extended=false]",
5214
+ "29:3": "minecraft:sticky_piston[facing=south,extended=false]",
5215
+ "29:4": "minecraft:sticky_piston[facing=west,extended=false]",
5216
+ "29:5": "minecraft:sticky_piston[facing=east,extended=false]",
5217
+ "29:8": "minecraft:sticky_piston[facing=down,extended=true]",
5218
+ "29:9": "minecraft:sticky_piston[facing=up,extended=true]",
5219
+ "29:10": "minecraft:sticky_piston[facing=north,extended=true]",
5220
+ "29:11": "minecraft:sticky_piston[facing=south,extended=true]",
5221
+ "29:12": "minecraft:sticky_piston[facing=west,extended=true]",
5222
+ "29:13": "minecraft:sticky_piston[facing=east,extended=true]",
5223
+ "30:0": "minecraft:cobweb",
5224
+ "31:0": "minecraft:dead_bush",
5225
+ "31:1": "minecraft:short_grass",
5226
+ "31:2": "minecraft:fern",
5227
+ "32:0": "minecraft:dead_bush",
5228
+ "33:0": "minecraft:piston[facing=down,extended=false]",
5229
+ "33:1": "minecraft:piston[facing=up,extended=false]",
5230
+ "33:2": "minecraft:piston[facing=north,extended=false]",
5231
+ "33:3": "minecraft:piston[facing=south,extended=false]",
5232
+ "33:4": "minecraft:piston[facing=west,extended=false]",
5233
+ "33:5": "minecraft:piston[facing=east,extended=false]",
5234
+ "33:8": "minecraft:piston[facing=down,extended=true]",
5235
+ "33:9": "minecraft:piston[facing=up,extended=true]",
5236
+ "33:10": "minecraft:piston[facing=north,extended=true]",
5237
+ "33:11": "minecraft:piston[facing=south,extended=true]",
5238
+ "33:12": "minecraft:piston[facing=west,extended=true]",
5239
+ "33:13": "minecraft:piston[facing=east,extended=true]",
5240
+ "34:0": "minecraft:piston_head[short=false,facing=down,type=normal]",
5241
+ "34:1": "minecraft:piston_head[short=false,facing=up,type=normal]",
5242
+ "34:2": "minecraft:piston_head[short=false,facing=north,type=normal]",
5243
+ "34:3": "minecraft:piston_head[short=false,facing=south,type=normal]",
5244
+ "34:4": "minecraft:piston_head[short=false,facing=west,type=normal]",
5245
+ "34:5": "minecraft:piston_head[short=false,facing=east,type=normal]",
5246
+ "34:8": "minecraft:piston_head[short=false,facing=down,type=sticky]",
5247
+ "34:9": "minecraft:piston_head[short=false,facing=up,type=sticky]",
5248
+ "34:10": "minecraft:piston_head[short=false,facing=north,type=sticky]",
5249
+ "34:11": "minecraft:piston_head[short=false,facing=south,type=sticky]",
5250
+ "34:12": "minecraft:piston_head[short=false,facing=west,type=sticky]",
5251
+ "34:13": "minecraft:piston_head[short=false,facing=east,type=sticky]",
5252
+ "35:0": "minecraft:white_wool",
5253
+ "35:1": "minecraft:orange_wool",
5254
+ "35:2": "minecraft:magenta_wool",
5255
+ "35:3": "minecraft:light_blue_wool",
5256
+ "35:4": "minecraft:yellow_wool",
5257
+ "35:5": "minecraft:lime_wool",
5258
+ "35:6": "minecraft:pink_wool",
5259
+ "35:7": "minecraft:gray_wool",
5260
+ "35:8": "minecraft:light_gray_wool",
5261
+ "35:9": "minecraft:cyan_wool",
5262
+ "35:10": "minecraft:purple_wool",
5263
+ "35:11": "minecraft:blue_wool",
5264
+ "35:12": "minecraft:brown_wool",
5265
+ "35:13": "minecraft:green_wool",
5266
+ "35:14": "minecraft:red_wool",
5267
+ "35:15": "minecraft:black_wool",
5268
+ "36:0": "minecraft:moving_piston[facing=down,type=normal]",
5269
+ "36:1": "minecraft:moving_piston[facing=up,type=normal]",
5270
+ "36:2": "minecraft:moving_piston[facing=north,type=normal]",
5271
+ "36:3": "minecraft:moving_piston[facing=south,type=normal]",
5272
+ "36:4": "minecraft:moving_piston[facing=west,type=normal]",
5273
+ "36:5": "minecraft:moving_piston[facing=east,type=normal]",
5274
+ "36:8": "minecraft:moving_piston[facing=down,type=sticky]",
5275
+ "36:9": "minecraft:moving_piston[facing=up,type=sticky]",
5276
+ "36:10": "minecraft:moving_piston[facing=north,type=sticky]",
5277
+ "36:11": "minecraft:moving_piston[facing=south,type=sticky]",
5278
+ "36:12": "minecraft:moving_piston[facing=west,type=sticky]",
5279
+ "36:13": "minecraft:moving_piston[facing=east,type=sticky]",
5280
+ "37:0": "minecraft:dandelion",
5281
+ "38:0": "minecraft:poppy",
5282
+ "38:1": "minecraft:blue_orchid",
5283
+ "38:2": "minecraft:allium",
5284
+ "38:3": "minecraft:azure_bluet",
5285
+ "38:4": "minecraft:red_tulip",
5286
+ "38:5": "minecraft:orange_tulip",
5287
+ "38:6": "minecraft:white_tulip",
5288
+ "38:7": "minecraft:pink_tulip",
5289
+ "38:8": "minecraft:oxeye_daisy",
5290
+ "39:0": "minecraft:brown_mushroom",
5291
+ "40:0": "minecraft:red_mushroom",
5292
+ "41:0": "minecraft:gold_block",
5293
+ "42:0": "minecraft:iron_block",
5294
+ "43:0": "minecraft:stone_slab[type=double]",
5295
+ "43:1": "minecraft:sandstone_slab[type=double]",
5296
+ "43:2": "minecraft:petrified_oak_slab[type=double]",
5297
+ "43:3": "minecraft:cobblestone_slab[type=double]",
5298
+ "43:4": "minecraft:brick_slab[type=double]",
5299
+ "43:5": "minecraft:stone_brick_slab[type=double]",
5300
+ "43:6": "minecraft:nether_brick_slab[type=double]",
5301
+ "43:7": "minecraft:quartz_slab[type=double]",
5302
+ "43:8": "minecraft:smooth_stone",
5303
+ "43:9": "minecraft:smooth_sandstone",
5304
+ "43:10": "minecraft:petrified_oak_slab[type=double]",
5305
+ "43:11": "minecraft:cobblestone_slab[type=double]",
5306
+ "43:12": "minecraft:brick_slab[type=double]",
5307
+ "43:13": "minecraft:stone_brick_slab[type=double]",
5308
+ "43:14": "minecraft:nether_brick_slab[type=double]",
5309
+ "43:15": "minecraft:smooth_quartz",
5310
+ "44:0": "minecraft:stone_slab[type=bottom]",
5311
+ "44:1": "minecraft:sandstone_slab[type=bottom]",
5312
+ "44:2": "minecraft:petrified_oak_slab[type=bottom]",
5313
+ "44:3": "minecraft:cobblestone_slab[type=bottom]",
5314
+ "44:4": "minecraft:brick_slab[type=bottom]",
5315
+ "44:5": "minecraft:stone_brick_slab[type=bottom]",
5316
+ "44:6": "minecraft:nether_brick_slab[type=bottom]",
5317
+ "44:7": "minecraft:quartz_slab[type=bottom]",
5318
+ "44:8": "minecraft:stone_slab[type=top]",
5319
+ "44:9": "minecraft:sandstone_slab[type=top]",
5320
+ "44:10": "minecraft:petrified_oak_slab[type=top]",
5321
+ "44:11": "minecraft:cobblestone_slab[type=top]",
5322
+ "44:12": "minecraft:brick_slab[type=top]",
5323
+ "44:13": "minecraft:stone_brick_slab[type=top]",
5324
+ "44:14": "minecraft:nether_brick_slab[type=top]",
5325
+ "44:15": "minecraft:quartz_slab[type=top]",
5326
+ "45:0": "minecraft:bricks",
5327
+ "46:0": "minecraft:tnt[unstable=false]",
5328
+ "46:1": "minecraft:tnt[unstable=true]",
5329
+ "47:0": "minecraft:bookshelf",
5330
+ "48:0": "minecraft:mossy_cobblestone",
5331
+ "49:0": "minecraft:obsidian",
5332
+ "50:1": "minecraft:wall_torch[facing=east]",
5333
+ "50:2": "minecraft:wall_torch[facing=west]",
5334
+ "50:3": "minecraft:wall_torch[facing=south]",
5335
+ "50:4": "minecraft:wall_torch[facing=north]",
5336
+ "50:5": "minecraft:torch",
5337
+ "51:0": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=0]",
5338
+ "51:1": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=1]",
5339
+ "51:2": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=2]",
5340
+ "51:3": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=3]",
5341
+ "51:4": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=4]",
5342
+ "51:5": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=5]",
5343
+ "51:6": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=6]",
5344
+ "51:7": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=7]",
5345
+ "51:8": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=8]",
5346
+ "51:9": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=9]",
5347
+ "51:10": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=10]",
5348
+ "51:11": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=11]",
5349
+ "51:12": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=12]",
5350
+ "51:13": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=13]",
5351
+ "51:14": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=14]",
5352
+ "51:15": "minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=15]",
5353
+ "52:0": "minecraft:spawner",
5354
+ "53:0": "minecraft:oak_stairs[half=bottom,shape=outer_right,facing=east]",
5355
+ "53:1": "minecraft:oak_stairs[half=bottom,shape=outer_right,facing=west]",
5356
+ "53:2": "minecraft:oak_stairs[half=bottom,shape=outer_right,facing=south]",
5357
+ "53:3": "minecraft:oak_stairs[half=bottom,shape=outer_right,facing=north]",
5358
+ "53:4": "minecraft:oak_stairs[half=top,shape=outer_right,facing=east]",
5359
+ "53:5": "minecraft:oak_stairs[half=top,shape=outer_right,facing=west]",
5360
+ "53:6": "minecraft:oak_stairs[half=top,shape=outer_right,facing=south]",
5361
+ "53:7": "minecraft:oak_stairs[half=top,shape=outer_right,facing=north]",
5362
+ "54:2": "minecraft:chest[facing=north,type=single]",
5363
+ "54:3": "minecraft:chest[facing=south,type=single]",
5364
+ "54:4": "minecraft:chest[facing=west,type=single]",
5365
+ "54:5": "minecraft:chest[facing=east,type=single]",
5366
+ "55:0": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=0]",
5367
+ "55:1": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=1]",
5368
+ "55:2": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=2]",
5369
+ "55:3": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=3]",
5370
+ "55:4": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=4]",
5371
+ "55:5": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=5]",
5372
+ "55:6": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=6]",
5373
+ "55:7": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=7]",
5374
+ "55:8": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=8]",
5375
+ "55:9": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=9]",
5376
+ "55:10": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=10]",
5377
+ "55:11": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=11]",
5378
+ "55:12": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=12]",
5379
+ "55:13": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=13]",
5380
+ "55:14": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=14]",
5381
+ "55:15": "minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=15]",
5382
+ "56:0": "minecraft:diamond_ore",
5383
+ "57:0": "minecraft:diamond_block",
5384
+ "58:0": "minecraft:crafting_table",
5385
+ "59:0": "minecraft:wheat[age=0]",
5386
+ "59:1": "minecraft:wheat[age=1]",
5387
+ "59:2": "minecraft:wheat[age=2]",
5388
+ "59:3": "minecraft:wheat[age=3]",
5389
+ "59:4": "minecraft:wheat[age=4]",
5390
+ "59:5": "minecraft:wheat[age=5]",
5391
+ "59:6": "minecraft:wheat[age=6]",
5392
+ "59:7": "minecraft:wheat[age=7]",
5393
+ "60:0": "minecraft:farmland[moisture=0]",
5394
+ "60:1": "minecraft:farmland[moisture=1]",
5395
+ "60:2": "minecraft:farmland[moisture=2]",
5396
+ "60:3": "minecraft:farmland[moisture=3]",
5397
+ "60:4": "minecraft:farmland[moisture=4]",
5398
+ "60:5": "minecraft:farmland[moisture=5]",
5399
+ "60:6": "minecraft:farmland[moisture=6]",
5400
+ "60:7": "minecraft:farmland[moisture=7]",
5401
+ "61:2": "minecraft:furnace[facing=north,lit=false]",
5402
+ "61:3": "minecraft:furnace[facing=south,lit=false]",
5403
+ "61:4": "minecraft:furnace[facing=west,lit=false]",
5404
+ "61:5": "minecraft:furnace[facing=east,lit=false]",
5405
+ "62:2": "minecraft:furnace[facing=north,lit=true]",
5406
+ "62:3": "minecraft:furnace[facing=south,lit=true]",
5407
+ "62:4": "minecraft:furnace[facing=west,lit=true]",
5408
+ "62:5": "minecraft:furnace[facing=east,lit=true]",
5409
+ "63:0": "minecraft:oak_sign[rotation=0]",
5410
+ "63:1": "minecraft:oak_sign[rotation=1]",
5411
+ "63:2": "minecraft:oak_sign[rotation=2]",
5412
+ "63:3": "minecraft:oak_sign[rotation=3]",
5413
+ "63:4": "minecraft:oak_sign[rotation=4]",
5414
+ "63:5": "minecraft:oak_sign[rotation=5]",
5415
+ "63:6": "minecraft:oak_sign[rotation=6]",
5416
+ "63:7": "minecraft:oak_sign[rotation=7]",
5417
+ "63:8": "minecraft:oak_sign[rotation=8]",
5418
+ "63:9": "minecraft:oak_sign[rotation=9]",
5419
+ "63:10": "minecraft:oak_sign[rotation=10]",
5420
+ "63:11": "minecraft:oak_sign[rotation=11]",
5421
+ "63:12": "minecraft:oak_sign[rotation=12]",
5422
+ "63:13": "minecraft:oak_sign[rotation=13]",
5423
+ "63:14": "minecraft:oak_sign[rotation=14]",
5424
+ "63:15": "minecraft:oak_sign[rotation=15]",
5425
+ "64:0": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]",
5426
+ "64:1": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]",
5427
+ "64:2": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]",
5428
+ "64:3": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]",
5429
+ "64:4": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]",
5430
+ "64:5": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]",
5431
+ "64:6": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]",
5432
+ "64:7": "minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]",
5433
+ "64:8": "minecraft:oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]",
5434
+ "64:9": "minecraft:oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]",
5435
+ "64:10": "minecraft:oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]",
5436
+ "64:11": "minecraft:oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]",
5437
+ "65:2": "minecraft:ladder[facing=north]",
5438
+ "65:3": "minecraft:ladder[facing=south]",
5439
+ "65:4": "minecraft:ladder[facing=west]",
5440
+ "65:5": "minecraft:ladder[facing=east]",
5441
+ "66:0": "minecraft:rail[shape=north_south]",
5442
+ "66:1": "minecraft:rail[shape=east_west]",
5443
+ "66:2": "minecraft:rail[shape=ascending_east]",
5444
+ "66:3": "minecraft:rail[shape=ascending_west]",
5445
+ "66:4": "minecraft:rail[shape=ascending_north]",
5446
+ "66:5": "minecraft:rail[shape=ascending_south]",
5447
+ "66:6": "minecraft:rail[shape=south_east]",
5448
+ "66:7": "minecraft:rail[shape=south_west]",
5449
+ "66:8": "minecraft:rail[shape=north_west]",
5450
+ "66:9": "minecraft:rail[shape=north_east]",
5451
+ "67:0": "minecraft:cobblestone_stairs[half=bottom,shape=outer_right,facing=east]",
5452
+ "67:1": "minecraft:cobblestone_stairs[half=bottom,shape=outer_right,facing=west]",
5453
+ "67:2": "minecraft:cobblestone_stairs[half=bottom,shape=outer_right,facing=south]",
5454
+ "67:3": "minecraft:cobblestone_stairs[half=bottom,shape=outer_right,facing=north]",
5455
+ "67:4": "minecraft:cobblestone_stairs[half=top,shape=outer_right,facing=east]",
5456
+ "67:5": "minecraft:cobblestone_stairs[half=top,shape=outer_right,facing=west]",
5457
+ "67:6": "minecraft:cobblestone_stairs[half=top,shape=outer_right,facing=south]",
5458
+ "67:7": "minecraft:cobblestone_stairs[half=top,shape=outer_right,facing=north]",
5459
+ "68:2": "minecraft:oak_wall_sign[facing=north]",
5460
+ "68:3": "minecraft:oak_wall_sign[facing=south]",
5461
+ "68:4": "minecraft:oak_wall_sign[facing=west]",
5462
+ "68:5": "minecraft:oak_wall_sign[facing=east]",
5463
+ "69:0": "minecraft:lever[powered=false,facing=north,face=ceiling]",
5464
+ "69:1": "minecraft:lever[powered=false,facing=east,face=wall]",
5465
+ "69:2": "minecraft:lever[powered=false,facing=west,face=wall]",
5466
+ "69:3": "minecraft:lever[powered=false,facing=south,face=wall]",
5467
+ "69:4": "minecraft:lever[powered=false,facing=north,face=wall]",
5468
+ "69:5": "minecraft:lever[powered=false,facing=east,face=floor]",
5469
+ "69:6": "minecraft:lever[powered=false,facing=north,face=floor]",
5470
+ "69:7": "minecraft:lever[powered=false,facing=east,face=ceiling]",
5471
+ "69:8": "minecraft:lever[powered=true,facing=north,face=ceiling]",
5472
+ "69:9": "minecraft:lever[powered=true,facing=east,face=wall]",
5473
+ "69:10": "minecraft:lever[powered=true,facing=west,face=wall]",
5474
+ "69:11": "minecraft:lever[powered=true,facing=south,face=wall]",
5475
+ "69:12": "minecraft:lever[powered=true,facing=north,face=wall]",
5476
+ "69:13": "minecraft:lever[powered=true,facing=east,face=floor]",
5477
+ "69:14": "minecraft:lever[powered=true,facing=north,face=floor]",
5478
+ "69:15": "minecraft:lever[powered=true,facing=east,face=ceiling]",
5479
+ "70:0": "minecraft:stone_pressure_plate[powered=false]",
5480
+ "70:1": "minecraft:stone_pressure_plate[powered=true]",
5481
+ "71:0": "minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=false]",
5482
+ "71:1": "minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=false]",
5483
+ "71:2": "minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=false]",
5484
+ "71:3": "minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=false]",
5485
+ "71:4": "minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=true]",
5486
+ "71:5": "minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=true]",
5487
+ "71:6": "minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=true]",
5488
+ "71:7": "minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=true]",
5489
+ "71:8": "minecraft:iron_door[hinge=left,half=upper,powered=false,facing=east,open=false]",
5490
+ "71:9": "minecraft:iron_door[hinge=right,half=upper,powered=false,facing=east,open=false]",
5491
+ "71:10": "minecraft:iron_door[hinge=left,half=upper,powered=true,facing=east,open=false]",
5492
+ "71:11": "minecraft:iron_door[hinge=right,half=upper,powered=true,facing=east,open=false]",
5493
+ "72:0": "minecraft:oak_pressure_plate[powered=false]",
5494
+ "72:1": "minecraft:oak_pressure_plate[powered=true]",
5495
+ "73:0": "minecraft:redstone_ore[lit=false]",
5496
+ "74:0": "minecraft:redstone_ore[lit=true]",
5497
+ "75:1": "minecraft:redstone_wall_torch[facing=east,lit=false]",
5498
+ "75:2": "minecraft:redstone_wall_torch[facing=west,lit=false]",
5499
+ "75:3": "minecraft:redstone_wall_torch[facing=south,lit=false]",
5500
+ "75:4": "minecraft:redstone_wall_torch[facing=north,lit=false]",
5501
+ "75:5": "minecraft:redstone_torch[lit=false]",
5502
+ "76:1": "minecraft:redstone_wall_torch[facing=east,lit=true]",
5503
+ "76:2": "minecraft:redstone_wall_torch[facing=west,lit=true]",
5504
+ "76:3": "minecraft:redstone_wall_torch[facing=south,lit=true]",
5505
+ "76:4": "minecraft:redstone_wall_torch[facing=north,lit=true]",
5506
+ "76:5": "minecraft:redstone_torch[lit=true]",
5507
+ "77:0": "minecraft:stone_button[powered=false,facing=east,face=ceiling]",
5508
+ "77:1": "minecraft:stone_button[powered=false,facing=east,face=wall]",
5509
+ "77:2": "minecraft:stone_button[powered=false,facing=west,face=wall]",
5510
+ "77:3": "minecraft:stone_button[powered=false,facing=south,face=wall]",
5511
+ "77:4": "minecraft:stone_button[powered=false,facing=north,face=wall]",
5512
+ "77:5": "minecraft:stone_button[powered=false,facing=east,face=floor]",
5513
+ "77:8": "minecraft:stone_button[powered=true,facing=south,face=ceiling]",
5514
+ "77:9": "minecraft:stone_button[powered=true,facing=east,face=wall]",
5515
+ "77:10": "minecraft:stone_button[powered=true,facing=west,face=wall]",
5516
+ "77:11": "minecraft:stone_button[powered=true,facing=south,face=wall]",
5517
+ "77:12": "minecraft:stone_button[powered=true,facing=north,face=wall]",
5518
+ "77:13": "minecraft:stone_button[powered=true,facing=south,face=floor]",
5519
+ "78:0": "minecraft:snow[layers=1]",
5520
+ "78:1": "minecraft:snow[layers=2]",
5521
+ "78:2": "minecraft:snow[layers=3]",
5522
+ "78:3": "minecraft:snow[layers=4]",
5523
+ "78:4": "minecraft:snow[layers=5]",
5524
+ "78:5": "minecraft:snow[layers=6]",
5525
+ "78:6": "minecraft:snow[layers=7]",
5526
+ "78:7": "minecraft:snow[layers=8]",
5527
+ "79:0": "minecraft:ice",
5528
+ "80:0": "minecraft:snow_block",
5529
+ "81:0": "minecraft:cactus[age=0]",
5530
+ "81:1": "minecraft:cactus[age=1]",
5531
+ "81:2": "minecraft:cactus[age=2]",
5532
+ "81:3": "minecraft:cactus[age=3]",
5533
+ "81:4": "minecraft:cactus[age=4]",
5534
+ "81:5": "minecraft:cactus[age=5]",
5535
+ "81:6": "minecraft:cactus[age=6]",
5536
+ "81:7": "minecraft:cactus[age=7]",
5537
+ "81:8": "minecraft:cactus[age=8]",
5538
+ "81:9": "minecraft:cactus[age=9]",
5539
+ "81:10": "minecraft:cactus[age=10]",
5540
+ "81:11": "minecraft:cactus[age=11]",
5541
+ "81:12": "minecraft:cactus[age=12]",
5542
+ "81:13": "minecraft:cactus[age=13]",
5543
+ "81:14": "minecraft:cactus[age=14]",
5544
+ "81:15": "minecraft:cactus[age=15]",
5545
+ "82:0": "minecraft:clay",
5546
+ "83:0": "minecraft:sugar_cane[age=0]",
5547
+ "83:1": "minecraft:sugar_cane[age=1]",
5548
+ "83:2": "minecraft:sugar_cane[age=2]",
5549
+ "83:3": "minecraft:sugar_cane[age=3]",
5550
+ "83:4": "minecraft:sugar_cane[age=4]",
5551
+ "83:5": "minecraft:sugar_cane[age=5]",
5552
+ "83:6": "minecraft:sugar_cane[age=6]",
5553
+ "83:7": "minecraft:sugar_cane[age=7]",
5554
+ "83:8": "minecraft:sugar_cane[age=8]",
5555
+ "83:9": "minecraft:sugar_cane[age=9]",
5556
+ "83:10": "minecraft:sugar_cane[age=10]",
5557
+ "83:11": "minecraft:sugar_cane[age=11]",
5558
+ "83:12": "minecraft:sugar_cane[age=12]",
5559
+ "83:13": "minecraft:sugar_cane[age=13]",
5560
+ "83:14": "minecraft:sugar_cane[age=14]",
5561
+ "83:15": "minecraft:sugar_cane[age=15]",
5562
+ "84:0": "minecraft:jukebox[has_record=false]",
5563
+ "84:1": "minecraft:jukebox[has_record=true]",
5564
+ "85:0": "minecraft:oak_fence[east=false,south=false,north=false,west=false]",
5565
+ "86:0": "minecraft:carved_pumpkin[facing=south]",
5566
+ "86:1": "minecraft:carved_pumpkin[facing=west]",
5567
+ "86:2": "minecraft:carved_pumpkin[facing=north]",
5568
+ "86:3": "minecraft:carved_pumpkin[facing=east]",
5569
+ "87:0": "minecraft:netherrack",
5570
+ "88:0": "minecraft:soul_sand",
5571
+ "89:0": "minecraft:glowstone",
5572
+ "90:1": "minecraft:nether_portal[axis=x]",
5573
+ "90:2": "minecraft:nether_portal[axis=z]",
5574
+ "91:0": "minecraft:jack_o_lantern[facing=south]",
5575
+ "91:1": "minecraft:jack_o_lantern[facing=west]",
5576
+ "91:2": "minecraft:jack_o_lantern[facing=north]",
5577
+ "91:3": "minecraft:jack_o_lantern[facing=east]",
5578
+ "92:0": "minecraft:cake[bites=0]",
5579
+ "92:1": "minecraft:cake[bites=1]",
5580
+ "92:2": "minecraft:cake[bites=2]",
5581
+ "92:3": "minecraft:cake[bites=3]",
5582
+ "92:4": "minecraft:cake[bites=4]",
5583
+ "92:5": "minecraft:cake[bites=5]",
5584
+ "92:6": "minecraft:cake[bites=6]",
5585
+ "93:0": "minecraft:repeater[delay=1,facing=south,locked=false,powered=false]",
5586
+ "93:1": "minecraft:repeater[delay=1,facing=west,locked=false,powered=false]",
5587
+ "93:2": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]",
5588
+ "93:3": "minecraft:repeater[delay=1,facing=east,locked=false,powered=false]",
5589
+ "93:4": "minecraft:repeater[delay=2,facing=south,locked=false,powered=false]",
5590
+ "93:5": "minecraft:repeater[delay=2,facing=west,locked=false,powered=false]",
5591
+ "93:6": "minecraft:repeater[delay=2,facing=north,locked=false,powered=false]",
5592
+ "93:7": "minecraft:repeater[delay=2,facing=east,locked=false,powered=false]",
5593
+ "93:8": "minecraft:repeater[delay=3,facing=south,locked=false,powered=false]",
5594
+ "93:9": "minecraft:repeater[delay=3,facing=west,locked=false,powered=false]",
5595
+ "93:10": "minecraft:repeater[delay=3,facing=north,locked=false,powered=false]",
5596
+ "93:11": "minecraft:repeater[delay=3,facing=east,locked=false,powered=false]",
5597
+ "93:12": "minecraft:repeater[delay=4,facing=south,locked=false,powered=false]",
5598
+ "93:13": "minecraft:repeater[delay=4,facing=west,locked=false,powered=false]",
5599
+ "93:14": "minecraft:repeater[delay=4,facing=north,locked=false,powered=false]",
5600
+ "93:15": "minecraft:repeater[delay=4,facing=east,locked=false,powered=false]",
5601
+ "94:0": "minecraft:repeater[delay=1,facing=south,locked=false,powered=true]",
5602
+ "94:1": "minecraft:repeater[delay=1,facing=west,locked=false,powered=true]",
5603
+ "94:2": "minecraft:repeater[delay=1,facing=north,locked=false,powered=true]",
5604
+ "94:3": "minecraft:repeater[delay=1,facing=east,locked=false,powered=true]",
5605
+ "94:4": "minecraft:repeater[delay=2,facing=south,locked=false,powered=true]",
5606
+ "94:5": "minecraft:repeater[delay=2,facing=west,locked=false,powered=true]",
5607
+ "94:6": "minecraft:repeater[delay=2,facing=north,locked=false,powered=true]",
5608
+ "94:7": "minecraft:repeater[delay=2,facing=east,locked=false,powered=true]",
5609
+ "94:8": "minecraft:repeater[delay=3,facing=south,locked=false,powered=true]",
5610
+ "94:9": "minecraft:repeater[delay=3,facing=west,locked=false,powered=true]",
5611
+ "94:10": "minecraft:repeater[delay=3,facing=north,locked=false,powered=true]",
5612
+ "94:11": "minecraft:repeater[delay=3,facing=east,locked=false,powered=true]",
5613
+ "94:12": "minecraft:repeater[delay=4,facing=south,locked=false,powered=true]",
5614
+ "94:13": "minecraft:repeater[delay=4,facing=west,locked=false,powered=true]",
5615
+ "94:14": "minecraft:repeater[delay=4,facing=north,locked=false,powered=true]",
5616
+ "94:15": "minecraft:repeater[delay=4,facing=east,locked=false,powered=true]",
5617
+ "95:0": "minecraft:white_stained_glass",
5618
+ "95:1": "minecraft:orange_stained_glass",
5619
+ "95:2": "minecraft:magenta_stained_glass",
5620
+ "95:3": "minecraft:light_blue_stained_glass",
5621
+ "95:4": "minecraft:yellow_stained_glass",
5622
+ "95:5": "minecraft:lime_stained_glass",
5623
+ "95:6": "minecraft:pink_stained_glass",
5624
+ "95:7": "minecraft:gray_stained_glass",
5625
+ "95:8": "minecraft:light_gray_stained_glass",
5626
+ "95:9": "minecraft:cyan_stained_glass",
5627
+ "95:10": "minecraft:purple_stained_glass",
5628
+ "95:11": "minecraft:blue_stained_glass",
5629
+ "95:12": "minecraft:brown_stained_glass",
5630
+ "95:13": "minecraft:green_stained_glass",
5631
+ "95:14": "minecraft:red_stained_glass",
5632
+ "95:15": "minecraft:black_stained_glass",
5633
+ "96:0": "minecraft:oak_trapdoor[half=bottom,facing=north,open=false,powered=false]",
5634
+ "96:1": "minecraft:oak_trapdoor[half=bottom,facing=south,open=false,powered=false]",
5635
+ "96:2": "minecraft:oak_trapdoor[half=bottom,facing=west,open=false,powered=false]",
5636
+ "96:3": "minecraft:oak_trapdoor[half=bottom,facing=east,open=false,powered=false]",
5637
+ "96:4": "minecraft:oak_trapdoor[half=bottom,facing=north,open=true,powered=true]",
5638
+ "96:5": "minecraft:oak_trapdoor[half=bottom,facing=south,open=true,powered=true]",
5639
+ "96:6": "minecraft:oak_trapdoor[half=bottom,facing=west,open=true,powered=true]",
5640
+ "96:7": "minecraft:oak_trapdoor[half=bottom,facing=east,open=true,powered=true]",
5641
+ "96:8": "minecraft:oak_trapdoor[half=top,facing=north,open=false,powered=false]",
5642
+ "96:9": "minecraft:oak_trapdoor[half=top,facing=south,open=false,powered=false]",
5643
+ "96:10": "minecraft:oak_trapdoor[half=top,facing=west,open=false,powered=false]",
5644
+ "96:11": "minecraft:oak_trapdoor[half=top,facing=east,open=false,powered=false]",
5645
+ "96:12": "minecraft:oak_trapdoor[half=top,facing=north,open=true,powered=true]",
5646
+ "96:13": "minecraft:oak_trapdoor[half=top,facing=south,open=true,powered=true]",
5647
+ "96:14": "minecraft:oak_trapdoor[half=top,facing=west,open=true,powered=true]",
5648
+ "96:15": "minecraft:oak_trapdoor[half=top,facing=east,open=true,powered=true]",
5649
+ "97:0": "minecraft:infested_stone",
5650
+ "97:1": "minecraft:infested_cobblestone",
5651
+ "97:2": "minecraft:infested_stone_bricks",
5652
+ "97:3": "minecraft:infested_mossy_stone_bricks",
5653
+ "97:4": "minecraft:infested_cracked_stone_bricks",
5654
+ "97:5": "minecraft:infested_chiseled_stone_bricks",
5655
+ "98:0": "minecraft:stone_bricks",
5656
+ "98:1": "minecraft:mossy_stone_bricks",
5657
+ "98:2": "minecraft:cracked_stone_bricks",
5658
+ "98:3": "minecraft:chiseled_stone_bricks",
5659
+ "99:0": "minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]",
5660
+ "99:1": "minecraft:brown_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]",
5661
+ "99:2": "minecraft:brown_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]",
5662
+ "99:3": "minecraft:brown_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]",
5663
+ "99:4": "minecraft:brown_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]",
5664
+ "99:5": "minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]",
5665
+ "99:6": "minecraft:brown_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]",
5666
+ "99:7": "minecraft:brown_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]",
5667
+ "99:8": "minecraft:brown_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]",
5668
+ "99:9": "minecraft:brown_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]",
5669
+ "99:10": "minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]",
5670
+ "99:14": "minecraft:brown_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]",
5671
+ "99:15": "minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]",
5672
+ "100:0": "minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]",
5673
+ "100:1": "minecraft:red_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]",
5674
+ "100:2": "minecraft:red_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]",
5675
+ "100:3": "minecraft:red_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]",
5676
+ "100:4": "minecraft:red_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]",
5677
+ "100:5": "minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]",
5678
+ "100:6": "minecraft:red_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]",
5679
+ "100:7": "minecraft:red_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]",
5680
+ "100:8": "minecraft:red_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]",
5681
+ "100:9": "minecraft:red_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]",
5682
+ "100:10": "minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]",
5683
+ "100:14": "minecraft:red_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]",
5684
+ "100:15": "minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]",
5685
+ "101:0": "minecraft:iron_bars[east=false,south=false,north=false,west=false]",
5686
+ "102:0": "minecraft:glass_pane[east=false,south=false,north=false,west=false]",
5687
+ "103:0": "minecraft:melon",
5688
+ "104:0": "minecraft:pumpkin_stem[age=0]",
5689
+ "104:1": "minecraft:pumpkin_stem[age=1]",
5690
+ "104:2": "minecraft:pumpkin_stem[age=2]",
5691
+ "104:3": "minecraft:pumpkin_stem[age=3]",
5692
+ "104:4": "minecraft:pumpkin_stem[age=4]",
5693
+ "104:5": "minecraft:pumpkin_stem[age=5]",
5694
+ "104:6": "minecraft:pumpkin_stem[age=6]",
5695
+ "104:7": "minecraft:pumpkin_stem[age=7]",
5696
+ "105:0": "minecraft:melon_stem[age=0]",
5697
+ "105:1": "minecraft:melon_stem[age=1]",
5698
+ "105:2": "minecraft:melon_stem[age=2]",
5699
+ "105:3": "minecraft:melon_stem[age=3]",
5700
+ "105:4": "minecraft:melon_stem[age=4]",
5701
+ "105:5": "minecraft:melon_stem[age=5]",
5702
+ "105:6": "minecraft:melon_stem[age=6]",
5703
+ "105:7": "minecraft:melon_stem[age=7]",
5704
+ "106:0": "minecraft:vine[east=false,south=false,north=false,west=false,up=false]",
5705
+ "106:1": "minecraft:vine[east=false,south=true,north=false,west=false,up=false]",
5706
+ "106:2": "minecraft:vine[east=false,south=false,north=false,west=true,up=false]",
5707
+ "106:3": "minecraft:vine[east=false,south=true,north=false,west=true,up=false]",
5708
+ "106:4": "minecraft:vine[east=false,south=false,north=true,west=false,up=false]",
5709
+ "106:5": "minecraft:vine[east=false,south=true,north=true,west=false,up=false]",
5710
+ "106:6": "minecraft:vine[east=false,south=false,north=true,west=true,up=false]",
5711
+ "106:7": "minecraft:vine[east=false,south=true,north=true,west=true,up=false]",
5712
+ "106:8": "minecraft:vine[east=true,south=false,north=false,west=false,up=false]",
5713
+ "106:9": "minecraft:vine[east=true,south=true,north=false,west=false,up=false]",
5714
+ "106:10": "minecraft:vine[east=true,south=false,north=false,west=true,up=false]",
5715
+ "106:11": "minecraft:vine[east=true,south=true,north=false,west=true,up=false]",
5716
+ "106:12": "minecraft:vine[east=true,south=false,north=true,west=false,up=false]",
5717
+ "106:13": "minecraft:vine[east=true,south=true,north=true,west=false,up=false]",
5718
+ "106:14": "minecraft:vine[east=true,south=false,north=true,west=true,up=false]",
5719
+ "106:15": "minecraft:vine[east=true,south=true,north=true,west=true,up=false]",
5720
+ "107:0": "minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]",
5721
+ "107:1": "minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]",
5722
+ "107:2": "minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]",
5723
+ "107:3": "minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]",
5724
+ "107:4": "minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]",
5725
+ "107:5": "minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]",
5726
+ "107:6": "minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]",
5727
+ "107:7": "minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]",
5728
+ "107:8": "minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]",
5729
+ "107:9": "minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]",
5730
+ "107:10": "minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]",
5731
+ "107:11": "minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]",
5732
+ "107:12": "minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]",
5733
+ "107:13": "minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]",
5734
+ "107:14": "minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]",
5735
+ "107:15": "minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]",
5736
+ "108:0": "minecraft:brick_stairs[half=bottom,shape=outer_right,facing=east]",
5737
+ "108:1": "minecraft:brick_stairs[half=bottom,shape=outer_right,facing=west]",
5738
+ "108:2": "minecraft:brick_stairs[half=bottom,shape=outer_right,facing=south]",
5739
+ "108:3": "minecraft:brick_stairs[half=bottom,shape=outer_right,facing=north]",
5740
+ "108:4": "minecraft:brick_stairs[half=top,shape=outer_right,facing=east]",
5741
+ "108:5": "minecraft:brick_stairs[half=top,shape=outer_right,facing=west]",
5742
+ "108:6": "minecraft:brick_stairs[half=top,shape=outer_right,facing=south]",
5743
+ "108:7": "minecraft:brick_stairs[half=top,shape=outer_right,facing=north]",
5744
+ "109:0": "minecraft:stone_brick_stairs[half=bottom,shape=outer_right,facing=east]",
5745
+ "109:1": "minecraft:stone_brick_stairs[half=bottom,shape=outer_right,facing=west]",
5746
+ "109:2": "minecraft:stone_brick_stairs[half=bottom,shape=outer_right,facing=south]",
5747
+ "109:3": "minecraft:stone_brick_stairs[half=bottom,shape=outer_right,facing=north]",
5748
+ "109:4": "minecraft:stone_brick_stairs[half=top,shape=outer_right,facing=east]",
5749
+ "109:5": "minecraft:stone_brick_stairs[half=top,shape=outer_right,facing=west]",
5750
+ "109:6": "minecraft:stone_brick_stairs[half=top,shape=outer_right,facing=south]",
5751
+ "109:7": "minecraft:stone_brick_stairs[half=top,shape=outer_right,facing=north]",
5752
+ "110:0": "minecraft:mycelium[snowy=false]",
5753
+ "111:0": "minecraft:lily_pad",
5754
+ "112:0": "minecraft:nether_bricks",
5755
+ "113:0": "minecraft:nether_brick_fence[east=false,south=false,north=false,west=false]",
5756
+ "114:0": "minecraft:nether_brick_stairs[half=bottom,shape=outer_right,facing=east]",
5757
+ "114:1": "minecraft:nether_brick_stairs[half=bottom,shape=outer_right,facing=west]",
5758
+ "114:2": "minecraft:nether_brick_stairs[half=bottom,shape=outer_right,facing=south]",
5759
+ "114:3": "minecraft:nether_brick_stairs[half=bottom,shape=outer_right,facing=north]",
5760
+ "114:4": "minecraft:nether_brick_stairs[half=top,shape=outer_right,facing=east]",
5761
+ "114:5": "minecraft:nether_brick_stairs[half=top,shape=outer_right,facing=west]",
5762
+ "114:6": "minecraft:nether_brick_stairs[half=top,shape=outer_right,facing=south]",
5763
+ "114:7": "minecraft:nether_brick_stairs[half=top,shape=outer_right,facing=north]",
5764
+ "115:0": "minecraft:nether_wart[age=0]",
5765
+ "115:1": "minecraft:nether_wart[age=1]",
5766
+ "115:2": "minecraft:nether_wart[age=2]",
5767
+ "115:3": "minecraft:nether_wart[age=3]",
5768
+ "116:0": "minecraft:enchanting_table",
5769
+ "117:0": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]",
5770
+ "117:1": "minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=false]",
5771
+ "117:2": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=false]",
5772
+ "117:3": "minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=false]",
5773
+ "117:4": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=true]",
5774
+ "117:5": "minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=true]",
5775
+ "117:6": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=true]",
5776
+ "117:7": "minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=true]",
5777
+ "118:0": "minecraft:cauldron",
5778
+ "118:1": "minecraft:water_cauldron[level=1]",
5779
+ "118:2": "minecraft:water_cauldron[level=2]",
5780
+ "118:3": "minecraft:water_cauldron[level=3]",
5781
+ "119:0": "minecraft:end_portal",
5782
+ "120:0": "minecraft:end_portal_frame[eye=false,facing=south]",
5783
+ "120:1": "minecraft:end_portal_frame[eye=false,facing=west]",
5784
+ "120:2": "minecraft:end_portal_frame[eye=false,facing=north]",
5785
+ "120:3": "minecraft:end_portal_frame[eye=false,facing=east]",
5786
+ "120:4": "minecraft:end_portal_frame[eye=true,facing=south]",
5787
+ "120:5": "minecraft:end_portal_frame[eye=true,facing=west]",
5788
+ "120:6": "minecraft:end_portal_frame[eye=true,facing=north]",
5789
+ "120:7": "minecraft:end_portal_frame[eye=true,facing=east]",
5790
+ "121:0": "minecraft:end_stone",
5791
+ "122:0": "minecraft:dragon_egg",
5792
+ "123:0": "minecraft:redstone_lamp[lit=false]",
5793
+ "124:0": "minecraft:redstone_lamp[lit=true]",
5794
+ "125:0": "minecraft:oak_slab[type=double]",
5795
+ "125:1": "minecraft:spruce_slab[type=double]",
5796
+ "125:2": "minecraft:birch_slab[type=double]",
5797
+ "125:3": "minecraft:jungle_slab[type=double]",
5798
+ "125:4": "minecraft:acacia_slab[type=double]",
5799
+ "125:5": "minecraft:dark_oak_slab[type=double]",
5800
+ "126:0": "minecraft:oak_slab[type=bottom]",
5801
+ "126:1": "minecraft:spruce_slab[type=bottom]",
5802
+ "126:2": "minecraft:birch_slab[type=bottom]",
5803
+ "126:3": "minecraft:jungle_slab[type=bottom]",
5804
+ "126:4": "minecraft:acacia_slab[type=bottom]",
5805
+ "126:5": "minecraft:dark_oak_slab[type=bottom]",
5806
+ "126:8": "minecraft:oak_slab[type=top]",
5807
+ "126:9": "minecraft:spruce_slab[type=top]",
5808
+ "126:10": "minecraft:birch_slab[type=top]",
5809
+ "126:11": "minecraft:jungle_slab[type=top]",
5810
+ "126:12": "minecraft:acacia_slab[type=top]",
5811
+ "126:13": "minecraft:dark_oak_slab[type=top]",
5812
+ "127:0": "minecraft:cocoa[facing=south,age=0]",
5813
+ "127:1": "minecraft:cocoa[facing=west,age=0]",
5814
+ "127:2": "minecraft:cocoa[facing=north,age=0]",
5815
+ "127:3": "minecraft:cocoa[facing=east,age=0]",
5816
+ "127:4": "minecraft:cocoa[facing=south,age=1]",
5817
+ "127:5": "minecraft:cocoa[facing=west,age=1]",
5818
+ "127:6": "minecraft:cocoa[facing=north,age=1]",
5819
+ "127:7": "minecraft:cocoa[facing=east,age=1]",
5820
+ "127:8": "minecraft:cocoa[facing=south,age=2]",
5821
+ "127:9": "minecraft:cocoa[facing=west,age=2]",
5822
+ "127:10": "minecraft:cocoa[facing=north,age=2]",
5823
+ "127:11": "minecraft:cocoa[facing=east,age=2]",
5824
+ "128:0": "minecraft:sandstone_stairs[half=bottom,shape=outer_right,facing=east]",
5825
+ "128:1": "minecraft:sandstone_stairs[half=bottom,shape=outer_right,facing=west]",
5826
+ "128:2": "minecraft:sandstone_stairs[half=bottom,shape=outer_right,facing=south]",
5827
+ "128:3": "minecraft:sandstone_stairs[half=bottom,shape=outer_right,facing=north]",
5828
+ "128:4": "minecraft:sandstone_stairs[half=top,shape=outer_right,facing=east]",
5829
+ "128:5": "minecraft:sandstone_stairs[half=top,shape=outer_right,facing=west]",
5830
+ "128:6": "minecraft:sandstone_stairs[half=top,shape=outer_right,facing=south]",
5831
+ "128:7": "minecraft:sandstone_stairs[half=top,shape=outer_right,facing=north]",
5832
+ "129:0": "minecraft:emerald_ore",
5833
+ "130:2": "minecraft:ender_chest[facing=north]",
5834
+ "130:3": "minecraft:ender_chest[facing=south]",
5835
+ "130:4": "minecraft:ender_chest[facing=west]",
5836
+ "130:5": "minecraft:ender_chest[facing=east]",
5837
+ "131:0": "minecraft:tripwire_hook[powered=false,attached=false,facing=south]",
5838
+ "131:1": "minecraft:tripwire_hook[powered=false,attached=false,facing=west]",
5839
+ "131:2": "minecraft:tripwire_hook[powered=false,attached=false,facing=north]",
5840
+ "131:3": "minecraft:tripwire_hook[powered=false,attached=false,facing=east]",
5841
+ "131:4": "minecraft:tripwire_hook[powered=false,attached=true,facing=south]",
5842
+ "131:5": "minecraft:tripwire_hook[powered=false,attached=true,facing=west]",
5843
+ "131:6": "minecraft:tripwire_hook[powered=false,attached=true,facing=north]",
5844
+ "131:7": "minecraft:tripwire_hook[powered=false,attached=true,facing=east]",
5845
+ "131:8": "minecraft:tripwire_hook[powered=true,attached=false,facing=south]",
5846
+ "131:9": "minecraft:tripwire_hook[powered=true,attached=false,facing=west]",
5847
+ "131:10": "minecraft:tripwire_hook[powered=true,attached=false,facing=north]",
5848
+ "131:11": "minecraft:tripwire_hook[powered=true,attached=false,facing=east]",
5849
+ "131:12": "minecraft:tripwire_hook[powered=true,attached=true,facing=south]",
5850
+ "131:13": "minecraft:tripwire_hook[powered=true,attached=true,facing=west]",
5851
+ "131:14": "minecraft:tripwire_hook[powered=true,attached=true,facing=north]",
5852
+ "131:15": "minecraft:tripwire_hook[powered=true,attached=true,facing=east]",
5853
+ "132:0": "minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=false]",
5854
+ "132:1": "minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=false]",
5855
+ "132:4": "minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=true]",
5856
+ "132:5": "minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=true]",
5857
+ "132:8": "minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=false]",
5858
+ "132:9": "minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=false]",
5859
+ "132:12": "minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=true]",
5860
+ "132:13": "minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=true]",
5861
+ "133:0": "minecraft:emerald_block",
5862
+ "134:0": "minecraft:spruce_stairs[half=bottom,shape=outer_right,facing=east]",
5863
+ "134:1": "minecraft:spruce_stairs[half=bottom,shape=outer_right,facing=west]",
5864
+ "134:2": "minecraft:spruce_stairs[half=bottom,shape=outer_right,facing=south]",
5865
+ "134:3": "minecraft:spruce_stairs[half=bottom,shape=outer_right,facing=north]",
5866
+ "134:4": "minecraft:spruce_stairs[half=top,shape=outer_right,facing=east]",
5867
+ "134:5": "minecraft:spruce_stairs[half=top,shape=outer_right,facing=west]",
5868
+ "134:6": "minecraft:spruce_stairs[half=top,shape=outer_right,facing=south]",
5869
+ "134:7": "minecraft:spruce_stairs[half=top,shape=outer_right,facing=north]",
5870
+ "135:0": "minecraft:birch_stairs[half=bottom,shape=outer_right,facing=east]",
5871
+ "135:1": "minecraft:birch_stairs[half=bottom,shape=outer_right,facing=west]",
5872
+ "135:2": "minecraft:birch_stairs[half=bottom,shape=outer_right,facing=south]",
5873
+ "135:3": "minecraft:birch_stairs[half=bottom,shape=outer_right,facing=north]",
5874
+ "135:4": "minecraft:birch_stairs[half=top,shape=outer_right,facing=east]",
5875
+ "135:5": "minecraft:birch_stairs[half=top,shape=outer_right,facing=west]",
5876
+ "135:6": "minecraft:birch_stairs[half=top,shape=outer_right,facing=south]",
5877
+ "135:7": "minecraft:birch_stairs[half=top,shape=outer_right,facing=north]",
5878
+ "136:0": "minecraft:jungle_stairs[half=bottom,shape=outer_right,facing=east]",
5879
+ "136:1": "minecraft:jungle_stairs[half=bottom,shape=outer_right,facing=west]",
5880
+ "136:2": "minecraft:jungle_stairs[half=bottom,shape=outer_right,facing=south]",
5881
+ "136:3": "minecraft:jungle_stairs[half=bottom,shape=outer_right,facing=north]",
5882
+ "136:4": "minecraft:jungle_stairs[half=top,shape=outer_right,facing=east]",
5883
+ "136:5": "minecraft:jungle_stairs[half=top,shape=outer_right,facing=west]",
5884
+ "136:6": "minecraft:jungle_stairs[half=top,shape=outer_right,facing=south]",
5885
+ "136:7": "minecraft:jungle_stairs[half=top,shape=outer_right,facing=north]",
5886
+ "137:0": "minecraft:command_block[conditional=false,facing=down]",
5887
+ "137:1": "minecraft:command_block[conditional=false,facing=up]",
5888
+ "137:2": "minecraft:command_block[conditional=false,facing=north]",
5889
+ "137:3": "minecraft:command_block[conditional=false,facing=south]",
5890
+ "137:4": "minecraft:command_block[conditional=false,facing=west]",
5891
+ "137:5": "minecraft:command_block[conditional=false,facing=east]",
5892
+ "137:8": "minecraft:command_block[conditional=true,facing=down]",
5893
+ "137:9": "minecraft:command_block[conditional=true,facing=up]",
5894
+ "137:10": "minecraft:command_block[conditional=true,facing=north]",
5895
+ "137:11": "minecraft:command_block[conditional=true,facing=south]",
5896
+ "137:12": "minecraft:command_block[conditional=true,facing=west]",
5897
+ "137:13": "minecraft:command_block[conditional=true,facing=east]",
5898
+ "138:0": "minecraft:beacon",
5899
+ "139:0": "minecraft:cobblestone_wall[east=false,south=false,north=false,west=false,up=false]",
5900
+ "139:1": "minecraft:mossy_cobblestone_wall[east=false,south=false,north=false,west=false,up=false]",
5901
+ "140:0": "minecraft:flower_pot",
5902
+ "140:1": "minecraft:potted_poppy",
5903
+ "140:2": "minecraft:potted_dandelion",
5904
+ "140:3": "minecraft:potted_oak_sapling",
5905
+ "140:4": "minecraft:potted_spruce_sapling",
5906
+ "140:5": "minecraft:potted_birch_sapling",
5907
+ "140:6": "minecraft:potted_jungle_sapling",
5908
+ "140:7": "minecraft:potted_red_mushroom",
5909
+ "140:8": "minecraft:potted_brown_mushroom",
5910
+ "140:9": "minecraft:potted_cactus",
5911
+ "140:10": "minecraft:potted_dead_bush",
5912
+ "140:11": "minecraft:potted_fern",
5913
+ "140:12": "minecraft:potted_acacia_sapling",
5914
+ "140:13": "minecraft:potted_dark_oak_sapling",
5915
+ "140:14": "minecraft:potted_blue_orchid",
5916
+ "140:15": "minecraft:potted_allium",
5917
+ "141:0": "minecraft:carrots[age=0]",
5918
+ "141:1": "minecraft:carrots[age=1]",
5919
+ "141:2": "minecraft:carrots[age=2]",
5920
+ "141:3": "minecraft:carrots[age=3]",
5921
+ "141:4": "minecraft:carrots[age=4]",
5922
+ "141:5": "minecraft:carrots[age=5]",
5923
+ "141:6": "minecraft:carrots[age=6]",
5924
+ "141:7": "minecraft:carrots[age=7]",
5925
+ "142:0": "minecraft:potatoes[age=0]",
5926
+ "142:1": "minecraft:potatoes[age=1]",
5927
+ "142:2": "minecraft:potatoes[age=2]",
5928
+ "142:3": "minecraft:potatoes[age=3]",
5929
+ "142:4": "minecraft:potatoes[age=4]",
5930
+ "142:5": "minecraft:potatoes[age=5]",
5931
+ "142:6": "minecraft:potatoes[age=6]",
5932
+ "142:7": "minecraft:potatoes[age=7]",
5933
+ "143:0": "minecraft:oak_button[powered=false,facing=east,face=ceiling]",
5934
+ "143:1": "minecraft:oak_button[powered=false,facing=east,face=wall]",
5935
+ "143:2": "minecraft:oak_button[powered=false,facing=west,face=wall]",
5936
+ "143:3": "minecraft:oak_button[powered=false,facing=south,face=wall]",
5937
+ "143:4": "minecraft:oak_button[powered=false,facing=north,face=wall]",
5938
+ "143:5": "minecraft:oak_button[powered=false,facing=east,face=floor]",
5939
+ "143:8": "minecraft:oak_button[powered=true,facing=south,face=ceiling]",
5940
+ "143:9": "minecraft:oak_button[powered=true,facing=east,face=wall]",
5941
+ "143:10": "minecraft:oak_button[powered=true,facing=west,face=wall]",
5942
+ "143:11": "minecraft:oak_button[powered=true,facing=south,face=wall]",
5943
+ "143:12": "minecraft:oak_button[powered=true,facing=north,face=wall]",
5944
+ "143:13": "minecraft:oak_button[powered=true,facing=south,face=floor]",
5945
+ "144:0": "minecraft:skeleton_skull[rotation=0]",
5946
+ "144:1": "minecraft:skeleton_skull[rotation=4]",
5947
+ "144:2": "minecraft:skeleton_wall_skull[facing=north]",
5948
+ "144:3": "minecraft:skeleton_wall_skull[facing=south]",
5949
+ "144:4": "minecraft:skeleton_wall_skull[facing=west]",
5950
+ "144:5": "minecraft:skeleton_wall_skull[facing=east]",
5951
+ "144:8": "minecraft:skeleton_skull[rotation=8]",
5952
+ "144:9": "minecraft:skeleton_skull[rotation=12]",
5953
+ "144:10": "minecraft:skeleton_wall_skull[facing=north]",
5954
+ "144:11": "minecraft:skeleton_wall_skull[facing=south]",
5955
+ "144:12": "minecraft:skeleton_wall_skull[facing=west]",
5956
+ "144:13": "minecraft:skeleton_wall_skull[facing=east]",
5957
+ "145:0": "minecraft:anvil[facing=south]",
5958
+ "145:1": "minecraft:anvil[facing=west]",
5959
+ "145:2": "minecraft:anvil[facing=north]",
5960
+ "145:3": "minecraft:anvil[facing=east]",
5961
+ "145:4": "minecraft:chipped_anvil[facing=south]",
5962
+ "145:5": "minecraft:chipped_anvil[facing=west]",
5963
+ "145:6": "minecraft:chipped_anvil[facing=north]",
5964
+ "145:7": "minecraft:chipped_anvil[facing=east]",
5965
+ "145:8": "minecraft:damaged_anvil[facing=south]",
5966
+ "145:9": "minecraft:damaged_anvil[facing=west]",
5967
+ "145:10": "minecraft:damaged_anvil[facing=north]",
5968
+ "145:11": "minecraft:damaged_anvil[facing=east]",
5969
+ "146:2": "minecraft:trapped_chest[facing=north,type=single]",
5970
+ "146:3": "minecraft:trapped_chest[facing=south,type=single]",
5971
+ "146:4": "minecraft:trapped_chest[facing=west,type=single]",
5972
+ "146:5": "minecraft:trapped_chest[facing=east,type=single]",
5973
+ "147:0": "minecraft:light_weighted_pressure_plate[power=0]",
5974
+ "147:1": "minecraft:light_weighted_pressure_plate[power=1]",
5975
+ "147:2": "minecraft:light_weighted_pressure_plate[power=2]",
5976
+ "147:3": "minecraft:light_weighted_pressure_plate[power=3]",
5977
+ "147:4": "minecraft:light_weighted_pressure_plate[power=4]",
5978
+ "147:5": "minecraft:light_weighted_pressure_plate[power=5]",
5979
+ "147:6": "minecraft:light_weighted_pressure_plate[power=6]",
5980
+ "147:7": "minecraft:light_weighted_pressure_plate[power=7]",
5981
+ "147:8": "minecraft:light_weighted_pressure_plate[power=8]",
5982
+ "147:9": "minecraft:light_weighted_pressure_plate[power=9]",
5983
+ "147:10": "minecraft:light_weighted_pressure_plate[power=10]",
5984
+ "147:11": "minecraft:light_weighted_pressure_plate[power=11]",
5985
+ "147:12": "minecraft:light_weighted_pressure_plate[power=12]",
5986
+ "147:13": "minecraft:light_weighted_pressure_plate[power=13]",
5987
+ "147:14": "minecraft:light_weighted_pressure_plate[power=14]",
5988
+ "147:15": "minecraft:light_weighted_pressure_plate[power=15]",
5989
+ "148:0": "minecraft:heavy_weighted_pressure_plate[power=0]",
5990
+ "148:1": "minecraft:heavy_weighted_pressure_plate[power=1]",
5991
+ "148:2": "minecraft:heavy_weighted_pressure_plate[power=2]",
5992
+ "148:3": "minecraft:heavy_weighted_pressure_plate[power=3]",
5993
+ "148:4": "minecraft:heavy_weighted_pressure_plate[power=4]",
5994
+ "148:5": "minecraft:heavy_weighted_pressure_plate[power=5]",
5995
+ "148:6": "minecraft:heavy_weighted_pressure_plate[power=6]",
5996
+ "148:7": "minecraft:heavy_weighted_pressure_plate[power=7]",
5997
+ "148:8": "minecraft:heavy_weighted_pressure_plate[power=8]",
5998
+ "148:9": "minecraft:heavy_weighted_pressure_plate[power=9]",
5999
+ "148:10": "minecraft:heavy_weighted_pressure_plate[power=10]",
6000
+ "148:11": "minecraft:heavy_weighted_pressure_plate[power=11]",
6001
+ "148:12": "minecraft:heavy_weighted_pressure_plate[power=12]",
6002
+ "148:13": "minecraft:heavy_weighted_pressure_plate[power=13]",
6003
+ "148:14": "minecraft:heavy_weighted_pressure_plate[power=14]",
6004
+ "148:15": "minecraft:heavy_weighted_pressure_plate[power=15]",
6005
+ "149:0": "minecraft:comparator[mode=compare,powered=false,facing=south]",
6006
+ "149:1": "minecraft:comparator[mode=compare,powered=false,facing=west]",
6007
+ "149:2": "minecraft:comparator[mode=compare,powered=false,facing=north]",
6008
+ "149:3": "minecraft:comparator[mode=compare,powered=false,facing=east]",
6009
+ "149:4": "minecraft:comparator[mode=subtract,powered=false,facing=south]",
6010
+ "149:5": "minecraft:comparator[mode=subtract,powered=false,facing=west]",
6011
+ "149:6": "minecraft:comparator[mode=subtract,powered=false,facing=north]",
6012
+ "149:7": "minecraft:comparator[mode=subtract,powered=false,facing=east]",
6013
+ "149:8": "minecraft:comparator[mode=compare,powered=false,facing=south]",
6014
+ "149:9": "minecraft:comparator[mode=compare,powered=false,facing=west]",
6015
+ "149:10": "minecraft:comparator[mode=compare,powered=false,facing=north]",
6016
+ "149:11": "minecraft:comparator[mode=compare,powered=false,facing=east]",
6017
+ "149:12": "minecraft:comparator[mode=subtract,powered=false,facing=south]",
6018
+ "149:13": "minecraft:comparator[mode=subtract,powered=false,facing=west]",
6019
+ "149:14": "minecraft:comparator[mode=subtract,powered=false,facing=north]",
6020
+ "149:15": "minecraft:comparator[mode=subtract,powered=false,facing=east]",
6021
+ "150:0": "minecraft:comparator[mode=compare,powered=true,facing=south]",
6022
+ "150:1": "minecraft:comparator[mode=compare,powered=true,facing=west]",
6023
+ "150:2": "minecraft:comparator[mode=compare,powered=true,facing=north]",
6024
+ "150:3": "minecraft:comparator[mode=compare,powered=true,facing=east]",
6025
+ "150:4": "minecraft:comparator[mode=subtract,powered=true,facing=south]",
6026
+ "150:5": "minecraft:comparator[mode=subtract,powered=true,facing=west]",
6027
+ "150:6": "minecraft:comparator[mode=subtract,powered=true,facing=north]",
6028
+ "150:7": "minecraft:comparator[mode=subtract,powered=true,facing=east]",
6029
+ "150:8": "minecraft:comparator[mode=compare,powered=true,facing=south]",
6030
+ "150:9": "minecraft:comparator[mode=compare,powered=true,facing=west]",
6031
+ "150:10": "minecraft:comparator[mode=compare,powered=true,facing=north]",
6032
+ "150:11": "minecraft:comparator[mode=compare,powered=true,facing=east]",
6033
+ "150:12": "minecraft:comparator[mode=subtract,powered=true,facing=south]",
6034
+ "150:13": "minecraft:comparator[mode=subtract,powered=true,facing=west]",
6035
+ "150:14": "minecraft:comparator[mode=subtract,powered=true,facing=north]",
6036
+ "150:15": "minecraft:comparator[mode=subtract,powered=true,facing=east]",
6037
+ "151:0": "minecraft:daylight_detector[inverted=false,power=0]",
6038
+ "151:1": "minecraft:daylight_detector[inverted=false,power=1]",
6039
+ "151:2": "minecraft:daylight_detector[inverted=false,power=2]",
6040
+ "151:3": "minecraft:daylight_detector[inverted=false,power=3]",
6041
+ "151:4": "minecraft:daylight_detector[inverted=false,power=4]",
6042
+ "151:5": "minecraft:daylight_detector[inverted=false,power=5]",
6043
+ "151:6": "minecraft:daylight_detector[inverted=false,power=6]",
6044
+ "151:7": "minecraft:daylight_detector[inverted=false,power=7]",
6045
+ "151:8": "minecraft:daylight_detector[inverted=false,power=8]",
6046
+ "151:9": "minecraft:daylight_detector[inverted=false,power=9]",
6047
+ "151:10": "minecraft:daylight_detector[inverted=false,power=10]",
6048
+ "151:11": "minecraft:daylight_detector[inverted=false,power=11]",
6049
+ "151:12": "minecraft:daylight_detector[inverted=false,power=12]",
6050
+ "151:13": "minecraft:daylight_detector[inverted=false,power=13]",
6051
+ "151:14": "minecraft:daylight_detector[inverted=false,power=14]",
6052
+ "151:15": "minecraft:daylight_detector[inverted=false,power=15]",
6053
+ "152:0": "minecraft:redstone_block",
6054
+ "153:0": "minecraft:nether_quartz_ore",
6055
+ "154:0": "minecraft:hopper[facing=down,enabled=true]",
6056
+ "154:2": "minecraft:hopper[facing=north,enabled=true]",
6057
+ "154:3": "minecraft:hopper[facing=south,enabled=true]",
6058
+ "154:4": "minecraft:hopper[facing=west,enabled=true]",
6059
+ "154:5": "minecraft:hopper[facing=east,enabled=true]",
6060
+ "154:8": "minecraft:hopper[facing=down,enabled=false]",
6061
+ "154:10": "minecraft:hopper[facing=north,enabled=false]",
6062
+ "154:11": "minecraft:hopper[facing=south,enabled=false]",
6063
+ "154:12": "minecraft:hopper[facing=west,enabled=false]",
6064
+ "154:13": "minecraft:hopper[facing=east,enabled=false]",
6065
+ "155:0": "minecraft:quartz_block",
6066
+ "155:1": "minecraft:chiseled_quartz_block",
6067
+ "155:2": "minecraft:quartz_pillar[axis=y]",
6068
+ "155:3": "minecraft:quartz_pillar[axis=x]",
6069
+ "155:4": "minecraft:quartz_pillar[axis=z]",
6070
+ "155:6": "minecraft:quartz_pillar[axis=x]",
6071
+ "155:10": "minecraft:quartz_pillar[axis=z]",
6072
+ "156:0": "minecraft:quartz_stairs[half=bottom,shape=outer_right,facing=east]",
6073
+ "156:1": "minecraft:quartz_stairs[half=bottom,shape=outer_right,facing=west]",
6074
+ "156:2": "minecraft:quartz_stairs[half=bottom,shape=outer_right,facing=south]",
6075
+ "156:3": "minecraft:quartz_stairs[half=bottom,shape=outer_right,facing=north]",
6076
+ "156:4": "minecraft:quartz_stairs[half=top,shape=outer_right,facing=east]",
6077
+ "156:5": "minecraft:quartz_stairs[half=top,shape=outer_right,facing=west]",
6078
+ "156:6": "minecraft:quartz_stairs[half=top,shape=outer_right,facing=south]",
6079
+ "156:7": "minecraft:quartz_stairs[half=top,shape=outer_right,facing=north]",
6080
+ "157:0": "minecraft:activator_rail[shape=north_south,powered=false]",
6081
+ "157:1": "minecraft:activator_rail[shape=east_west,powered=false]",
6082
+ "157:2": "minecraft:activator_rail[shape=ascending_east,powered=false]",
6083
+ "157:3": "minecraft:activator_rail[shape=ascending_west,powered=false]",
6084
+ "157:4": "minecraft:activator_rail[shape=ascending_north,powered=false]",
6085
+ "157:5": "minecraft:activator_rail[shape=ascending_south,powered=false]",
6086
+ "157:8": "minecraft:activator_rail[shape=north_south,powered=true]",
6087
+ "157:9": "minecraft:activator_rail[shape=east_west,powered=true]",
6088
+ "157:10": "minecraft:activator_rail[shape=ascending_east,powered=true]",
6089
+ "157:11": "minecraft:activator_rail[shape=ascending_west,powered=true]",
6090
+ "157:12": "minecraft:activator_rail[shape=ascending_north,powered=true]",
6091
+ "157:13": "minecraft:activator_rail[shape=ascending_south,powered=true]",
6092
+ "158:0": "minecraft:dropper[triggered=false,facing=down]",
6093
+ "158:1": "minecraft:dropper[triggered=false,facing=up]",
6094
+ "158:2": "minecraft:dropper[triggered=false,facing=north]",
6095
+ "158:3": "minecraft:dropper[triggered=false,facing=south]",
6096
+ "158:4": "minecraft:dropper[triggered=false,facing=west]",
6097
+ "158:5": "minecraft:dropper[triggered=false,facing=east]",
6098
+ "158:8": "minecraft:dropper[triggered=true,facing=down]",
6099
+ "158:9": "minecraft:dropper[triggered=true,facing=up]",
6100
+ "158:10": "minecraft:dropper[triggered=true,facing=north]",
6101
+ "158:11": "minecraft:dropper[triggered=true,facing=south]",
6102
+ "158:12": "minecraft:dropper[triggered=true,facing=west]",
6103
+ "158:13": "minecraft:dropper[triggered=true,facing=east]",
6104
+ "159:0": "minecraft:white_terracotta",
6105
+ "159:1": "minecraft:orange_terracotta",
6106
+ "159:2": "minecraft:magenta_terracotta",
6107
+ "159:3": "minecraft:light_blue_terracotta",
6108
+ "159:4": "minecraft:yellow_terracotta",
6109
+ "159:5": "minecraft:lime_terracotta",
6110
+ "159:6": "minecraft:pink_terracotta",
6111
+ "159:7": "minecraft:gray_terracotta",
6112
+ "159:8": "minecraft:light_gray_terracotta",
6113
+ "159:9": "minecraft:cyan_terracotta",
6114
+ "159:10": "minecraft:purple_terracotta",
6115
+ "159:11": "minecraft:blue_terracotta",
6116
+ "159:12": "minecraft:brown_terracotta",
6117
+ "159:13": "minecraft:green_terracotta",
6118
+ "159:14": "minecraft:red_terracotta",
6119
+ "159:15": "minecraft:black_terracotta",
6120
+ "160:0": "minecraft:white_stained_glass_pane[east=false,south=false,north=false,west=false]",
6121
+ "160:1": "minecraft:orange_stained_glass_pane[east=false,south=false,north=false,west=false]",
6122
+ "160:2": "minecraft:magenta_stained_glass_pane[east=false,south=false,north=false,west=false]",
6123
+ "160:3": "minecraft:light_blue_stained_glass_pane[east=false,south=false,north=false,west=false]",
6124
+ "160:4": "minecraft:yellow_stained_glass_pane[east=false,south=false,north=false,west=false]",
6125
+ "160:5": "minecraft:lime_stained_glass_pane[east=false,south=false,north=false,west=false]",
6126
+ "160:6": "minecraft:pink_stained_glass_pane[east=false,south=false,north=false,west=false]",
6127
+ "160:7": "minecraft:gray_stained_glass_pane[east=false,south=false,north=false,west=false]",
6128
+ "160:8": "minecraft:light_gray_stained_glass_pane[east=false,south=false,north=false,west=false]",
6129
+ "160:9": "minecraft:cyan_stained_glass_pane[east=false,south=false,north=false,west=false]",
6130
+ "160:10": "minecraft:purple_stained_glass_pane[east=false,south=false,north=false,west=false]",
6131
+ "160:11": "minecraft:blue_stained_glass_pane[east=false,south=false,north=false,west=false]",
6132
+ "160:12": "minecraft:brown_stained_glass_pane[east=false,south=false,north=false,west=false]",
6133
+ "160:13": "minecraft:green_stained_glass_pane[east=false,south=false,north=false,west=false]",
6134
+ "160:14": "minecraft:red_stained_glass_pane[east=false,south=false,north=false,west=false]",
6135
+ "160:15": "minecraft:black_stained_glass_pane[east=false,south=false,north=false,west=false]",
6136
+ "161:0": "minecraft:acacia_leaves[persistent=false,distance=1]",
6137
+ "161:1": "minecraft:dark_oak_leaves[persistent=false,distance=1]",
6138
+ "161:4": "minecraft:acacia_leaves[persistent=true,distance=1]",
6139
+ "161:5": "minecraft:dark_oak_leaves[persistent=true,distance=1]",
6140
+ "161:8": "minecraft:acacia_leaves[persistent=false,distance=1]",
6141
+ "161:9": "minecraft:dark_oak_leaves[persistent=false,distance=1]",
6142
+ "161:12": "minecraft:acacia_leaves[persistent=true,distance=1]",
6143
+ "161:13": "minecraft:dark_oak_leaves[persistent=true,distance=1]",
6144
+ "162:0": "minecraft:acacia_log[axis=y]",
6145
+ "162:1": "minecraft:dark_oak_log[axis=y]",
6146
+ "162:4": "minecraft:acacia_log[axis=x]",
6147
+ "162:5": "minecraft:dark_oak_log[axis=x]",
6148
+ "162:8": "minecraft:acacia_log[axis=z]",
6149
+ "162:9": "minecraft:dark_oak_log[axis=z]",
6150
+ "162:12": "minecraft:acacia_wood",
6151
+ "162:13": "minecraft:dark_oak_wood",
6152
+ "163:0": "minecraft:acacia_stairs[half=bottom,shape=outer_right,facing=east]",
6153
+ "163:1": "minecraft:acacia_stairs[half=bottom,shape=outer_right,facing=west]",
6154
+ "163:2": "minecraft:acacia_stairs[half=bottom,shape=outer_right,facing=south]",
6155
+ "163:3": "minecraft:acacia_stairs[half=bottom,shape=outer_right,facing=north]",
6156
+ "163:4": "minecraft:acacia_stairs[half=top,shape=outer_right,facing=east]",
6157
+ "163:5": "minecraft:acacia_stairs[half=top,shape=outer_right,facing=west]",
6158
+ "163:6": "minecraft:acacia_stairs[half=top,shape=outer_right,facing=south]",
6159
+ "163:7": "minecraft:acacia_stairs[half=top,shape=outer_right,facing=north]",
6160
+ "164:0": "minecraft:dark_oak_stairs[half=bottom,shape=outer_right,facing=east]",
6161
+ "164:1": "minecraft:dark_oak_stairs[half=bottom,shape=outer_right,facing=west]",
6162
+ "164:2": "minecraft:dark_oak_stairs[half=bottom,shape=outer_right,facing=south]",
6163
+ "164:3": "minecraft:dark_oak_stairs[half=bottom,shape=outer_right,facing=north]",
6164
+ "164:4": "minecraft:dark_oak_stairs[half=top,shape=outer_right,facing=east]",
6165
+ "164:5": "minecraft:dark_oak_stairs[half=top,shape=outer_right,facing=west]",
6166
+ "164:6": "minecraft:dark_oak_stairs[half=top,shape=outer_right,facing=south]",
6167
+ "164:7": "minecraft:dark_oak_stairs[half=top,shape=outer_right,facing=north]",
6168
+ "165:0": "minecraft:slime_block",
6169
+ "166:0": "minecraft:barrier",
6170
+ "167:0": "minecraft:iron_trapdoor[half=bottom,facing=north,open=false]",
6171
+ "167:1": "minecraft:iron_trapdoor[half=bottom,facing=south,open=false]",
6172
+ "167:2": "minecraft:iron_trapdoor[half=bottom,facing=west,open=false]",
6173
+ "167:3": "minecraft:iron_trapdoor[half=bottom,facing=east,open=false]",
6174
+ "167:4": "minecraft:iron_trapdoor[half=bottom,facing=north,open=true]",
6175
+ "167:5": "minecraft:iron_trapdoor[half=bottom,facing=south,open=true]",
6176
+ "167:6": "minecraft:iron_trapdoor[half=bottom,facing=west,open=true]",
6177
+ "167:7": "minecraft:iron_trapdoor[half=bottom,facing=east,open=true]",
6178
+ "167:8": "minecraft:iron_trapdoor[half=top,facing=north,open=false]",
6179
+ "167:9": "minecraft:iron_trapdoor[half=top,facing=south,open=false]",
6180
+ "167:10": "minecraft:iron_trapdoor[half=top,facing=west,open=false]",
6181
+ "167:11": "minecraft:iron_trapdoor[half=top,facing=east,open=false]",
6182
+ "167:12": "minecraft:iron_trapdoor[half=top,facing=north,open=true]",
6183
+ "167:13": "minecraft:iron_trapdoor[half=top,facing=south,open=true]",
6184
+ "167:14": "minecraft:iron_trapdoor[half=top,facing=west,open=true]",
6185
+ "167:15": "minecraft:iron_trapdoor[half=top,facing=east,open=true]",
6186
+ "168:0": "minecraft:prismarine",
6187
+ "168:1": "minecraft:prismarine_bricks",
6188
+ "168:2": "minecraft:dark_prismarine",
6189
+ "169:0": "minecraft:sea_lantern",
6190
+ "170:0": "minecraft:hay_block[axis=y]",
6191
+ "170:4": "minecraft:hay_block[axis=x]",
6192
+ "170:8": "minecraft:hay_block[axis=z]",
6193
+ "171:0": "minecraft:white_carpet",
6194
+ "171:1": "minecraft:orange_carpet",
6195
+ "171:2": "minecraft:magenta_carpet",
6196
+ "171:3": "minecraft:light_blue_carpet",
6197
+ "171:4": "minecraft:yellow_carpet",
6198
+ "171:5": "minecraft:lime_carpet",
6199
+ "171:6": "minecraft:pink_carpet",
6200
+ "171:7": "minecraft:gray_carpet",
6201
+ "171:8": "minecraft:light_gray_carpet",
6202
+ "171:9": "minecraft:cyan_carpet",
6203
+ "171:10": "minecraft:purple_carpet",
6204
+ "171:11": "minecraft:blue_carpet",
6205
+ "171:12": "minecraft:brown_carpet",
6206
+ "171:13": "minecraft:green_carpet",
6207
+ "171:14": "minecraft:red_carpet",
6208
+ "171:15": "minecraft:black_carpet",
6209
+ "172:0": "minecraft:terracotta",
6210
+ "173:0": "minecraft:coal_block",
6211
+ "174:0": "minecraft:packed_ice",
6212
+ "175:0": "minecraft:sunflower[half=lower]",
6213
+ "175:1": "minecraft:lilac[half=lower]",
6214
+ "175:2": "minecraft:tall_grass[half=lower]",
6215
+ "175:3": "minecraft:large_fern[half=lower]",
6216
+ "175:4": "minecraft:rose_bush[half=lower]",
6217
+ "175:5": "minecraft:peony[half=lower]",
6218
+ "175:8": "minecraft:sunflower[half=upper]",
6219
+ "175:9": "minecraft:lilac[half=upper]",
6220
+ "175:10": "minecraft:tall_grass[half=upper]",
6221
+ "175:11": "minecraft:large_fern[half=upper]",
6222
+ "175:12": "minecraft:rose_bush[half=upper]",
6223
+ "175:13": "minecraft:peony[half=upper]",
6224
+ "176:0": "minecraft:white_banner[rotation=0]",
6225
+ "176:1": "minecraft:white_banner[rotation=1]",
6226
+ "176:2": "minecraft:white_banner[rotation=2]",
6227
+ "176:3": "minecraft:white_banner[rotation=3]",
6228
+ "176:4": "minecraft:white_banner[rotation=4]",
6229
+ "176:5": "minecraft:white_banner[rotation=5]",
6230
+ "176:6": "minecraft:white_banner[rotation=6]",
6231
+ "176:7": "minecraft:white_banner[rotation=7]",
6232
+ "176:8": "minecraft:white_banner[rotation=8]",
6233
+ "176:9": "minecraft:white_banner[rotation=9]",
6234
+ "176:10": "minecraft:white_banner[rotation=10]",
6235
+ "176:11": "minecraft:white_banner[rotation=11]",
6236
+ "176:12": "minecraft:white_banner[rotation=12]",
6237
+ "176:13": "minecraft:white_banner[rotation=13]",
6238
+ "176:14": "minecraft:white_banner[rotation=14]",
6239
+ "176:15": "minecraft:white_banner[rotation=15]",
6240
+ "177:2": "minecraft:white_wall_banner[facing=north]",
6241
+ "177:3": "minecraft:white_wall_banner[facing=south]",
6242
+ "177:4": "minecraft:white_wall_banner[facing=west]",
6243
+ "177:5": "minecraft:white_wall_banner[facing=east]",
6244
+ "178:0": "minecraft:daylight_detector[inverted=true,power=0]",
6245
+ "178:1": "minecraft:daylight_detector[inverted=true,power=1]",
6246
+ "178:2": "minecraft:daylight_detector[inverted=true,power=2]",
6247
+ "178:3": "minecraft:daylight_detector[inverted=true,power=3]",
6248
+ "178:4": "minecraft:daylight_detector[inverted=true,power=4]",
6249
+ "178:5": "minecraft:daylight_detector[inverted=true,power=5]",
6250
+ "178:6": "minecraft:daylight_detector[inverted=true,power=6]",
6251
+ "178:7": "minecraft:daylight_detector[inverted=true,power=7]",
6252
+ "178:8": "minecraft:daylight_detector[inverted=true,power=8]",
6253
+ "178:9": "minecraft:daylight_detector[inverted=true,power=9]",
6254
+ "178:10": "minecraft:daylight_detector[inverted=true,power=10]",
6255
+ "178:11": "minecraft:daylight_detector[inverted=true,power=11]",
6256
+ "178:12": "minecraft:daylight_detector[inverted=true,power=12]",
6257
+ "178:13": "minecraft:daylight_detector[inverted=true,power=13]",
6258
+ "178:14": "minecraft:daylight_detector[inverted=true,power=14]",
6259
+ "178:15": "minecraft:daylight_detector[inverted=true,power=15]",
6260
+ "179:0": "minecraft:red_sandstone",
6261
+ "179:1": "minecraft:chiseled_red_sandstone",
6262
+ "179:2": "minecraft:cut_red_sandstone",
6263
+ "180:0": "minecraft:red_sandstone_stairs[half=bottom,shape=outer_right,facing=east]",
6264
+ "180:1": "minecraft:red_sandstone_stairs[half=bottom,shape=outer_right,facing=west]",
6265
+ "180:2": "minecraft:red_sandstone_stairs[half=bottom,shape=outer_right,facing=south]",
6266
+ "180:3": "minecraft:red_sandstone_stairs[half=bottom,shape=outer_right,facing=north]",
6267
+ "180:4": "minecraft:red_sandstone_stairs[half=top,shape=outer_right,facing=east]",
6268
+ "180:5": "minecraft:red_sandstone_stairs[half=top,shape=outer_right,facing=west]",
6269
+ "180:6": "minecraft:red_sandstone_stairs[half=top,shape=outer_right,facing=south]",
6270
+ "180:7": "minecraft:red_sandstone_stairs[half=top,shape=outer_right,facing=north]",
6271
+ "181:0": "minecraft:red_sandstone_slab[type=double]",
6272
+ "181:8": "minecraft:smooth_red_sandstone",
6273
+ "182:0": "minecraft:red_sandstone_slab[type=bottom]",
6274
+ "182:8": "minecraft:red_sandstone_slab[type=top]",
6275
+ "183:0": "minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=false]",
6276
+ "183:1": "minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=false]",
6277
+ "183:2": "minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=false]",
6278
+ "183:3": "minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=false]",
6279
+ "183:4": "minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=true]",
6280
+ "183:5": "minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=true]",
6281
+ "183:6": "minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=true]",
6282
+ "183:7": "minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=true]",
6283
+ "183:8": "minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=false]",
6284
+ "183:9": "minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=false]",
6285
+ "183:10": "minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=false]",
6286
+ "183:11": "minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=false]",
6287
+ "183:12": "minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=true]",
6288
+ "183:13": "minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=true]",
6289
+ "183:14": "minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=true]",
6290
+ "183:15": "minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=true]",
6291
+ "184:0": "minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=false]",
6292
+ "184:1": "minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=false]",
6293
+ "184:2": "minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=false]",
6294
+ "184:3": "minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=false]",
6295
+ "184:4": "minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=true]",
6296
+ "184:5": "minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=true]",
6297
+ "184:6": "minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=true]",
6298
+ "184:7": "minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=true]",
6299
+ "184:8": "minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=false]",
6300
+ "184:9": "minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=false]",
6301
+ "184:10": "minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=false]",
6302
+ "184:11": "minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=false]",
6303
+ "184:12": "minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=true]",
6304
+ "184:13": "minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=true]",
6305
+ "184:14": "minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=true]",
6306
+ "184:15": "minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=true]",
6307
+ "185:0": "minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=false]",
6308
+ "185:1": "minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=false]",
6309
+ "185:2": "minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=false]",
6310
+ "185:3": "minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=false]",
6311
+ "185:4": "minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=true]",
6312
+ "185:5": "minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=true]",
6313
+ "185:6": "minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=true]",
6314
+ "185:7": "minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=true]",
6315
+ "185:8": "minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=false]",
6316
+ "185:9": "minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=false]",
6317
+ "185:10": "minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=false]",
6318
+ "185:11": "minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=false]",
6319
+ "185:12": "minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=true]",
6320
+ "185:13": "minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=true]",
6321
+ "185:14": "minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=true]",
6322
+ "185:15": "minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=true]",
6323
+ "186:0": "minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]",
6324
+ "186:1": "minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]",
6325
+ "186:2": "minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]",
6326
+ "186:3": "minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]",
6327
+ "186:4": "minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]",
6328
+ "186:5": "minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]",
6329
+ "186:6": "minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]",
6330
+ "186:7": "minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]",
6331
+ "186:8": "minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]",
6332
+ "186:9": "minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]",
6333
+ "186:10": "minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]",
6334
+ "186:11": "minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]",
6335
+ "186:12": "minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]",
6336
+ "186:13": "minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]",
6337
+ "186:14": "minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]",
6338
+ "186:15": "minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]",
6339
+ "187:0": "minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=false]",
6340
+ "187:1": "minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=false]",
6341
+ "187:2": "minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=false]",
6342
+ "187:3": "minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=false]",
6343
+ "187:4": "minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=true]",
6344
+ "187:5": "minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=true]",
6345
+ "187:6": "minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=true]",
6346
+ "187:7": "minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=true]",
6347
+ "187:8": "minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=false]",
6348
+ "187:9": "minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=false]",
6349
+ "187:10": "minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=false]",
6350
+ "187:11": "minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=false]",
6351
+ "187:12": "minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=true]",
6352
+ "187:13": "minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=true]",
6353
+ "187:14": "minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=true]",
6354
+ "187:15": "minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=true]",
6355
+ "188:0": "minecraft:spruce_fence[east=false,south=false,north=false,west=false]",
6356
+ "189:0": "minecraft:birch_fence[east=false,south=false,north=false,west=false]",
6357
+ "190:0": "minecraft:jungle_fence[east=false,south=false,north=false,west=false]",
6358
+ "191:0": "minecraft:dark_oak_fence[east=false,south=false,north=false,west=false]",
6359
+ "192:0": "minecraft:acacia_fence[east=false,south=false,north=false,west=false]",
6360
+ "193:0": "minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=false]",
6361
+ "193:1": "minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=false]",
6362
+ "193:2": "minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=false]",
6363
+ "193:3": "minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=false]",
6364
+ "193:4": "minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=true]",
6365
+ "193:5": "minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=true]",
6366
+ "193:6": "minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=true]",
6367
+ "193:7": "minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=true]",
6368
+ "193:8": "minecraft:spruce_door[hinge=left,half=upper,powered=false,facing=east,open=false]",
6369
+ "193:9": "minecraft:spruce_door[hinge=right,half=upper,powered=false,facing=east,open=false]",
6370
+ "193:10": "minecraft:spruce_door[hinge=left,half=upper,powered=true,facing=east,open=false]",
6371
+ "193:11": "minecraft:spruce_door[hinge=right,half=upper,powered=true,facing=east,open=false]",
6372
+ "194:0": "minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=false]",
6373
+ "194:1": "minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=false]",
6374
+ "194:2": "minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=false]",
6375
+ "194:3": "minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=false]",
6376
+ "194:4": "minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=true]",
6377
+ "194:5": "minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=true]",
6378
+ "194:6": "minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=true]",
6379
+ "194:7": "minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=true]",
6380
+ "194:8": "minecraft:birch_door[hinge=left,half=upper,powered=false,facing=east,open=false]",
6381
+ "194:9": "minecraft:birch_door[hinge=right,half=upper,powered=false,facing=east,open=false]",
6382
+ "194:10": "minecraft:birch_door[hinge=left,half=upper,powered=true,facing=east,open=false]",
6383
+ "194:11": "minecraft:birch_door[hinge=right,half=upper,powered=true,facing=east,open=false]",
6384
+ "195:0": "minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=false]",
6385
+ "195:1": "minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=false]",
6386
+ "195:2": "minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=false]",
6387
+ "195:3": "minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=false]",
6388
+ "195:4": "minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=true]",
6389
+ "195:5": "minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=true]",
6390
+ "195:6": "minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=true]",
6391
+ "195:7": "minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=true]",
6392
+ "195:8": "minecraft:jungle_door[hinge=left,half=upper,powered=false,facing=east,open=false]",
6393
+ "195:9": "minecraft:jungle_door[hinge=right,half=upper,powered=false,facing=east,open=false]",
6394
+ "195:10": "minecraft:jungle_door[hinge=left,half=upper,powered=true,facing=east,open=false]",
6395
+ "195:11": "minecraft:jungle_door[hinge=right,half=upper,powered=true,facing=east,open=false]",
6396
+ "196:0": "minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=false]",
6397
+ "196:1": "minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=false]",
6398
+ "196:2": "minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=false]",
6399
+ "196:3": "minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=false]",
6400
+ "196:4": "minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=true]",
6401
+ "196:5": "minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=true]",
6402
+ "196:6": "minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=true]",
6403
+ "196:7": "minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=true]",
6404
+ "196:8": "minecraft:acacia_door[hinge=left,half=upper,powered=false,facing=east,open=false]",
6405
+ "196:9": "minecraft:acacia_door[hinge=right,half=upper,powered=false,facing=east,open=false]",
6406
+ "196:10": "minecraft:acacia_door[hinge=left,half=upper,powered=true,facing=east,open=false]",
6407
+ "196:11": "minecraft:acacia_door[hinge=right,half=upper,powered=true,facing=east,open=false]",
6408
+ "197:0": "minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]",
6409
+ "197:1": "minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]",
6410
+ "197:2": "minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]",
6411
+ "197:3": "minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]",
6412
+ "197:4": "minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]",
6413
+ "197:5": "minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]",
6414
+ "197:6": "minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]",
6415
+ "197:7": "minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]",
6416
+ "197:8": "minecraft:dark_oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]",
6417
+ "197:9": "minecraft:dark_oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]",
6418
+ "197:10": "minecraft:dark_oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]",
6419
+ "197:11": "minecraft:dark_oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]",
6420
+ "198:0": "minecraft:end_rod[facing=down]",
6421
+ "198:1": "minecraft:end_rod[facing=up]",
6422
+ "198:2": "minecraft:end_rod[facing=north]",
6423
+ "198:3": "minecraft:end_rod[facing=south]",
6424
+ "198:4": "minecraft:end_rod[facing=west]",
6425
+ "198:5": "minecraft:end_rod[facing=east]",
6426
+ "199:0": "minecraft:chorus_plant[east=false,south=false,north=false,west=false,up=false,down=false]",
6427
+ "200:0": "minecraft:chorus_flower[age=0]",
6428
+ "200:1": "minecraft:chorus_flower[age=1]",
6429
+ "200:2": "minecraft:chorus_flower[age=2]",
6430
+ "200:3": "minecraft:chorus_flower[age=3]",
6431
+ "200:4": "minecraft:chorus_flower[age=4]",
6432
+ "200:5": "minecraft:chorus_flower[age=5]",
6433
+ "201:0": "minecraft:purpur_block",
6434
+ "202:0": "minecraft:purpur_pillar[axis=y]",
6435
+ "202:4": "minecraft:purpur_pillar[axis=x]",
6436
+ "202:8": "minecraft:purpur_pillar[axis=z]",
6437
+ "203:0": "minecraft:purpur_stairs[half=bottom,shape=outer_right,facing=east]",
6438
+ "203:1": "minecraft:purpur_stairs[half=bottom,shape=outer_right,facing=west]",
6439
+ "203:2": "minecraft:purpur_stairs[half=bottom,shape=outer_right,facing=south]",
6440
+ "203:3": "minecraft:purpur_stairs[half=bottom,shape=outer_right,facing=north]",
6441
+ "203:4": "minecraft:purpur_stairs[half=top,shape=outer_right,facing=east]",
6442
+ "203:5": "minecraft:purpur_stairs[half=top,shape=outer_right,facing=west]",
6443
+ "203:6": "minecraft:purpur_stairs[half=top,shape=outer_right,facing=south]",
6444
+ "203:7": "minecraft:purpur_stairs[half=top,shape=outer_right,facing=north]",
6445
+ "204:0": "minecraft:purpur_slab[type=double]",
6446
+ "205:0": "minecraft:purpur_slab[type=bottom]",
6447
+ "205:8": "minecraft:purpur_slab[type=top]",
6448
+ "206:0": "minecraft:end_stone_bricks",
6449
+ "207:0": "minecraft:beetroots[age=0]",
6450
+ "207:1": "minecraft:beetroots[age=1]",
6451
+ "207:2": "minecraft:beetroots[age=2]",
6452
+ "207:3": "minecraft:beetroots[age=3]",
6453
+ "208:0": "minecraft:dirt_path",
6454
+ "209:0": "minecraft:end_gateway",
6455
+ "210:0": "minecraft:repeating_command_block[conditional=false,facing=down]",
6456
+ "210:1": "minecraft:repeating_command_block[conditional=false,facing=up]",
6457
+ "210:2": "minecraft:repeating_command_block[conditional=false,facing=north]",
6458
+ "210:3": "minecraft:repeating_command_block[conditional=false,facing=south]",
6459
+ "210:4": "minecraft:repeating_command_block[conditional=false,facing=west]",
6460
+ "210:5": "minecraft:repeating_command_block[conditional=false,facing=east]",
6461
+ "210:8": "minecraft:repeating_command_block[conditional=true,facing=down]",
6462
+ "210:9": "minecraft:repeating_command_block[conditional=true,facing=up]",
6463
+ "210:10": "minecraft:repeating_command_block[conditional=true,facing=north]",
6464
+ "210:11": "minecraft:repeating_command_block[conditional=true,facing=south]",
6465
+ "210:12": "minecraft:repeating_command_block[conditional=true,facing=west]",
6466
+ "210:13": "minecraft:repeating_command_block[conditional=true,facing=east]",
6467
+ "211:0": "minecraft:chain_command_block[conditional=false,facing=down]",
6468
+ "211:1": "minecraft:chain_command_block[conditional=false,facing=up]",
6469
+ "211:2": "minecraft:chain_command_block[conditional=false,facing=north]",
6470
+ "211:3": "minecraft:chain_command_block[conditional=false,facing=south]",
6471
+ "211:4": "minecraft:chain_command_block[conditional=false,facing=west]",
6472
+ "211:5": "minecraft:chain_command_block[conditional=false,facing=east]",
6473
+ "211:8": "minecraft:chain_command_block[conditional=true,facing=down]",
6474
+ "211:9": "minecraft:chain_command_block[conditional=true,facing=up]",
6475
+ "211:10": "minecraft:chain_command_block[conditional=true,facing=north]",
6476
+ "211:11": "minecraft:chain_command_block[conditional=true,facing=south]",
6477
+ "211:12": "minecraft:chain_command_block[conditional=true,facing=west]",
6478
+ "211:13": "minecraft:chain_command_block[conditional=true,facing=east]",
6479
+ "212:0": "minecraft:frosted_ice[age=0]",
6480
+ "212:1": "minecraft:frosted_ice[age=1]",
6481
+ "212:2": "minecraft:frosted_ice[age=2]",
6482
+ "212:3": "minecraft:frosted_ice[age=3]",
6483
+ "213:0": "minecraft:magma_block",
6484
+ "214:0": "minecraft:nether_wart_block",
6485
+ "215:0": "minecraft:red_nether_bricks",
6486
+ "216:0": "minecraft:bone_block[axis=y]",
6487
+ "216:4": "minecraft:bone_block[axis=x]",
6488
+ "216:8": "minecraft:bone_block[axis=z]",
6489
+ "217:0": "minecraft:structure_void",
6490
+ "218:0": "minecraft:observer[powered=false,facing=down]",
6491
+ "218:1": "minecraft:observer[powered=false,facing=up]",
6492
+ "218:2": "minecraft:observer[powered=false,facing=north]",
6493
+ "218:3": "minecraft:observer[powered=false,facing=south]",
6494
+ "218:4": "minecraft:observer[powered=false,facing=west]",
6495
+ "218:5": "minecraft:observer[powered=false,facing=east]",
6496
+ "218:8": "minecraft:observer[powered=true,facing=down]",
6497
+ "218:9": "minecraft:observer[powered=true,facing=up]",
6498
+ "218:10": "minecraft:observer[powered=true,facing=north]",
6499
+ "218:11": "minecraft:observer[powered=true,facing=south]",
6500
+ "218:12": "minecraft:observer[powered=true,facing=west]",
6501
+ "218:13": "minecraft:observer[powered=true,facing=east]",
6502
+ "219:0": "minecraft:white_shulker_box[facing=down]",
6503
+ "219:1": "minecraft:white_shulker_box[facing=up]",
6504
+ "219:2": "minecraft:white_shulker_box[facing=north]",
6505
+ "219:3": "minecraft:white_shulker_box[facing=south]",
6506
+ "219:4": "minecraft:white_shulker_box[facing=west]",
6507
+ "219:5": "minecraft:white_shulker_box[facing=east]",
6508
+ "220:0": "minecraft:orange_shulker_box[facing=down]",
6509
+ "220:1": "minecraft:orange_shulker_box[facing=up]",
6510
+ "220:2": "minecraft:orange_shulker_box[facing=north]",
6511
+ "220:3": "minecraft:orange_shulker_box[facing=south]",
6512
+ "220:4": "minecraft:orange_shulker_box[facing=west]",
6513
+ "220:5": "minecraft:orange_shulker_box[facing=east]",
6514
+ "221:0": "minecraft:magenta_shulker_box[facing=down]",
6515
+ "221:1": "minecraft:magenta_shulker_box[facing=up]",
6516
+ "221:2": "minecraft:magenta_shulker_box[facing=north]",
6517
+ "221:3": "minecraft:magenta_shulker_box[facing=south]",
6518
+ "221:4": "minecraft:magenta_shulker_box[facing=west]",
6519
+ "221:5": "minecraft:magenta_shulker_box[facing=east]",
6520
+ "222:0": "minecraft:light_blue_shulker_box[facing=down]",
6521
+ "222:1": "minecraft:light_blue_shulker_box[facing=up]",
6522
+ "222:2": "minecraft:light_blue_shulker_box[facing=north]",
6523
+ "222:3": "minecraft:light_blue_shulker_box[facing=south]",
6524
+ "222:4": "minecraft:light_blue_shulker_box[facing=west]",
6525
+ "222:5": "minecraft:light_blue_shulker_box[facing=east]",
6526
+ "223:0": "minecraft:yellow_shulker_box[facing=down]",
6527
+ "223:1": "minecraft:yellow_shulker_box[facing=up]",
6528
+ "223:2": "minecraft:yellow_shulker_box[facing=north]",
6529
+ "223:3": "minecraft:yellow_shulker_box[facing=south]",
6530
+ "223:4": "minecraft:yellow_shulker_box[facing=west]",
6531
+ "223:5": "minecraft:yellow_shulker_box[facing=east]",
6532
+ "224:0": "minecraft:lime_shulker_box[facing=down]",
6533
+ "224:1": "minecraft:lime_shulker_box[facing=up]",
6534
+ "224:2": "minecraft:lime_shulker_box[facing=north]",
6535
+ "224:3": "minecraft:lime_shulker_box[facing=south]",
6536
+ "224:4": "minecraft:lime_shulker_box[facing=west]",
6537
+ "224:5": "minecraft:lime_shulker_box[facing=east]",
6538
+ "225:0": "minecraft:pink_shulker_box[facing=down]",
6539
+ "225:1": "minecraft:pink_shulker_box[facing=up]",
6540
+ "225:2": "minecraft:pink_shulker_box[facing=north]",
6541
+ "225:3": "minecraft:pink_shulker_box[facing=south]",
6542
+ "225:4": "minecraft:pink_shulker_box[facing=west]",
6543
+ "225:5": "minecraft:pink_shulker_box[facing=east]",
6544
+ "226:0": "minecraft:gray_shulker_box[facing=down]",
6545
+ "226:1": "minecraft:gray_shulker_box[facing=up]",
6546
+ "226:2": "minecraft:gray_shulker_box[facing=north]",
6547
+ "226:3": "minecraft:gray_shulker_box[facing=south]",
6548
+ "226:4": "minecraft:gray_shulker_box[facing=west]",
6549
+ "226:5": "minecraft:gray_shulker_box[facing=east]",
6550
+ "227:0": "minecraft:light_gray_shulker_box[facing=down]",
6551
+ "227:1": "minecraft:light_gray_shulker_box[facing=up]",
6552
+ "227:2": "minecraft:light_gray_shulker_box[facing=north]",
6553
+ "227:3": "minecraft:light_gray_shulker_box[facing=south]",
6554
+ "227:4": "minecraft:light_gray_shulker_box[facing=west]",
6555
+ "227:5": "minecraft:light_gray_shulker_box[facing=east]",
6556
+ "228:0": "minecraft:cyan_shulker_box[facing=down]",
6557
+ "228:1": "minecraft:cyan_shulker_box[facing=up]",
6558
+ "228:2": "minecraft:cyan_shulker_box[facing=north]",
6559
+ "228:3": "minecraft:cyan_shulker_box[facing=south]",
6560
+ "228:4": "minecraft:cyan_shulker_box[facing=west]",
6561
+ "228:5": "minecraft:cyan_shulker_box[facing=east]",
6562
+ "229:0": "minecraft:purple_shulker_box[facing=down]",
6563
+ "229:1": "minecraft:purple_shulker_box[facing=up]",
6564
+ "229:2": "minecraft:purple_shulker_box[facing=north]",
6565
+ "229:3": "minecraft:purple_shulker_box[facing=south]",
6566
+ "229:4": "minecraft:purple_shulker_box[facing=west]",
6567
+ "229:5": "minecraft:purple_shulker_box[facing=east]",
6568
+ "230:0": "minecraft:blue_shulker_box[facing=down]",
6569
+ "230:1": "minecraft:blue_shulker_box[facing=up]",
6570
+ "230:2": "minecraft:blue_shulker_box[facing=north]",
6571
+ "230:3": "minecraft:blue_shulker_box[facing=south]",
6572
+ "230:4": "minecraft:blue_shulker_box[facing=west]",
6573
+ "230:5": "minecraft:blue_shulker_box[facing=east]",
6574
+ "231:0": "minecraft:brown_shulker_box[facing=down]",
6575
+ "231:1": "minecraft:brown_shulker_box[facing=up]",
6576
+ "231:2": "minecraft:brown_shulker_box[facing=north]",
6577
+ "231:3": "minecraft:brown_shulker_box[facing=south]",
6578
+ "231:4": "minecraft:brown_shulker_box[facing=west]",
6579
+ "231:5": "minecraft:brown_shulker_box[facing=east]",
6580
+ "232:0": "minecraft:green_shulker_box[facing=down]",
6581
+ "232:1": "minecraft:green_shulker_box[facing=up]",
6582
+ "232:2": "minecraft:green_shulker_box[facing=north]",
6583
+ "232:3": "minecraft:green_shulker_box[facing=south]",
6584
+ "232:4": "minecraft:green_shulker_box[facing=west]",
6585
+ "232:5": "minecraft:green_shulker_box[facing=east]",
6586
+ "233:0": "minecraft:red_shulker_box[facing=down]",
6587
+ "233:1": "minecraft:red_shulker_box[facing=up]",
6588
+ "233:2": "minecraft:red_shulker_box[facing=north]",
6589
+ "233:3": "minecraft:red_shulker_box[facing=south]",
6590
+ "233:4": "minecraft:red_shulker_box[facing=west]",
6591
+ "233:5": "minecraft:red_shulker_box[facing=east]",
6592
+ "234:0": "minecraft:black_shulker_box[facing=down]",
6593
+ "234:1": "minecraft:black_shulker_box[facing=up]",
6594
+ "234:2": "minecraft:black_shulker_box[facing=north]",
6595
+ "234:3": "minecraft:black_shulker_box[facing=south]",
6596
+ "234:4": "minecraft:black_shulker_box[facing=west]",
6597
+ "234:5": "minecraft:black_shulker_box[facing=east]",
6598
+ "235:0": "minecraft:white_glazed_terracotta[facing=south]",
6599
+ "235:1": "minecraft:white_glazed_terracotta[facing=west]",
6600
+ "235:2": "minecraft:white_glazed_terracotta[facing=north]",
6601
+ "235:3": "minecraft:white_glazed_terracotta[facing=east]",
6602
+ "236:0": "minecraft:orange_glazed_terracotta[facing=south]",
6603
+ "236:1": "minecraft:orange_glazed_terracotta[facing=west]",
6604
+ "236:2": "minecraft:orange_glazed_terracotta[facing=north]",
6605
+ "236:3": "minecraft:orange_glazed_terracotta[facing=east]",
6606
+ "237:0": "minecraft:magenta_glazed_terracotta[facing=south]",
6607
+ "237:1": "minecraft:magenta_glazed_terracotta[facing=west]",
6608
+ "237:2": "minecraft:magenta_glazed_terracotta[facing=north]",
6609
+ "237:3": "minecraft:magenta_glazed_terracotta[facing=east]",
6610
+ "238:0": "minecraft:light_blue_glazed_terracotta[facing=south]",
6611
+ "238:1": "minecraft:light_blue_glazed_terracotta[facing=west]",
6612
+ "238:2": "minecraft:light_blue_glazed_terracotta[facing=north]",
6613
+ "238:3": "minecraft:light_blue_glazed_terracotta[facing=east]",
6614
+ "239:0": "minecraft:yellow_glazed_terracotta[facing=south]",
6615
+ "239:1": "minecraft:yellow_glazed_terracotta[facing=west]",
6616
+ "239:2": "minecraft:yellow_glazed_terracotta[facing=north]",
6617
+ "239:3": "minecraft:yellow_glazed_terracotta[facing=east]",
6618
+ "240:0": "minecraft:lime_glazed_terracotta[facing=south]",
6619
+ "240:1": "minecraft:lime_glazed_terracotta[facing=west]",
6620
+ "240:2": "minecraft:lime_glazed_terracotta[facing=north]",
6621
+ "240:3": "minecraft:lime_glazed_terracotta[facing=east]",
6622
+ "241:0": "minecraft:pink_glazed_terracotta[facing=south]",
6623
+ "241:1": "minecraft:pink_glazed_terracotta[facing=west]",
6624
+ "241:2": "minecraft:pink_glazed_terracotta[facing=north]",
6625
+ "241:3": "minecraft:pink_glazed_terracotta[facing=east]",
6626
+ "242:0": "minecraft:gray_glazed_terracotta[facing=south]",
6627
+ "242:1": "minecraft:gray_glazed_terracotta[facing=west]",
6628
+ "242:2": "minecraft:gray_glazed_terracotta[facing=north]",
6629
+ "242:3": "minecraft:gray_glazed_terracotta[facing=east]",
6630
+ "243:0": "minecraft:light_gray_glazed_terracotta[facing=south]",
6631
+ "243:1": "minecraft:light_gray_glazed_terracotta[facing=west]",
6632
+ "243:2": "minecraft:light_gray_glazed_terracotta[facing=north]",
6633
+ "243:3": "minecraft:light_gray_glazed_terracotta[facing=east]",
6634
+ "244:0": "minecraft:cyan_glazed_terracotta[facing=south]",
6635
+ "244:1": "minecraft:cyan_glazed_terracotta[facing=west]",
6636
+ "244:2": "minecraft:cyan_glazed_terracotta[facing=north]",
6637
+ "244:3": "minecraft:cyan_glazed_terracotta[facing=east]",
6638
+ "245:0": "minecraft:purple_glazed_terracotta[facing=south]",
6639
+ "245:1": "minecraft:purple_glazed_terracotta[facing=west]",
6640
+ "245:2": "minecraft:purple_glazed_terracotta[facing=north]",
6641
+ "245:3": "minecraft:purple_glazed_terracotta[facing=east]",
6642
+ "246:0": "minecraft:blue_glazed_terracotta[facing=south]",
6643
+ "246:1": "minecraft:blue_glazed_terracotta[facing=west]",
6644
+ "246:2": "minecraft:blue_glazed_terracotta[facing=north]",
6645
+ "246:3": "minecraft:blue_glazed_terracotta[facing=east]",
6646
+ "247:0": "minecraft:brown_glazed_terracotta[facing=south]",
6647
+ "247:1": "minecraft:brown_glazed_terracotta[facing=west]",
6648
+ "247:2": "minecraft:brown_glazed_terracotta[facing=north]",
6649
+ "247:3": "minecraft:brown_glazed_terracotta[facing=east]",
6650
+ "248:0": "minecraft:green_glazed_terracotta[facing=south]",
6651
+ "248:1": "minecraft:green_glazed_terracotta[facing=west]",
6652
+ "248:2": "minecraft:green_glazed_terracotta[facing=north]",
6653
+ "248:3": "minecraft:green_glazed_terracotta[facing=east]",
6654
+ "249:0": "minecraft:red_glazed_terracotta[facing=south]",
6655
+ "249:1": "minecraft:red_glazed_terracotta[facing=west]",
6656
+ "249:2": "minecraft:red_glazed_terracotta[facing=north]",
6657
+ "249:3": "minecraft:red_glazed_terracotta[facing=east]",
6658
+ "250:0": "minecraft:black_glazed_terracotta[facing=south]",
6659
+ "250:1": "minecraft:black_glazed_terracotta[facing=west]",
6660
+ "250:2": "minecraft:black_glazed_terracotta[facing=north]",
6661
+ "250:3": "minecraft:black_glazed_terracotta[facing=east]",
6662
+ "251:0": "minecraft:white_concrete",
6663
+ "251:1": "minecraft:orange_concrete",
6664
+ "251:2": "minecraft:magenta_concrete",
6665
+ "251:3": "minecraft:light_blue_concrete",
6666
+ "251:4": "minecraft:yellow_concrete",
6667
+ "251:5": "minecraft:lime_concrete",
6668
+ "251:6": "minecraft:pink_concrete",
6669
+ "251:7": "minecraft:gray_concrete",
6670
+ "251:8": "minecraft:light_gray_concrete",
6671
+ "251:9": "minecraft:cyan_concrete",
6672
+ "251:10": "minecraft:purple_concrete",
6673
+ "251:11": "minecraft:blue_concrete",
6674
+ "251:12": "minecraft:brown_concrete",
6675
+ "251:13": "minecraft:green_concrete",
6676
+ "251:14": "minecraft:red_concrete",
6677
+ "251:15": "minecraft:black_concrete",
6678
+ "252:0": "minecraft:white_concrete_powder",
6679
+ "252:1": "minecraft:orange_concrete_powder",
6680
+ "252:2": "minecraft:magenta_concrete_powder",
6681
+ "252:3": "minecraft:light_blue_concrete_powder",
6682
+ "252:4": "minecraft:yellow_concrete_powder",
6683
+ "252:5": "minecraft:lime_concrete_powder",
6684
+ "252:6": "minecraft:pink_concrete_powder",
6685
+ "252:7": "minecraft:gray_concrete_powder",
6686
+ "252:8": "minecraft:light_gray_concrete_powder",
6687
+ "252:9": "minecraft:cyan_concrete_powder",
6688
+ "252:10": "minecraft:purple_concrete_powder",
6689
+ "252:11": "minecraft:blue_concrete_powder",
6690
+ "252:12": "minecraft:brown_concrete_powder",
6691
+ "252:13": "minecraft:green_concrete_powder",
6692
+ "252:14": "minecraft:red_concrete_powder",
6693
+ "252:15": "minecraft:black_concrete_powder",
6694
+ "255:0": "minecraft:structure_block[mode=save]",
6695
+ "255:1": "minecraft:structure_block[mode=load]",
6696
+ "255:2": "minecraft:structure_block[mode=corner]",
6697
+ "255:3": "minecraft:structure_block[mode=data]"
6698
+ }
6699
+ };
6700
+
4888
6701
  // src/model/multiblock/SchematicParser.ts
4889
6702
  var SchematicParser = class {
4890
- static async parse() {
4891
- return Promise.resolve({});
6703
+ static async parse(nbt) {
6704
+ const tags = nbt.value;
6705
+ if (tags.Materials?.type !== "string" || tags.Materials.value !== "Alpha") {
6706
+ throw new MineRenderError("Schematic Materials must be Alpha");
6707
+ }
6708
+ const size = ["Width", "Height", "Length"].map((name) => {
6709
+ const tag = tags[name];
6710
+ if (tag?.type !== "short" || !Number.isInteger(tag.value) || tag.value <= 0 || tag.value > 32767) {
6711
+ throw new MineRenderError(`Schematic ${name} must be a positive short`);
6712
+ }
6713
+ return tag.value;
6714
+ });
6715
+ const [width, height, length] = size;
6716
+ const volume = width * height * length;
6717
+ const ids = tags.Blocks;
6718
+ const data = tags.Data;
6719
+ if (ids?.type !== "byteArray" || data?.type !== "byteArray" || !Array.isArray(ids.value) || !Array.isArray(data.value) || ids.value.length !== volume || data.value.length !== volume) {
6720
+ throw new MineRenderError(`Schematic Blocks and Data must contain ${volume} bytes`);
6721
+ }
6722
+ const addBlocks = tags.AddBlocks;
6723
+ if (addBlocks && (addBlocks.type !== "byteArray" || !Array.isArray(addBlocks.value))) {
6724
+ throw new MineRenderError("Schematic AddBlocks must be a byte array");
6725
+ }
6726
+ const tileEntities = /* @__PURE__ */ new Map();
6727
+ for (const tile of compoundList(tags, "TileEntities")) {
6728
+ const position = ["x", "y", "z"].map((axis, i) => {
6729
+ const coordinate = tile[axis];
6730
+ if (coordinate?.type !== "int" || !Number.isInteger(coordinate.value) || coordinate.value < 0 || coordinate.value >= size[i]) {
6731
+ throw new MineRenderError("Schematic TileEntities position is outside its dimensions");
6732
+ }
6733
+ return coordinate.value;
6734
+ });
6735
+ const [x, y, z] = position;
6736
+ tileEntities.set((y * length + z) * width + x, { type: "compound", value: tile });
6737
+ }
6738
+ const blocks = [];
6739
+ const mapping = legacyBlocks_default.blocks;
6740
+ for (let index = 0; index < volume; index++) {
6741
+ const packed = addBlocks?.value[index >> 1] ?? 0;
6742
+ const high = packed >> (index & 1) * 4 & 15;
6743
+ const id = high << 8 | ids.value[index] & 255;
6744
+ const metadata = data.value[index] & 255;
6745
+ const mapped = mapping[`${id}:${metadata}`];
6746
+ if (!mapped) throw new MineRenderError(`Unsupported legacy block ${id}:${metadata} at schematic index ${index}`);
6747
+ const [type, state] = mapped.split("[");
6748
+ if (type === "minecraft:air") continue;
6749
+ const properties = {};
6750
+ if (state) {
6751
+ for (const property of state.slice(0, -1).split(",")) {
6752
+ const [key, value] = property.split("=");
6753
+ properties[key] = value;
6754
+ }
6755
+ }
6756
+ blocks.push({
6757
+ type,
6758
+ properties,
6759
+ position: [index % width, Math.floor(index / (width * length)), Math.floor(index / width) % length],
6760
+ nbt: tileEntities.get(index)
6761
+ });
6762
+ }
6763
+ const entities = compoundList(tags, "Entities").map((entity) => {
6764
+ const pos = entity.Pos;
6765
+ if (pos?.type !== "list" || pos.value.type !== "double" || pos.value.value.length !== 3 || !pos.value.value.every(Number.isFinite)) {
6766
+ throw new MineRenderError("Schematic entity Pos must contain three doubles");
6767
+ }
6768
+ return { position: [...pos.value.value], nbt: { type: "compound", value: entity } };
6769
+ });
6770
+ const dataVersion = tags.DataVersion;
6771
+ if (dataVersion && (dataVersion.type !== "int" || !Number.isInteger(dataVersion.value))) {
6772
+ throw new MineRenderError("Schematic DataVersion must be an int");
6773
+ }
6774
+ return { size, blocks, entities, dataVersion: dataVersion?.value };
4892
6775
  }
4893
6776
  };
6777
+ function compoundList(tags, name) {
6778
+ const tag = tags[name];
6779
+ if (!tag) return [];
6780
+ if (tag.type === "list" && Array.isArray(tag.value.value)) {
6781
+ if (tag.value.value.length === 0) return [];
6782
+ if (tag.value.type === "compound") return tag.value.value;
6783
+ }
6784
+ throw new MineRenderError(`Schematic ${name} must be a compound list`);
6785
+ }
4894
6786
 
4895
6787
  // src/model/multiblock/StructureParser.ts
4896
6788
  var StructureParser = class {
@@ -4900,13 +6792,16 @@ var StructureParser = class {
4900
6792
  if ("palette" in nbt) {
4901
6793
  palette = nbt.palette;
4902
6794
  } else if ("palettes" in nbt) {
4903
- palette = nbt.palettes[paletteIndex ?? 0];
6795
+ const selected = nbt.palettes.value.value[paletteIndex ?? 0];
6796
+ if (!selected) throw new MineRenderError(`Structure palette ${paletteIndex ?? 0} does not exist`);
6797
+ palette = { type: "list", value: selected };
4904
6798
  } else {
4905
6799
  throw new MineRenderError("Structure does not have palette(s)");
4906
6800
  }
4907
6801
  const blocks = nbt.blocks.value.value.map((block) => {
4908
6802
  const state = palette.value.value[block.state.value];
4909
- if (state.Name.value === "minecraft:air") return void 0;
6803
+ if (!state) throw new MineRenderError(`Structure palette index ${block.state.value} does not exist`);
6804
+ if (["minecraft:air", "minecraft:cave_air", "minecraft:void_air"].includes(state.Name.value)) return void 0;
4910
6805
  const props = {};
4911
6806
  for (let k in state.Properties?.value) {
4912
6807
  props[k] = state.Properties.value[k].value;
@@ -4920,7 +6815,13 @@ var StructureParser = class {
4920
6815
  }).filter((m) => typeof m !== "undefined");
4921
6816
  return {
4922
6817
  blocks,
4923
- size: nbt.size.value.value
6818
+ size: nbt.size.value.value,
6819
+ dataVersion: nbt.DataVersion?.value,
6820
+ entities: (nbt.entities?.value.value ?? []).map((entity) => ({
6821
+ position: entity.pos.value.value,
6822
+ blockPosition: entity.blockPos.value.value,
6823
+ nbt: entity.nbt
6824
+ }))
4924
6825
  };
4925
6826
  }
4926
6827
  };
@@ -6035,11 +7936,12 @@ var MineRenderScene = class _MineRenderScene extends Scene2 {
6035
7936
  console.log("instanceMeshes + key");
6036
7937
  let key = asset.key.serialize();
6037
7938
  if (isModelObject(obj)) {
6038
- const { displayPosition, uvLockRotation, tints } = obj.options;
7939
+ const { displayPosition, uvLockRotation, tints, cullMask } = obj.options;
6039
7940
  if (displayPosition) key += `|display:${displayPosition}`;
6040
7941
  if (uvLockRotation) key += `|uvlock:${uvLockRotation.join(",")}`;
6041
7942
  const palette = Object.entries(tints ?? {}).sort(([a], [b]) => Number(a) - Number(b));
6042
7943
  if (palette.length) key += `|tints:${JSON.stringify(palette)}`;
7944
+ if (cullMask) key += `|cull:${cullMask}`;
6043
7945
  }
6044
7946
  return this.instanceManager.getOrCreate(key, async () => {
6045
7947
  obj.scene = this;
@@ -6083,7 +7985,7 @@ function isMineRenderScene(obj) {
6083
7985
  }
6084
7986
 
6085
7987
  // src/renderer/Renderer.ts
6086
- import { AxesHelper as AxesHelper2, GridHelper, OrthographicCamera, PCFSoftShadowMap, PerspectiveCamera, SRGBColorSpace as SRGBColorSpace4, Vector3 as Vector39, WebGLRenderer } from "three";
7988
+ import { AxesHelper as AxesHelper2, GridHelper, OrthographicCamera, PCFSoftShadowMap, PerspectiveCamera, SRGBColorSpace as SRGBColorSpace4, Vector3 as Vector310, WebGLRenderer } from "three";
6087
7989
  var import_ts_deepmerge9 = __toESM(require_dist());
6088
7990
  import Stats from "stats.js";
6089
7991
  import { EffectComposer, RenderPass } from "postprocessing";
@@ -6092,11 +7994,11 @@ import { EffectComposer, RenderPass } from "postprocessing";
6092
7994
  import {
6093
7995
  EventDispatcher,
6094
7996
  MOUSE,
6095
- Quaternion as Quaternion4,
7997
+ Quaternion as Quaternion5,
6096
7998
  Spherical,
6097
7999
  TOUCH,
6098
8000
  Vector2 as Vector23,
6099
- Vector3 as Vector38
8001
+ Vector3 as Vector39
6100
8002
  } from "three";
6101
8003
  var _changeEvent = { type: "change" };
6102
8004
  var _startEvent = { type: "start" };
@@ -6110,7 +8012,7 @@ var OrbitControls = class extends EventDispatcher {
6110
8012
  this.domElement = domElement;
6111
8013
  this.domElement.style.touchAction = "none";
6112
8014
  this.enabled = true;
6113
- this.target = new Vector38();
8015
+ this.target = new Vector39();
6114
8016
  this.minDistance = 0;
6115
8017
  this.maxDistance = Infinity;
6116
8018
  this.minZoom = 0;
@@ -6162,11 +8064,11 @@ var OrbitControls = class extends EventDispatcher {
6162
8064
  state = STATE.NONE;
6163
8065
  };
6164
8066
  this.update = function() {
6165
- const offset = new Vector38();
6166
- const quat = new Quaternion4().setFromUnitVectors(object.up, new Vector38(0, 1, 0));
8067
+ const offset = new Vector39();
8068
+ const quat = new Quaternion5().setFromUnitVectors(object.up, new Vector39(0, 1, 0));
6167
8069
  const quatInverse = quat.clone().invert();
6168
- const lastPosition = new Vector38();
6169
- const lastQuaternion = new Quaternion4();
8070
+ const lastPosition = new Vector39();
8071
+ const lastQuaternion = new Quaternion5();
6170
8072
  const twoPI = 2 * Math.PI;
6171
8073
  return function update() {
6172
8074
  const position = scope.object.position;
@@ -6255,7 +8157,7 @@ var OrbitControls = class extends EventDispatcher {
6255
8157
  const spherical = new Spherical();
6256
8158
  const sphericalDelta = new Spherical();
6257
8159
  let scale = 1;
6258
- const panOffset = new Vector38();
8160
+ const panOffset = new Vector39();
6259
8161
  let zoomChanged = false;
6260
8162
  const rotateStart = new Vector23();
6261
8163
  const rotateEnd = new Vector23();
@@ -6281,7 +8183,7 @@ var OrbitControls = class extends EventDispatcher {
6281
8183
  sphericalDelta.phi -= angle;
6282
8184
  }
6283
8185
  const panLeft = function() {
6284
- const v = new Vector38();
8186
+ const v = new Vector39();
6285
8187
  return function panLeft2(distance, objectMatrix) {
6286
8188
  v.setFromMatrixColumn(objectMatrix, 0);
6287
8189
  v.multiplyScalar(-distance);
@@ -6289,7 +8191,7 @@ var OrbitControls = class extends EventDispatcher {
6289
8191
  };
6290
8192
  }();
6291
8193
  const panUp = function() {
6292
- const v = new Vector38();
8194
+ const v = new Vector39();
6293
8195
  return function panUp2(distance, objectMatrix) {
6294
8196
  if (scope.screenSpacePanning === true) {
6295
8197
  v.setFromMatrixColumn(objectMatrix, 1);
@@ -6302,7 +8204,7 @@ var OrbitControls = class extends EventDispatcher {
6302
8204
  };
6303
8205
  }();
6304
8206
  const pan = function() {
6305
- const offset = new Vector38();
8207
+ const offset = new Vector39();
6306
8208
  return function pan2(deltaX, deltaY) {
6307
8209
  const element = scope.domElement;
6308
8210
  if (scope.object.isPerspectiveCamera) {
@@ -6779,8 +8681,8 @@ var Renderer = class _Renderer {
6779
8681
  top: void 0,
6780
8682
  bottom: void 0
6781
8683
  },
6782
- position: new Vector39(50, 50, 50),
6783
- lookingAt: new Vector39(0, 0, 0)
8684
+ position: new Vector310(50, 50, 50),
8685
+ lookingAt: new Vector310(0, 0, 0)
6784
8686
  },
6785
8687
  render: {
6786
8688
  fpsLimit: 60,
@@ -7238,9 +9140,6 @@ var Skins = class {
7238
9140
  //</editor-fold>
7239
9141
  };
7240
9142
 
7241
- // src/world/Chunk.ts
7242
- import { Vector3 as Vector311 } from "three";
7243
-
7244
9143
  // src/world/ChunkData.ts
7245
9144
  var ChunkData = class _ChunkData {
7246
9145
  constructor() {
@@ -7322,29 +9221,204 @@ var ChunkData = class _ChunkData {
7322
9221
  }
7323
9222
  };
7324
9223
 
9224
+ // src/world/AnvilParser.ts
9225
+ var AnvilParser = class {
9226
+ static getChunkList(data) {
9227
+ return this.locations(this.bytes(data)).map(({ x, z }) => ({ x, z }));
9228
+ }
9229
+ static async parse(data) {
9230
+ const bytes = this.bytes(data);
9231
+ const chunks = [];
9232
+ for (const location of this.locations(bytes)) chunks.push(await this.readChunk(bytes, location));
9233
+ return { chunks };
9234
+ }
9235
+ static async parseChunk(data, localX, localZ) {
9236
+ if (![localX, localZ].every((value) => Number.isInteger(value) && value >= 0 && value < 32)) {
9237
+ throw new RangeError("Region-local chunk coordinates must be integers from 0 to 31");
9238
+ }
9239
+ const bytes = this.bytes(data);
9240
+ const location = this.locations(bytes).find(({ x, z }) => x === localX && z === localZ);
9241
+ return location ? this.readChunk(bytes, location) : void 0;
9242
+ }
9243
+ static bytes(data) {
9244
+ return data instanceof Uint8Array ? data : new Uint8Array(data);
9245
+ }
9246
+ static locations(data) {
9247
+ if (data.byteLength < 8192) throw new MineRenderError("Anvil region header is truncated");
9248
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
9249
+ const locations = [];
9250
+ for (let index = 0; index < 1024; index++) {
9251
+ const entry = view.getUint32(index * 4);
9252
+ if (entry === 0) continue;
9253
+ const sector = entry >>> 8;
9254
+ const count = entry & 255;
9255
+ if (sector < 2 || count === 0 || (sector + count) * 4096 > data.byteLength) {
9256
+ throw new MineRenderError(`Invalid Anvil sector allocation at chunk ${index % 32},${Math.floor(index / 32)}`);
9257
+ }
9258
+ const offset = sector * 4096;
9259
+ const length = view.getUint32(offset);
9260
+ if (length < 1 || length + 4 > count * 4096) {
9261
+ throw new MineRenderError(`Invalid Anvil chunk payload length at sector ${sector}`);
9262
+ }
9263
+ locations.push({ x: index % 32, z: Math.floor(index / 32), offset, length });
9264
+ }
9265
+ return locations;
9266
+ }
9267
+ static async readChunk(data, location) {
9268
+ const compression = data[location.offset + 4];
9269
+ if (compression & 128) throw new MineRenderError("External Anvil .mcc chunks are not supported");
9270
+ if (compression !== 1 && compression !== 2 && compression !== 3) {
9271
+ throw new MineRenderError(`Unsupported Anvil compression ${compression}${compression === 4 ? " (LZ4)" : ""}`);
9272
+ }
9273
+ let payload = data.subarray(location.offset + 5, location.offset + 4 + location.length);
9274
+ if (compression !== 3) {
9275
+ const stream = new Blob([payload]).stream().pipeThrough(new DecompressionStream(compression === 1 ? "gzip" : "deflate"));
9276
+ payload = new Uint8Array(await new Response(stream).arrayBuffer());
9277
+ }
9278
+ const nbt = await NBTHelper.fromBuffer(payload, "big");
9279
+ const root = nbt.value;
9280
+ const level = root.Level?.type === "compound" ? root.Level.value : root;
9281
+ const dataVersion = root.DataVersion?.type === "int" ? root.DataVersion.value : void 0;
9282
+ const chunk = {
9283
+ x: this.integer(level.xPos, "xPos"),
9284
+ z: this.integer(level.zPos, "zPos"),
9285
+ dataVersion,
9286
+ sections: []
9287
+ };
9288
+ if ((chunk.x % 32 + 32) % 32 !== location.x || (chunk.z % 32 + 32) % 32 !== location.z) {
9289
+ throw new MineRenderError("Anvil chunk coordinates do not match its region location");
9290
+ }
9291
+ for (const section of this.compounds(level.sections ?? level.Sections, "sections")) {
9292
+ const y = this.integer(section.Y, "section Y");
9293
+ if (section.Blocks || section.Data || section.Add) {
9294
+ throw new MineRenderError("Numeric Anvil block IDs before Minecraft 1.13 are not supported");
9295
+ }
9296
+ if (section.block_states && section.block_states.type !== "compound") {
9297
+ throw new MineRenderError("Anvil block_states must be a compound");
9298
+ }
9299
+ const modern = section.block_states?.type === "compound" ? section.block_states.value : void 0;
9300
+ const paletteTag = modern ? modern.palette : section.Palette;
9301
+ const palette = paletteTag?.type === "list" && paletteTag.value.type === "string" ? paletteTag.value.value : this.compounds(paletteTag, "block palette");
9302
+ const data2 = new ChunkData();
9303
+ if (palette.length) {
9304
+ const states = palette.map((entry) => this.block(entry));
9305
+ const indices = this.unpack(modern ? modern.data : section.BlockStates, states.length, !!modern, dataVersion);
9306
+ for (let index = 0; index < 4096; index++) {
9307
+ const state = states[indices[index]];
9308
+ if (!state) throw new MineRenderError(`Anvil palette index ${indices[index]} is out of range`);
9309
+ if (!ChunkData.isAir(state)) data2.set(index, state);
9310
+ }
9311
+ } else if (modern || section.Palette || section.BlockStates) {
9312
+ throw new MineRenderError("Anvil section has block states without a palette");
9313
+ }
9314
+ if (chunk.sections.some((section2) => section2.y === y)) throw new MineRenderError(`Duplicate Anvil section Y ${y}`);
9315
+ chunk.sections.push({ y, data: data2 });
9316
+ }
9317
+ for (const entry of this.compounds(level.block_entities ?? level.TileEntities, "block entities")) {
9318
+ const x = this.integer(entry.x, "block entity x") - chunk.x * 16;
9319
+ const y = this.integer(entry.y, "block entity y");
9320
+ const z = this.integer(entry.z, "block entity z") - chunk.z * 16;
9321
+ const sectionY = Math.floor(y / 16);
9322
+ const section = chunk.sections.find((section2) => section2.y === sectionY);
9323
+ if (!section || x < 0 || x >= 16 || z < 0 || z >= 16) continue;
9324
+ const index = x + z * 16 + (y - sectionY * 16) * 256;
9325
+ const block = section.data.get(index);
9326
+ if (block) section.data.set(index, { ...block, nbt: { type: "compound", value: entry } });
9327
+ }
9328
+ const entities = this.compounds(level.entities ?? level.Entities, "entities");
9329
+ if (entities.length) {
9330
+ chunk.entities = entities.map((value) => {
9331
+ const position = value.Pos;
9332
+ if (position?.type !== "list" || position.value.type !== "double" || position.value.value.length !== 3 || !position.value.value.every(Number.isFinite)) {
9333
+ throw new MineRenderError("Anvil entity Pos must contain three coordinates");
9334
+ }
9335
+ return { position: [...position.value.value], nbt: { type: "compound", value } };
9336
+ });
9337
+ }
9338
+ return chunk;
9339
+ }
9340
+ static compounds(tag, name) {
9341
+ if (!tag) return [];
9342
+ if (tag.type !== "list" || tag.value.type !== "compound" && tag.value.value.length !== 0) {
9343
+ throw new MineRenderError(`Anvil ${name} must be a compound list`);
9344
+ }
9345
+ return tag.value.value;
9346
+ }
9347
+ static integer(tag, name) {
9348
+ if (!tag || typeof tag.value !== "number" || !Number.isInteger(tag.value)) {
9349
+ throw new MineRenderError(`Anvil ${name} must be an integer`);
9350
+ }
9351
+ return tag.value;
9352
+ }
9353
+ static block(entry) {
9354
+ if (typeof entry === "string") entry = { id: { type: "string", value: entry } };
9355
+ if (Object.keys(entry).length === 1 && entry[""]?.type === "string") entry = { id: entry[""] };
9356
+ const name = entry.id ?? entry.Name;
9357
+ const properties = entry.properties ?? entry.Properties;
9358
+ if (name?.type !== "string" || !name.value) throw new MineRenderError("Anvil palette entry has no block name");
9359
+ const block = { type: name.value };
9360
+ if (properties?.type === "compound") {
9361
+ block.properties = {};
9362
+ for (const [key, value] of Object.entries(properties.value)) {
9363
+ if (value?.type !== "string") throw new MineRenderError("Anvil block properties must be strings");
9364
+ block.properties[key] = value.value;
9365
+ }
9366
+ }
9367
+ return block;
9368
+ }
9369
+ static unpack(tag, paletteSize, modern, dataVersion) {
9370
+ const indices = new Uint16Array(4096);
9371
+ if (paletteSize === 1 && (!tag || tag.type === "longArray" && tag.value.length === 0)) return indices;
9372
+ if (tag?.type !== "longArray") throw new MineRenderError("Anvil section is missing its block-state long array");
9373
+ const bits = Math.max(4, Math.ceil(Math.log2(paletteSize)));
9374
+ if (paletteSize > 4096) throw new MineRenderError("Anvil block palette exceeds 4096 entries");
9375
+ if (!modern && dataVersion === void 0 && 64 % bits !== 0) {
9376
+ throw new MineRenderError("Anvil DataVersion is required to decode this block-state layout");
9377
+ }
9378
+ const padded = modern || (dataVersion ?? 0) >= 2527;
9379
+ const perLong = Math.floor(64 / bits);
9380
+ const expected = padded ? Math.ceil(4096 / perLong) : Math.ceil(4096 * bits / 64);
9381
+ if (tag.value.length !== expected) throw new MineRenderError(`Invalid Anvil block-state array length: expected ${expected}`);
9382
+ const words = tag.value.map(([high, low]) => BigInt(high >>> 0) << 32n | BigInt(low >>> 0));
9383
+ const mask = (1n << BigInt(bits)) - 1n;
9384
+ for (let index = 0; index < 4096; index++) {
9385
+ const word = padded ? Math.floor(index / perLong) : Math.floor(index * bits / 64);
9386
+ const shift = padded ? index % perLong * bits : index * bits % 64;
9387
+ let value = words[word] >> BigInt(shift);
9388
+ if (!padded && shift + bits > 64) value |= words[word + 1] << BigInt(64 - shift);
9389
+ indices[index] = Number(value & mask);
9390
+ }
9391
+ return indices;
9392
+ }
9393
+ };
9394
+
9395
+ // src/world/Chunk.ts
9396
+ import { Vector3 as Vector312 } from "three";
9397
+
7325
9398
  // src/world/MineRenderWorld.ts
7326
- import { Vector3 as Vector310 } from "three";
9399
+ import { Vector3 as Vector311 } from "three";
7327
9400
  var MineRenderWorld = class {
7328
9401
  constructor(scene) {
7329
9402
  this._chunks = /* @__PURE__ */ new Map();
9403
+ this.pendingCulling = /* @__PURE__ */ new Map();
7330
9404
  this.scene = scene;
7331
9405
  }
7332
9406
  getBlockAt(posOrX, y, z) {
7333
9407
  if (typeof posOrX == "number") {
7334
- return this.getBlockAt(new Vector310(posOrX, y, z));
9408
+ return this.getBlockAt(new Vector311(posOrX, y, z));
7335
9409
  }
7336
9410
  if (isTripleArray(posOrX)) {
7337
- return this.getBlockAt(new Vector310(posOrX[0], posOrX[1], posOrX[2]));
9411
+ return this.getBlockAt(new Vector311(posOrX[0], posOrX[1], posOrX[2]));
7338
9412
  }
7339
9413
  this.validatePosBounds(posOrX);
7340
9414
  return this.getChunkAt(posOrX)?.getBlockAt(posOrX);
7341
9415
  }
7342
9416
  async setBlockAt(posOrX, yOrBlock, z, block) {
7343
9417
  if (typeof posOrX == "number") {
7344
- return this.setBlockAt(new Vector310(posOrX, yOrBlock, z), block);
9418
+ return this.setBlockAt(new Vector311(posOrX, yOrBlock, z), block);
7345
9419
  }
7346
9420
  if (isTripleArray(posOrX)) {
7347
- return this.setBlockAt(new Vector310(posOrX[0], posOrX[1], posOrX[2]), yOrBlock);
9421
+ return this.setBlockAt(new Vector311(posOrX[0], posOrX[1], posOrX[2]), yOrBlock);
7348
9422
  }
7349
9423
  this.validatePosBounds(posOrX);
7350
9424
  const value = yOrBlock;
@@ -7386,17 +9460,78 @@ var MineRenderWorld = class {
7386
9460
  if (!executor) queue.stop();
7387
9461
  }
7388
9462
  }
9463
+ /** Replaces one chunk column's blocks. Entity NBT remains available on the parsed chunk. */
9464
+ async placeChunk(chunk, executor) {
9465
+ const previous = [...this._chunks.entries()].filter(([, section]) => section.x === chunk.x && section.z === chunk.z);
9466
+ for (const [key, section] of previous) {
9467
+ this._chunks.delete(key);
9468
+ await section.dispose();
9469
+ }
9470
+ for (const section of chunk.sections) {
9471
+ const blocks = [];
9472
+ for (let index = 0; index < 4096; index++) {
9473
+ const block = section.data.get(index);
9474
+ if (block) blocks.push({
9475
+ ...block,
9476
+ position: [
9477
+ chunk.x * 16 + index % 16,
9478
+ section.y * 16 + Math.floor(index / 256),
9479
+ chunk.z * 16 + Math.floor(index / 16) % 16
9480
+ ]
9481
+ });
9482
+ }
9483
+ await this.placeMultiBlock({ size: [16, 16, 16], blocks }, true, executor);
9484
+ }
9485
+ }
7389
9486
  async clear() {
7390
- for (const chunk of this._chunks.values()) {
9487
+ await this.culling;
9488
+ const chunks = [...this._chunks.values()];
9489
+ this._chunks.clear();
9490
+ for (const chunk of chunks) {
7391
9491
  await chunk.dispose();
7392
9492
  }
7393
- this._chunks.clear();
9493
+ }
9494
+ updateCulling(positions) {
9495
+ for (const pos of positions) {
9496
+ this.pendingCulling.set(pos.toArray().join(","), pos.clone());
9497
+ for (const offset of CUBE_FACE_OFFSETS) {
9498
+ const neighbor = pos.clone().add(new Vector311(...offset));
9499
+ this.pendingCulling.set(neighbor.toArray().join(","), neighbor);
9500
+ }
9501
+ }
9502
+ return this.culling ??= Promise.resolve().then(async () => {
9503
+ try {
9504
+ while (this.pendingCulling.size) {
9505
+ const batch = [...this.pendingCulling.values()];
9506
+ this.pendingCulling.clear();
9507
+ for (const pos of batch) {
9508
+ const block = this.getBlockAt(pos)?.object;
9509
+ if (!block) continue;
9510
+ let mask = 0;
9511
+ for (const [face, offset] of CUBE_FACE_OFFSETS.entries()) {
9512
+ if (this.getBlockAt(pos.clone().add(new Vector311(...offset)))?.object.isOccluding) {
9513
+ mask |= 1 << face;
9514
+ }
9515
+ }
9516
+ await block.setCullMask(mask);
9517
+ }
9518
+ }
9519
+ } finally {
9520
+ this.culling = void 0;
9521
+ }
9522
+ });
7394
9523
  }
7395
9524
  getOrCreateChunkAt(pos) {
7396
9525
  const key = this.worldPosToChunkKey(pos);
7397
9526
  let chunk = this._chunks.get(key);
7398
9527
  if (typeof chunk === "undefined") {
7399
- chunk = new Chunk(this.scene, Math.floor(pos.x / 16), Math.floor(pos.y / 16), Math.floor(pos.z / 16));
9528
+ chunk = new Chunk(
9529
+ this.scene,
9530
+ Math.floor(pos.x / 16),
9531
+ Math.floor(pos.y / 16),
9532
+ Math.floor(pos.z / 16),
9533
+ (positions) => this.updateCulling(positions)
9534
+ );
7400
9535
  this._chunks.set(key, chunk);
7401
9536
  }
7402
9537
  return chunk;
@@ -7405,14 +9540,14 @@ var MineRenderWorld = class {
7405
9540
  return this._chunks.get(this.worldPosToChunkKey(pos));
7406
9541
  }
7407
9542
  static worldToScenePosition(pos) {
7408
- return new Vector310(
9543
+ return new Vector311(
7409
9544
  pos.x * 16,
7410
9545
  pos.y * 16,
7411
9546
  pos.z * 16
7412
9547
  );
7413
9548
  }
7414
9549
  static sceneToWorldPosition(pos) {
7415
- return new Vector310(
9550
+ return new Vector311(
7416
9551
  pos.x / 16,
7417
9552
  pos.y / 16,
7418
9553
  pos.z / 16
@@ -7433,7 +9568,8 @@ var MineRenderWorld = class {
7433
9568
 
7434
9569
  // src/world/Chunk.ts
7435
9570
  var Chunk = class _Chunk {
7436
- constructor(scene, x, y, z) {
9571
+ constructor(scene, x, y, z, onBlocksChanged) {
9572
+ this.onBlocksChanged = onBlocksChanged;
7437
9573
  this.data = new ChunkData();
7438
9574
  this.renderedBlocks = /* @__PURE__ */ new Map();
7439
9575
  this.scene = scene;
@@ -7443,10 +9579,10 @@ var Chunk = class _Chunk {
7443
9579
  }
7444
9580
  getBlockAt(posOrX, y, z) {
7445
9581
  if (typeof posOrX == "number") {
7446
- return this.getBlockAt(new Vector311(posOrX, y, z));
9582
+ return this.getBlockAt(new Vector312(posOrX, y, z));
7447
9583
  }
7448
9584
  if (isTripleArray(posOrX)) {
7449
- return this.getBlockAt(new Vector311(posOrX[0], posOrX[1], posOrX[2]));
9585
+ return this.getBlockAt(new Vector312(posOrX[0], posOrX[1], posOrX[2]));
7450
9586
  }
7451
9587
  const pos = this.worldPosToChunkPos(posOrX);
7452
9588
  const index = _Chunk.chunkPosToBlockIndex(pos);
@@ -7454,10 +9590,10 @@ var Chunk = class _Chunk {
7454
9590
  }
7455
9591
  async setBlockAt(posOrX, yOrBlock, z, block) {
7456
9592
  if (typeof posOrX == "number") {
7457
- return this.setBlockAt(new Vector311(posOrX, yOrBlock, z), block);
9593
+ return this.setBlockAt(new Vector312(posOrX, yOrBlock, z), block);
7458
9594
  }
7459
9595
  if (isTripleArray(posOrX)) {
7460
- return this.setBlockAt(new Vector311(posOrX[0], posOrX[1], posOrX[2]), yOrBlock);
9596
+ return this.setBlockAt(new Vector312(posOrX[0], posOrX[1], posOrX[2]), yOrBlock);
7461
9597
  }
7462
9598
  const worldPos = posOrX;
7463
9599
  const pos = this.worldPosToChunkPos(worldPos);
@@ -7476,10 +9612,10 @@ var Chunk = class _Chunk {
7476
9612
  const readBlock = this.data.snapshot(index);
7477
9613
  this.renderedBlocks.get(index)?.object.removeFromScene();
7478
9614
  this.renderedBlocks.delete(index);
7479
- if (!readBlock) return void 0;
7480
- const stored = readBlock();
7481
9615
  let object;
7482
9616
  try {
9617
+ if (!readBlock) return void 0;
9618
+ const stored = readBlock();
7483
9619
  const blockState = await BlockStates.get(AssetKey.parse("blockstates", stored.type));
7484
9620
  if (!blockState) {
7485
9621
  this.data.set(index, void 0);
@@ -7501,12 +9637,18 @@ var Chunk = class _Chunk {
7501
9637
  this.data.set(index, void 0);
7502
9638
  object?.removeFromScene();
7503
9639
  throw error;
9640
+ } finally {
9641
+ await this.onBlocksChanged?.([worldPos]);
7504
9642
  }
7505
9643
  }
7506
9644
  async clear() {
9645
+ const positions = [...this.renderedBlocks.keys()].map((index) => this.chunkPosToWorldPos(
9646
+ new Vector312(index % 16, Math.floor(index / 256), Math.floor(index / 16) % 16)
9647
+ ));
7507
9648
  for (const info of this.renderedBlocks.values()) info.object.removeFromScene();
7508
9649
  this.renderedBlocks.clear();
7509
9650
  this.data.clear();
9651
+ await this.onBlocksChanged?.(positions);
7510
9652
  }
7511
9653
  async dispose() {
7512
9654
  await this.clear();
@@ -7521,14 +9663,14 @@ var Chunk = class _Chunk {
7521
9663
  return pos.y * 16 * 16 + pos.z * 16 + pos.x;
7522
9664
  }
7523
9665
  worldPosToChunkPos(pos) {
7524
- return new Vector311(
9666
+ return new Vector312(
7525
9667
  pos.x - this.x * 16,
7526
9668
  pos.y - this.y * 16,
7527
9669
  pos.z - this.z * 16
7528
9670
  );
7529
9671
  }
7530
9672
  chunkPosToWorldPos(pos) {
7531
- return new Vector311(
9673
+ return new Vector312(
7532
9674
  this.x * 16 + pos.x,
7533
9675
  this.y * 16 + pos.y,
7534
9676
  this.z * 16 + pos.z
@@ -7537,6 +9679,7 @@ var Chunk = class _Chunk {
7537
9679
  };
7538
9680
  export {
7539
9681
  AXES,
9682
+ AnvilParser,
7540
9683
  ArchiveAssetSource,
7541
9684
  AssetKey,
7542
9685
  AssetLoadError,
@@ -7554,6 +9697,7 @@ export {
7554
9697
  BlockTints,
7555
9698
  BrowserArchiveProxy,
7556
9699
  CUBE_FACES,
9700
+ CUBE_FACE_OFFSETS,
7557
9701
  Caching,
7558
9702
  CanvasImage,
7559
9703
  Chunk,
@@ -7587,6 +9731,7 @@ export {
7587
9731
  MineRenderWorld,
7588
9732
  MinecraftCubeTexture,
7589
9733
  MinecraftFaceUV,
9734
+ ModelCulling,
7590
9735
  ModelGenerator,
7591
9736
  ModelMerger,
7592
9737
  ModelObject,