Minimize/optimize mapping data files

This commit is contained in:
Nassim Jahnke 2023-03-03 22:00:00 +01:00
parent d94ed4ebd4
commit 51d4e11b5f
No known key found for this signature in database
GPG Key ID: 6BE3B555EBC5982B
80 changed files with 571 additions and 230248 deletions

View File

@ -22,34 +22,26 @@
*/
package com.viaversion.viaversion.api.data;
import com.google.gson.JsonArray;
import com.viaversion.viaversion.util.Key;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import java.util.List;
import org.checkerframework.checker.nullness.qual.Nullable;
public class FullMappingsBase implements FullMappings {
private static final String[] EMPTY_ARRAY = new String[0];
private final Object2IntMap<String> stringToId;
private final Object2IntMap<String> mappedStringToId;
private final String[] idToString;
private final String[] mappedIdToString;
private final Mappings mappings;
public FullMappingsBase(final JsonArray oldMappings, final JsonArray newMappings, final Mappings mappings) {
public FullMappingsBase(final List<String> unmappedIdentifiers, final List<String> mappedIdentifiers, final Mappings mappings) {
this.mappings = mappings;
stringToId = MappingDataLoader.arrayToMap(oldMappings);
mappedStringToId = MappingDataLoader.arrayToMap(newMappings);
stringToId.defaultReturnValue(-1);
mappedStringToId.defaultReturnValue(-1);
idToString = new String[oldMappings.size()];
for (int i = 0; i < oldMappings.size(); i++) {
idToString[i] = oldMappings.get(i).getAsString();
}
mappedIdToString = new String[newMappings.size()];
for (int i = 0; i < newMappings.size(); i++) {
mappedIdToString[i] = newMappings.get(i).getAsString();
}
this.stringToId = toInverseMap(unmappedIdentifiers);
this.mappedStringToId = toInverseMap(mappedIdentifiers);
this.idToString = unmappedIdentifiers.toArray(EMPTY_ARRAY);
this. mappedIdToString = mappedIdentifiers.toArray(EMPTY_ARRAY);
}
@Override
@ -58,7 +50,7 @@ public class FullMappingsBase implements FullMappings {
}
@Override
public int id(String identifier) {
public int id(final String identifier) {
return stringToId.getInt(Key.stripMinecraftNamespace(identifier));
}
@ -89,4 +81,13 @@ public class FullMappingsBase implements FullMappings {
final int mappedId = mappings.getNewId(id);
return mappedId != -1 ? mappedIdentifier(mappedId) : null;
}
private static Object2IntMap<String> toInverseMap(final List<String> list) {
final Object2IntMap<String> map = new Object2IntOpenHashMap<>(list.size());
map.defaultReturnValue(-1);
for (int i = 0; i < list.size(); i++) {
map.put(list.get(i), i);
}
return map;
}
}

View File

@ -0,0 +1,54 @@
/*
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
* Copyright (C) 2023 ViaVersion and contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package com.viaversion.viaversion.api.data;
public class IdentityMappings implements Mappings {
private final int size;
private final int mappedSize;
public IdentityMappings(final int size, final int mappedSize) {
this.size = size;
this.mappedSize = mappedSize;
}
@Override
public int getNewId(final int id) {
return id >= 0 && id < size ? id : -1;
}
@Override
public void setNewId(final int id, final int mappedId) {
throw new UnsupportedOperationException();
}
@Override
public int size() {
return size;
}
@Override
public int mappedSize() {
return mappedSize;
}
}

View File

@ -55,8 +55,8 @@ public class Int2IntMapBiMappings implements BiMappings {
}
@Override
public void setNewId(final int id, final int newId) {
mappings.put(id, newId);
public void setNewId(final int id, final int mappedId) {
mappings.put(id, mappedId);
}
@Override

View File

@ -49,8 +49,8 @@ public class Int2IntMapMappings implements Mappings {
}
@Override
public void setNewId(final int id, final int newId) {
mappings.put(id, newId);
public void setNewId(final int id, final int mappedId) {
mappings.put(id, mappedId);
}
@Override

View File

@ -29,18 +29,34 @@ public class IntArrayBiMappings implements BiMappings {
private final Mappings mappings;
private final IntArrayBiMappings inverse;
protected IntArrayBiMappings(final Mappings mappings, final Mappings inverseMappings) {
protected IntArrayBiMappings(final IntArrayMappings mappings) {
this.mappings = mappings;
this.inverse = new IntArrayBiMappings(inverseMappings, this);
final int[] raw = mappings.raw();
final int[] inverseMappings = new int[mappings.mappedSize()];
Arrays.fill(inverseMappings, -1);
for (int id = 0; id < raw.length; id++) {
final int mappedId = raw[id];
inverseMappings[mappedId] = id;
}
this.inverse = new IntArrayBiMappings(new IntArrayMappings(inverseMappings, raw.length), this);
}
private IntArrayBiMappings(final Mappings mappings, final IntArrayBiMappings inverse) {
protected IntArrayBiMappings(final Mappings mappings, final IntArrayBiMappings inverse) {
this.mappings = mappings;
this.inverse = inverse;
}
private IntArrayBiMappings(final int[] mappings, final int mappedIds) {
this(new IntArrayMappings(mappings, mappedIds));
}
public static IntArrayBiMappings of(final IntArrayMappings mappings) {
return new IntArrayBiMappings(mappings);
}
public static Mappings.Builder<IntArrayBiMappings> builder() {
return new Builder(IntArrayMappings::new);
return new Builder<>(IntArrayBiMappings::new);
}
@Override
@ -54,9 +70,9 @@ public class IntArrayBiMappings implements BiMappings {
}
@Override
public void setNewId(final int id, final int newId) {
mappings.setNewId(id, newId);
inverse.mappings.setNewId(newId, id);
public void setNewId(final int id, final int mappedId) {
mappings.setNewId(id, mappedId);
inverse.mappings.setNewId(mappedId, id);
}
@Override
@ -68,34 +84,4 @@ public class IntArrayBiMappings implements BiMappings {
public int mappedSize() {
return mappings.mappedSize();
}
public static final class Builder extends Mappings.Builder<IntArrayBiMappings> {
private final MappingsSupplier<?> supplier;
private Builder(final MappingsSupplier<?> supplier) {
super(null);
this.supplier = supplier;
}
@Override
public IntArrayBiMappings build() {
final int size = this.size != -1 ? this.size : size(unmapped);
final int mappedSize = this.mappedSize != -1 ? this.mappedSize : size(mapped);
final int[] mappingsArray = new int[size];
final int[] inverseMappingsArray = new int[mappedSize];
Arrays.fill(mappingsArray, -1);
Arrays.fill(inverseMappingsArray, -1);
final Mappings mappings = supplier.supply(mappingsArray, mappedSize);
final Mappings inverseMappings = supplier.supply(inverseMappingsArray, size);
if (unmapped.isJsonArray() && mapped.isJsonArray()) {
MappingDataLoader.mapIdentifiers(mappings, inverseMappings, unmapped.getAsJsonArray(), mapped.getAsJsonArray(), diffMappings, true);
} else {
throw new UnsupportedOperationException();
}
return new IntArrayBiMappings(mappings, inverseMappings);
}
}
}

View File

@ -22,105 +22,36 @@
*/
package com.viaversion.viaversion.api.data;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import java.util.Arrays;
import org.checkerframework.checker.nullness.qual.Nullable;
public class IntArrayMappings implements Mappings {
private final int[] oldToNew;
private final int[] mappings;
private final int mappedIds;
protected IntArrayMappings(final int[] oldToNew, final int mappedIds) {
this.oldToNew = oldToNew;
protected IntArrayMappings(final int[] mappings, final int mappedIds) {
this.mappings = mappings;
this.mappedIds = mappedIds;
}
public static IntArrayMappings of(final int[] oldToNew, final int mappedIds) {
return new IntArrayMappings(oldToNew, mappedIds);
public static IntArrayMappings of(final int[] mappings, final int mappedIds) {
return new IntArrayMappings(mappings, mappedIds);
}
public static Builder<IntArrayMappings> builder() {
return Mappings.builder(IntArrayMappings::new);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(int[] oldToNew) {
this(oldToNew, -1);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(int size, JsonObject oldMapping, JsonObject newMapping, @Nullable JsonObject diffMapping) {
oldToNew = new int[size];
Arrays.fill(oldToNew, -1);
this.mappedIds = newMapping.size();
MappingDataLoader.mapIdentifiers(oldToNew, oldMapping, newMapping, diffMapping);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(JsonObject oldMapping, JsonObject newMapping, @Nullable JsonObject diffMapping) {
this(oldMapping.entrySet().size(), oldMapping, newMapping, diffMapping);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(int size, JsonObject oldMapping, JsonObject newMapping) {
oldToNew = new int[size];
Arrays.fill(oldToNew, -1);
mappedIds = -1;
MappingDataLoader.mapIdentifiers(oldToNew, oldMapping, newMapping);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(JsonObject oldMapping, JsonObject newMapping) {
this(oldMapping.entrySet().size(), oldMapping, newMapping);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(int size, JsonArray oldMapping, JsonArray newMapping, JsonObject diffMapping, boolean warnOnMissing) {
oldToNew = new int[size];
Arrays.fill(oldToNew, -1);
mappedIds = -1;
MappingDataLoader.mapIdentifiers(oldToNew, oldMapping, newMapping, diffMapping, warnOnMissing);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(int size, JsonArray oldMapping, JsonArray newMapping, boolean warnOnMissing) {
this(size, oldMapping, newMapping, null, warnOnMissing);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(JsonArray oldMapping, JsonArray newMapping, boolean warnOnMissing) {
this(oldMapping.size(), oldMapping, newMapping, warnOnMissing);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(int size, JsonArray oldMapping, JsonArray newMapping) {
this(size, oldMapping, newMapping, true);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(JsonArray oldMapping, JsonArray newMapping, JsonObject diffMapping) {
this(oldMapping.size(), oldMapping, newMapping, diffMapping, true);
}
@Deprecated/*(forRemoval = true)*/
public IntArrayMappings(JsonArray oldMapping, JsonArray newMapping) {
this(oldMapping.size(), oldMapping, newMapping, true);
}
@Override
public int getNewId(int id) {
return id >= 0 && id < oldToNew.length ? oldToNew[id] : -1;
return id >= 0 && id < mappings.length ? mappings[id] : -1;
}
@Override
public void setNewId(int id, int newId) {
oldToNew[id] = newId;
public void setNewId(int id, int mappedId) {
mappings[id] = mappedId;
}
@Override
public int size() {
return oldToNew.length;
return mappings.length;
}
@Override
@ -128,7 +59,7 @@ public class IntArrayMappings implements Mappings {
return mappedIds;
}
public int[] getOldToNew() {
return oldToNew;
public int[] raw() {
return mappings;
}
}

View File

@ -22,25 +22,25 @@
*/
package com.viaversion.viaversion.api.data;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.github.steveice10.opennbt.tag.builtin.IntArrayTag;
import com.github.steveice10.opennbt.tag.builtin.ListTag;
import com.github.steveice10.opennbt.tag.builtin.Tag;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.minecraft.RegistryType;
import com.viaversion.viaversion.api.minecraft.TagData;
import com.viaversion.viaversion.util.Key;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import org.checkerframework.checker.nullness.qual.Nullable;
public class MappingDataBase implements MappingData {
protected final String oldVersion;
protected final String newVersion;
protected final boolean hasDiffFile;
protected final String unmappedVersion;
protected final String mappedVersion;
protected BiMappings itemMappings;
protected FullMappings argumentTypeMappings;
protected FullMappings entityMappings;
@ -54,111 +54,113 @@ public class MappingDataBase implements MappingData {
protected Mappings paintingMappings;
protected Map<RegistryType, List<TagData>> tags;
public MappingDataBase(String unmappedVersion, String mappedVersion) {
this(unmappedVersion, mappedVersion, false);
}
public MappingDataBase(String unmappedVersion, String mappedVersion, boolean hasDiffFile) {
this.oldVersion = unmappedVersion;
this.newVersion = mappedVersion;
this.hasDiffFile = hasDiffFile;
public MappingDataBase(final String unmappedVersion, final String mappedVersion) {
this.unmappedVersion = unmappedVersion;
this.mappedVersion = mappedVersion;
}
@Override
public void load() {
if (Via.getManager().isDebug()) {
getLogger().info("Loading " + oldVersion + " -> " + newVersion + " mappings...");
}
JsonObject diffmapping = hasDiffFile ? loadDiffFile() : null;
JsonObject unmappedIdentifiers = MappingDataLoader.loadData("mapping-" + oldVersion + ".json", true);
JsonObject mappedIdentifiers = MappingDataLoader.loadData("mapping-" + newVersion + ".json", true);
blockMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "blocks");
blockStateMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "blockstates");
blockEntityMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "blockentities");
soundMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "sounds");
statisticsMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "statistics");
enchantmentMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "enchantments");
paintingMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "paintings");
entityMappings = loadFullMappings(unmappedIdentifiers, mappedIdentifiers, diffmapping, "entities");
argumentTypeMappings = loadFullMappings(unmappedIdentifiers, mappedIdentifiers, diffmapping, "argumenttypes");
Mappings particles = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "particles");
if (particles != null) {
particleMappings = new ParticleMappings(unmappedIdentifiers.getAsJsonArray("particles"), mappedIdentifiers.getAsJsonArray("particles"), particles);
getLogger().info("Loading " + unmappedVersion + " -> " + mappedVersion + " mappings...");
}
itemMappings = loadBiFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "items");
final CompoundTag data = MappingDataLoader.loadNBT("mappings-" + unmappedVersion + "to" + mappedVersion + ".nbt");
blockMappings = loadMappings(data, "blocks");
blockStateMappings = loadMappings(data, "blockstates");
blockEntityMappings = loadMappings(data, "blockentities");
soundMappings = loadMappings(data, "sounds");
statisticsMappings = loadMappings(data, "statistics");
enchantmentMappings = loadMappings(data, "enchantments");
paintingMappings = loadMappings(data, "paintings");
itemMappings = loadBiMappings(data, "items");
if (diffmapping != null && diffmapping.has("tags")) {
this.tags = new EnumMap<>(RegistryType.class);
JsonObject tags = diffmapping.getAsJsonObject("tags");
if (tags.has(RegistryType.ITEM.resourceLocation())) {
loadTags(RegistryType.ITEM, tags, MappingDataLoader.arrayToMap(mappedIdentifiers.getAsJsonArray("items")));
}
if (tags.has(RegistryType.BLOCK.resourceLocation())) {
loadTags(RegistryType.BLOCK, tags, MappingDataLoader.arrayToMap(mappedIdentifiers.getAsJsonArray("blocks")));
}
}
// TODO Don't load one file multiple times
final CompoundTag unmappedIdentifierData = MappingDataLoader.loadNBT("identifiers-" + unmappedVersion + ".nbt");
final CompoundTag mappedIdentifierData = MappingDataLoader.loadNBT("identifiers-" + mappedVersion + ".nbt");
if (unmappedIdentifierData != null && mappedIdentifierData != null) {
entityMappings = loadFullMappings(data, unmappedIdentifierData, mappedIdentifierData, "entities");
argumentTypeMappings = loadFullMappings(data, unmappedIdentifierData, mappedIdentifierData, "argumenttypes");
loadExtras(unmappedIdentifiers, mappedIdentifiers, diffmapping);
}
protected FullMappings loadFullMappings(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
Mappings mappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
return mappings != null ? new FullMappingsBase(unmappedIdentifiers.getAsJsonArray(key), mappedIdentifiers.getAsJsonArray(key), mappings) : null;
}
private void loadTags(RegistryType type, JsonObject object, Object2IntMap<String> typeMapping) {
JsonObject tags = object.getAsJsonObject(type.resourceLocation());
List<TagData> tagsList = new ArrayList<>(tags.size());
for (Map.Entry<String, JsonElement> entry : tags.entrySet()) {
JsonArray array = entry.getValue().getAsJsonArray();
int[] entries = new int[array.size()];
int i = 0;
for (JsonElement element : array) {
String stringId = element.getAsString();
if (!typeMapping.containsKey(stringId) && !typeMapping.containsKey(stringId = Key.stripMinecraftNamespace(stringId))) { // aaa
getLogger().warning(type + " Tags contains invalid type identifier " + stringId + " in tag " + entry.getKey());
continue;
final ListTag unmappedParticles = unmappedIdentifierData.get("particles");
final ListTag mappedParticles = mappedIdentifierData.get("particles");
if (unmappedParticles != null && mappedParticles != null) {
Mappings particleMappings = loadMappings(data, "particles");
if (particleMappings == null) {
particleMappings = new IdentityMappings(unmappedParticles.size(), mappedParticles.size());
}
entries[i++] = typeMapping.getInt(stringId);
final List<String> identifiers = unmappedParticles.getValue().stream().map(t -> (String) t.getValue()).collect(Collectors.toList());
final List<String> mappedIdentifiers = mappedParticles.getValue().stream().map(t -> (String) t.getValue()).collect(Collectors.toList());
this.particleMappings = new ParticleMappings(identifiers, mappedIdentifiers, particleMappings);
}
tagsList.add(new TagData(entry.getKey(), entries));
}
final CompoundTag tagsTag = data.get("tags");
if (tagsTag != null) {
this.tags = new EnumMap<>(RegistryType.class);
loadTags(RegistryType.ITEM, tagsTag);
loadTags(RegistryType.BLOCK, tagsTag);
}
loadExtras(data);
}
protected @Nullable Mappings loadMappings(final CompoundTag data, final String key) {
return MappingDataLoader.loadMappings(data, key);
}
protected @Nullable FullMappings loadFullMappings(final CompoundTag data, final CompoundTag unmappedIdentifiers, final CompoundTag mappedIdentifiers, final String key) {
return MappingDataLoader.loadFullMappings(data, unmappedIdentifiers, mappedIdentifiers, key);
}
protected @Nullable BiMappings loadBiMappings(final CompoundTag data, final String key) {
final Mappings mappings = loadMappings(data, key);
return mappings != null ? IntArrayBiMappings.of((IntArrayMappings) mappings) : null;
}
private void loadTags(final RegistryType type, final CompoundTag data) {
final CompoundTag tag = data.get(type.resourceLocation());
if (tag == null) {
return;
}
final List<TagData> tagsList = new ArrayList<>(tags.size());
for (final Map.Entry<String, Tag> entry : tag.entrySet()) {
final IntArrayTag entries = (IntArrayTag) entry.getValue();
tagsList.add(new TagData(entry.getKey(), entries.getValue()));
}
this.tags.put(type, tagsList);
}
@Override
public int getNewBlockStateId(int id) {
public int getNewBlockStateId(final int id) {
return checkValidity(id, blockStateMappings.getNewId(id), "blockstate");
}
@Override
public int getNewBlockId(int id) {
public int getNewBlockId(final int id) {
return checkValidity(id, blockMappings.getNewId(id), "block");
}
@Override
public int getNewItemId(int id) {
public int getNewItemId(final int id) {
return checkValidity(id, itemMappings.getNewId(id), "item");
}
@Override
public int getOldItemId(int id) {
public int getOldItemId(final int id) {
return itemMappings.inverse().getNewIdOrDefault(id, 1);
}
@Override
public int getNewParticleId(int id) {
public int getNewParticleId(final int id) {
return checkValidity(id, particleMappings.mappings().getNewId(id), "particles");
}
@Override
public @Nullable List<TagData> getTags(RegistryType type) {
public @Nullable List<TagData> getTags(final RegistryType type) {
return tags != null ? tags.get(type) : null;
}
@ -217,40 +219,6 @@ public class MappingDataBase implements MappingData {
return paintingMappings;
}
protected @Nullable Mappings loadFromArray(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
if (!unmappedIdentifiers.has(key) || !mappedIdentifiers.has(key) || !shouldLoad(key)) {
return null;
}
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
return IntArrayMappings.builder().unmapped(unmappedIdentifiers.getAsJsonArray(key))
.mapped(mappedIdentifiers.getAsJsonArray(key)).diffMappings(diff).build();
}
protected @Nullable Mappings loadFromObject(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
if (!unmappedIdentifiers.has(key) || !mappedIdentifiers.has(key) || !shouldLoad(key)) {
return null;
}
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
return IntArrayMappings.builder().unmapped(unmappedIdentifiers.getAsJsonObject(key))
.mapped(mappedIdentifiers.getAsJsonObject(key)).diffMappings(diff).build();
}
protected @Nullable BiMappings loadBiFromArray(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
if (!unmappedIdentifiers.has(key) || !mappedIdentifiers.has(key) || !shouldLoad(key)) {
return null;
}
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
return IntArrayBiMappings.builder().unmapped(unmappedIdentifiers.getAsJsonArray(key)).mapped(mappedIdentifiers.getAsJsonArray(key))
.diffMappings(diff).build();
}
protected @Nullable JsonObject loadDiffFile() {
return MappingDataLoader.loadData("mappingdiff-" + oldVersion + "to" + newVersion + ".json");
}
protected Logger getLogger() {
return Via.getPlatform().getLogger();
}
@ -263,25 +231,14 @@ public class MappingDataBase implements MappingData {
* @param type mapping type (e.g. "item")
* @return the given mapped id if valid, else 0
*/
protected int checkValidity(int id, int mappedId, String type) {
protected int checkValidity(final int id, final int mappedId, final String type) {
if (mappedId == -1) {
getLogger().warning(String.format("Missing %s %s for %s %s %d", newVersion, type, oldVersion, type, id));
getLogger().warning(String.format("Missing %s %s for %s %s %d", mappedVersion, type, unmappedVersion, type, id));
return 0;
}
return mappedId;
}
/**
* To be overridden if needed.
*
* @param unmappedIdentifiers old mappings
* @param mappedIdentifiers new mappings
* @param diffMappings diff mappings if present
*/
protected void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings) {
}
protected boolean shouldLoad(String key) {
return true;
protected void loadExtras(final CompoundTag data) {
}
}

View File

@ -22,6 +22,13 @@
*/
package com.viaversion.viaversion.api.data;
import com.github.steveice10.opennbt.NBTIO;
import com.github.steveice10.opennbt.tag.builtin.ByteTag;
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.github.steveice10.opennbt.tag.builtin.IntArrayTag;
import com.github.steveice10.opennbt.tag.builtin.IntTag;
import com.github.steveice10.opennbt.tag.builtin.ListTag;
import com.google.common.annotations.Beta;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonIOException;
@ -29,7 +36,6 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.util.GsonUtil;
import com.viaversion.viaversion.util.Int2IntBiMap;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import java.io.File;
@ -38,155 +44,189 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import org.checkerframework.checker.nullness.qual.Nullable;
public final class MappingDataLoader {
private static final Map<String, JsonObject> MAPPINGS_CACHE = new ConcurrentHashMap<>();
private static boolean cacheJsonMappings;
/**
* Returns true if a selected number of mappings should be cached.
* If enabled, cleanup should be done after the cache is no longer needed.
*
* @return true if mappings should be cached
*/
public static boolean isCacheJsonMappings() {
return cacheJsonMappings;
}
public static void enableMappingsCache() {
cacheJsonMappings = true;
}
/**
* Returns the cached mappings. Cleared after ViaVersion has been fully loaded.
*
* @return cached mapping file json objects
* @see #isCacheJsonMappings()
*/
public static Map<String, JsonObject> getMappingsCache() {
return MAPPINGS_CACHE;
}
private static final byte DIRECT_ID = 0;
private static final byte SHIFTS_ID = 1;
private static final byte CHANGES_ID = 2;
private static final byte IDENTITY_ID = 3;
/**
* Loads the file from the plugin folder if present, else from the bundled resources.
*
* @return loaded json object, or null if not found or invalid
*/
public static @Nullable JsonObject loadFromDataDir(String name) {
File file = new File(Via.getPlatform().getDataFolder(), name);
public static @Nullable JsonObject loadFromDataDir(final String name) {
final File file = new File(Via.getPlatform().getDataFolder(), name);
if (!file.exists()) {
return loadData(name);
}
// Load the file from the platform's directory if present
try (FileReader reader = new FileReader(file)) {
try (final FileReader reader = new FileReader(file)) {
return GsonUtil.getGson().fromJson(reader, JsonObject.class);
} catch (JsonSyntaxException e) {
} catch (final JsonSyntaxException e) {
// Users might mess up the format, so let's catch the syntax error
Via.getPlatform().getLogger().warning(name + " is badly formatted!");
e.printStackTrace();
} catch (IOException | JsonIOException e) {
e.printStackTrace();
throw new RuntimeException(e);
} catch (final IOException | JsonIOException e) {
throw new RuntimeException(e);
}
return null;
}
/**
* Loads the file from the bundled resources. Uses the cache if enabled.
* Loads the file from the bundled resources.
*
* @return loaded json object from bundled resources if present
*/
public static @Nullable JsonObject loadData(String name) {
return loadData(name, false);
}
/**
* Loads the file from the bundled resources. Uses the cache if enabled.
*
* @param cacheIfEnabled whether loaded files should be cached
* @return loaded json object from bundled resources if present
*/
public static @Nullable JsonObject loadData(String name, boolean cacheIfEnabled) {
if (cacheJsonMappings) {
JsonObject cached = MAPPINGS_CACHE.get(name);
if (cached != null) {
return cached;
}
public static @Nullable JsonObject loadData(final String name) {
final InputStream stream = getResource(name);
if (stream == null) {
return null;
}
InputStream stream = getResource(name);
if (stream == null) return null;
InputStreamReader reader = new InputStreamReader(stream);
try {
JsonObject object = GsonUtil.getGson().fromJson(reader, JsonObject.class);
if (cacheIfEnabled && cacheJsonMappings) {
MAPPINGS_CACHE.put(name, object);
}
return object;
} finally {
try {
reader.close();
} catch (IOException ignored) {
// Ignored
}
try (final InputStreamReader reader = new InputStreamReader(stream)) {
return GsonUtil.getGson().fromJson(reader, JsonObject.class);
} catch (final IOException e) {
throw new RuntimeException(e);
}
}
public static void mapIdentifiers(Int2IntBiMap output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(mappedIdentifiers);
for (Map.Entry<String, JsonElement> entry : unmappedIdentifiers.entrySet()) {
int id = Integer.parseInt(entry.getKey());
int mappedId = mapIdentifierEntry(id, entry.getValue().getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
if (mappedId != -1) {
output.put(id, mappedId);
}
public static @Nullable CompoundTag loadNBT(final String name) {
final InputStream resource = getResource(name);
if (resource == null) {
return null;
}
try (final InputStream stream = resource) {
return NBTIO.readTag(stream);
} catch (final IOException e) {
throw new RuntimeException(e);
}
}
public static void mapIdentifiers(Mappings mappings, Mappings inverseMappings, JsonArray unmappedIdentifiers, JsonArray mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
Object2IntMap<String> newIdentifierMap = MappingDataLoader.arrayToMap(mappedIdentifiers);
for (int id = 0; id < unmappedIdentifiers.size(); id++) {
String value = unmappedIdentifiers.get(id).getAsString();
int mappedId = mapIdentifierEntry(id, value, newIdentifierMap, diffIdentifiers, warnOnMissing);
if (mappedId != -1) {
mappings.setNewId(id, mappedId);
inverseMappings.setNewId(mappedId, id);
}
public static @Nullable Mappings loadMappings(final CompoundTag mappingsTag, final String key) {
return loadMappings(mappingsTag, key, int[]::new, (array, id, mappedId) -> array[id] = mappedId, IntArrayMappings::of);
}
@Beta
public static <M extends Mappings, V> @Nullable Mappings loadMappings(
final CompoundTag mappingsTag,
final String key,
final MappingHolderSupplier<V> holderSupplier,
final AddConsumer<V> addConsumer,
final MappingsSupplier<M, V> mappingsSupplier
) {
final CompoundTag tag = mappingsTag.get(key);
if (tag == null) {
return null;
}
final ByteTag serializationStragetyTag = tag.get("id");
final IntTag mappedSizeTag = tag.get("mappedSize");
final byte strategy = serializationStragetyTag.asByte();
final V mappings;
if (strategy == DIRECT_ID) {
final IntArrayTag valuesTag = tag.get("val");
return IntArrayMappings.of(valuesTag.getValue(), mappedSizeTag.asInt());
} else if (strategy == SHIFTS_ID) {
final IntArrayTag shiftsAtTag = tag.get("at");
final IntArrayTag shiftsTag = tag.get("val");
final IntTag sizeTag = tag.get("size");
final int[] shiftsAt = shiftsAtTag.getValue();
final int[] shifts = shiftsTag.getValue();
final int size = sizeTag.asInt();
mappings = holderSupplier.get(size);
// Handle values until first shift
if (shiftsAt[0] != 0) {
final int to = shiftsAt[0];
for (int id = 0; id < to; id++) {
addConsumer.addTo(mappings, id, id);
}
}
// Handle shifts
for (int i = 0; i < shiftsAt.length; i++) {
final int from = shiftsAt[i];
final int to = i == shiftsAt.length - 1 ? size : shiftsAt[i + 1];
final int shiftBy = shifts[i];
for (int id = from; id < to; id++) {
addConsumer.addTo(mappings, id, id + shiftBy);
}
}
} else if (strategy == CHANGES_ID) {
final IntArrayTag changesAtTag = tag.get("at");
final IntArrayTag valuesTag = tag.get("val");
final IntTag sizeTag = tag.get("size");
final boolean fillBetween = tag.get("nofill") == null;
final int[] changesAt = changesAtTag.getValue();
final int[] values = valuesTag.getValue();
mappings = holderSupplier.get(sizeTag.asInt());
for (int i = 0; i < changesAt.length; i++) {
final int id = changesAt[i];
if (fillBetween) {
// Fill from after the last change to before this change with unchanged ids
final int previousId = i != 0 ? changesAt[i - 1] + 1 : 0;
for (int identity = previousId; identity < id; identity++) {
addConsumer.addTo(mappings, identity, identity);
}
}
// Assign the changed value
addConsumer.addTo(mappings, id, values[i]);
}
} else if (strategy == IDENTITY_ID) {
final IntTag sizeTag = tag.get("size");
return new IdentityMappings(sizeTag.asInt(), mappedSizeTag.asInt());
} else {
throw new IllegalArgumentException("Unknown serialization strategy: " + strategy);
}
return mappingsSupplier.create(mappings, mappedSizeTag.asInt());
}
@Deprecated/*(forRemoval = true)*/
public static void mapIdentifiers(int[] output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers) {
mapIdentifiers(output, unmappedIdentifiers, mappedIdentifiers, null);
public static FullMappings loadFullMappings(final CompoundTag mappingsTag, final CompoundTag unmappedIdentifiers, final CompoundTag mappedIdentifiers, final String key) {
final ListTag unmappedElements = unmappedIdentifiers.get(key);
final ListTag mappedElements = mappedIdentifiers.get(key);
if (unmappedElements == null || mappedElements == null) {
return null;
}
Mappings mappings = loadMappings(mappingsTag, key);
if (mappings == null) {
mappings = new IdentityMappings(unmappedElements.size(), mappedElements.size());
}
return new FullMappingsBase(
unmappedElements.getValue().stream().map(t -> (String) t.getValue()).collect(Collectors.toList()),
mappedElements.getValue().stream().map(t -> (String) t.getValue()).collect(Collectors.toList()),
mappings
);
}
public static void mapIdentifiers(int[] output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(mappedIdentifiers);
for (Map.Entry<String, JsonElement> entry : unmappedIdentifiers.entrySet()) {
int id = Integer.parseInt(entry.getKey());
int mappedId = mapIdentifierEntry(id, entry.getValue().getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
public static void mapIdentifiers(final int[] output, final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffIdentifiers, final boolean warnOnMissing) {
final Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(mappedIdentifiers);
for (final Map.Entry<String, JsonElement> entry : unmappedIdentifiers.entrySet()) {
final int id = Integer.parseInt(entry.getKey());
final int mappedId = mapIdentifierEntry(id, entry.getValue().getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
if (mappedId != -1) {
output[id] = mappedId;
}
}
}
public static void mapIdentifiers(int[] output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffIdentifiers) {
mapIdentifiers(output, unmappedIdentifiers, mappedIdentifiers, diffIdentifiers, true);
}
private static int mapIdentifierEntry(int id, String val, Object2IntMap<String> mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
private static int mapIdentifierEntry(final int id, final String val, final Object2IntMap<String> mappedIdentifiers, @Nullable final JsonObject diffIdentifiers, final boolean warnOnMissing) {
int mappedId = mappedIdentifiers.getInt(val);
if (mappedId == -1) {
// Search in diff mappings
if (diffIdentifiers != null) {
JsonElement diffElement = diffIdentifiers.get(val);
if (diffElement != null || (diffElement = diffIdentifiers.get(Integer.toString(id))) != null) {
String mappedName = diffElement.getAsString();
final String mappedName = diffElement.getAsString();
if (mappedName.isEmpty()) {
return -1; // "empty" remaps without warnings
}
@ -205,16 +245,11 @@ public final class MappingDataLoader {
return mappedId;
}
@Deprecated/*(forRemoval = true)*/
public static void mapIdentifiers(int[] output, JsonArray unmappedIdentifiers, JsonArray mappedIdentifiers, boolean warnOnMissing) {
mapIdentifiers(output, unmappedIdentifiers, mappedIdentifiers, null, warnOnMissing);
}
public static void mapIdentifiers(int[] output, JsonArray unmappedIdentifiers, JsonArray mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
Object2IntMap<String> newIdentifierMap = MappingDataLoader.arrayToMap(mappedIdentifiers);
public static void mapIdentifiers(final int[] output, final JsonArray unmappedIdentifiers, final JsonArray mappedIdentifiers, @Nullable final JsonObject diffIdentifiers, final boolean warnOnMissing) {
final Object2IntMap<String> newIdentifierMap = MappingDataLoader.arrayToMap(mappedIdentifiers);
for (int id = 0; id < unmappedIdentifiers.size(); id++) {
JsonElement unmappedIdentifier = unmappedIdentifiers.get(id);
int mappedId = mapIdentifierEntry(id, unmappedIdentifier.getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
final JsonElement unmappedIdentifier = unmappedIdentifiers.get(id);
final int mappedId = mapIdentifierEntry(id, unmappedIdentifier.getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
if (mappedId != -1) {
output[id] = mappedId;
}
@ -227,10 +262,10 @@ public final class MappingDataLoader {
* @param object json object
* @return map with indexes hashed by their id value
*/
public static Object2IntMap<String> indexedObjectToMap(JsonObject object) {
Object2IntMap<String> map = new Object2IntOpenHashMap<>(object.size(), .99F);
public static Object2IntMap<String> indexedObjectToMap(final JsonObject object) {
final Object2IntMap<String> map = new Object2IntOpenHashMap<>(object.size(), .99F);
map.defaultReturnValue(-1);
for (Map.Entry<String, JsonElement> entry : object.entrySet()) {
for (final Map.Entry<String, JsonElement> entry : object.entrySet()) {
map.put(entry.getValue().getAsString(), Integer.parseInt(entry.getKey()));
}
return map;
@ -242,8 +277,8 @@ public final class MappingDataLoader {
* @param array json array
* @return map with indexes hashed by their id value
*/
public static Object2IntMap<String> arrayToMap(JsonArray array) {
Object2IntMap<String> map = new Object2IntOpenHashMap<>(array.size(), .99F);
public static Object2IntMap<String> arrayToMap(final JsonArray array) {
final Object2IntMap<String> map = new Object2IntOpenHashMap<>(array.size(), .99F);
map.defaultReturnValue(-1);
for (int i = 0; i < array.size(); i++) {
map.put(array.get(i).getAsString(), i);
@ -251,7 +286,25 @@ public final class MappingDataLoader {
return map;
}
public static @Nullable InputStream getResource(String name) {
public static @Nullable InputStream getResource(final String name) {
return MappingDataLoader.class.getClassLoader().getResourceAsStream("assets/viaversion/data/" + name);
}
@FunctionalInterface
public interface AddConsumer<T> {
void addTo(T holder, int id, int mappedId);
}
@FunctionalInterface
public interface MappingHolderSupplier<T> {
T get(int expectedSize);
}
@FunctionalInterface
public interface MappingsSupplier<T extends Mappings, V> {
T create(V mappings, int mappedSize);
}
}

View File

@ -62,11 +62,11 @@ public interface Mappings {
/**
* Manually maps a specific id.
*
* @param id unmapped id
* @param newId mapped id
* @param id unmapped id
* @param mappedId mapped id
* @throws IndexOutOfBoundsException if the unmapped id is invalid
*/
void setNewId(int id, int newId);
void setNewId(int id, int mappedId);
/**
* Returns amount of unmapped entries, being the size of the mapping.

View File

@ -22,16 +22,16 @@
*/
package com.viaversion.viaversion.api.data;
import com.google.gson.JsonArray;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import java.util.List;
public class ParticleMappings extends FullMappingsBase {
private final IntList itemParticleIds = new IntArrayList(2);
private final IntList itemParticleIds = new IntArrayList(4);
private final IntList blockParticleIds = new IntArrayList(4);
public ParticleMappings(JsonArray oldMappings, JsonArray newMappings, Mappings mappings) {
super(oldMappings, newMappings, mappings);
public ParticleMappings(final List<String> unmappedIdentifiers, final List<String> mappedIdentifiers, final Mappings mappings) {
super(unmappedIdentifiers, mappedIdentifiers, mappings);
addBlockParticle("block");
addBlockParticle("falling_dust");
addBlockParticle("block_marker");

View File

@ -0,0 +1,38 @@
/*
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
* Copyright (C) 2023 ViaVersion and contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package com.viaversion.viaversion.api.data.entity;
import com.viaversion.viaversion.api.data.BiMappings;
import com.viaversion.viaversion.api.data.IdentityMappings;
public final class IdentityBiMappings extends IdentityMappings implements BiMappings {
public IdentityBiMappings(final int size, final int mappedSize) {
super(size, mappedSize);
}
@Override
public BiMappings inverse() {
return this;
}
}

View File

@ -26,7 +26,7 @@ public final class TagData {
private final String identifier;
private final int[] entries;
public TagData(String identifier, int[] entries) {
public TagData(final String identifier, final int[] entries) {
this.identifier = identifier;
this.entries = entries;
}

View File

@ -36,11 +36,16 @@ public class Int2IntBiHashMap implements Int2IntBiMap {
public Int2IntBiHashMap() {
this.map = new Int2IntOpenHashMap();
this.inverse = new Int2IntBiHashMap(this);
this.inverse = new Int2IntBiHashMap(this, -1);
}
private Int2IntBiHashMap(Int2IntBiHashMap inverse) {
this.map = new Int2IntOpenHashMap();
public Int2IntBiHashMap(final int expected) {
this.map = new Int2IntOpenHashMap(expected);
this.inverse = new Int2IntBiHashMap(this, expected);
}
private Int2IntBiHashMap(final Int2IntBiHashMap inverse, final int expected) {
this.map = expected != -1 ? new Int2IntOpenHashMap(expected) : new Int2IntOpenHashMap();
this.inverse = inverse;
}
@ -50,7 +55,7 @@ public class Int2IntBiHashMap implements Int2IntBiMap {
}
@Override
public int put(int key, int value) {
public int put(final int key, final int value) {
if (containsKey(key) && value == get(key)) return value;
Preconditions.checkArgument(!containsValue(value), "value already present: %s", value);
@ -60,13 +65,13 @@ public class Int2IntBiHashMap implements Int2IntBiMap {
}
@Override
public boolean remove(int key, int value) {
public boolean remove(final int key, final int value) {
map.remove(key, value);
return inverse.map.remove(key, value);
}
@Override
public int get(int key) {
public int get(final int key) {
return map.get(key);
}
@ -87,7 +92,7 @@ public class Int2IntBiHashMap implements Int2IntBiMap {
}
@Override
public void defaultReturnValue(int rv) {
public void defaultReturnValue(final int rv) {
map.defaultReturnValue(rv);
inverse.map.defaultReturnValue(rv);
}
@ -113,12 +118,12 @@ public class Int2IntBiHashMap implements Int2IntBiMap {
}
@Override
public boolean containsKey(int key) {
public boolean containsKey(final int key) {
return map.containsKey(key);
}
@Override
public boolean containsValue(int value) {
public boolean containsValue(final int value) {
return inverse.map.containsKey(value);
}
}

View File

@ -23,7 +23,6 @@ import com.google.common.collect.Range;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.data.MappingDataLoader;
import com.viaversion.viaversion.api.protocol.Protocol;
import com.viaversion.viaversion.api.protocol.ProtocolManager;
import com.viaversion.viaversion.api.protocol.ProtocolPathEntry;
@ -518,11 +517,6 @@ public class ProtocolManagerImpl implements ProtocolManager {
mappingLoaderExecutor = null;
mappingLoaderFutures.clear();
mappingLoaderFutures = null;
// Clear cached json files
if (MappingDataLoader.isCacheJsonMappings()) {
MappingDataLoader.getMappingsCache().clear();
}
}
private Function<Throwable, Void> mappingLoaderThrowable(Class<? extends Protocol> protocolClass) {

View File

@ -515,7 +515,7 @@ public class PacketWrapperImpl implements PacketWrapper {
'}';
}
private static final class PacketValue {
public static final class PacketValue {
private final Type type;
private Object value;

View File

@ -41,7 +41,7 @@ import com.viaversion.viaversion.rewriter.TagRewriter;
public class Protocol1_13_1To1_13 extends AbstractProtocol<ClientboundPackets1_13, ClientboundPackets1_13, ServerboundPackets1_13, ServerboundPackets1_13> {
public static final MappingData MAPPINGS = new MappingDataBase("1.13", "1.13.2", true);
public static final MappingData MAPPINGS = new MappingDataBase("1.13", "1.13.2");
private final MetadataRewriter1_13_1To1_13 entityRewriter = new MetadataRewriter1_13_1To1_13(this);
private final InventoryPackets itemRewriter = new InventoryPackets(this);

View File

@ -138,22 +138,22 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol<ClientboundPackets1_1
// Send tags packet
w.create(ClientboundPackets1_13.TAGS, wrapper -> {
wrapper.write(Type.VAR_INT, MAPPINGS.getBlockTags().size()); // block tags
for (Map.Entry<String, Integer[]> tag : MAPPINGS.getBlockTags().entrySet()) {
for (Map.Entry<String, int[]> tag : MAPPINGS.getBlockTags().entrySet()) {
wrapper.write(Type.STRING, tag.getKey());
// Needs copy as other protocols may modify it
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, toPrimitive(tag.getValue()));
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, tag.getValue());
}
wrapper.write(Type.VAR_INT, MAPPINGS.getItemTags().size()); // item tags
for (Map.Entry<String, Integer[]> tag : MAPPINGS.getItemTags().entrySet()) {
for (Map.Entry<String, int[]> tag : MAPPINGS.getItemTags().entrySet()) {
wrapper.write(Type.STRING, tag.getKey());
// Needs copy as other protocols may modify it
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, toPrimitive(tag.getValue()));
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, tag.getValue());
}
wrapper.write(Type.VAR_INT, MAPPINGS.getFluidTags().size()); // fluid tags
for (Map.Entry<String, Integer[]> tag : MAPPINGS.getFluidTags().entrySet()) {
for (Map.Entry<String, int[]> tag : MAPPINGS.getFluidTags().entrySet()) {
wrapper.write(Type.STRING, tag.getKey());
// Needs copy as other protocols may modify it
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, toPrimitive(tag.getValue()));
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, tag.getValue());
}
}).scheduleSend(Protocol1_13To1_12_2.class);
};
@ -852,6 +852,10 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol<ClientboundPackets1_1
.reader(20, ParticleType.Readers.DUST)
.reader(11, ParticleType.Readers.DUST)
.reader(27, ParticleType.Readers.ITEM);
if (Via.getConfig().isServersideBlockConnections() && Via.getManager().getProviders().get(BlockConnectionProvider.class) instanceof PacketBlockConnectionProvider) {
BlockConnectionStorage.init();
}
}
@Override
@ -908,14 +912,6 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol<ClientboundPackets1_1
return name;
}
public static int[] toPrimitive(Integer[] array) {
int[] prim = new int[array.length];
for (int i = 0; i < array.length; i++) {
prim[i] = array[i];
}
return prim;
}
@Override
public MappingData getMappingData() {
return MAPPINGS;

View File

@ -17,6 +17,7 @@
*/
package com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections;
import com.github.steveice10.opennbt.tag.builtin.ListTag;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@ -205,10 +206,9 @@ public final class ConnectionData {
}
Via.getPlatform().getLogger().info("Loading block connection mappings ...");
JsonObject mapping1_13 = MappingDataLoader.loadData("mapping-1.13.json", true);
JsonArray blocks1_13 = mapping1_13.getAsJsonArray("blockstates");
for (int id = 0; id < blocks1_13.size(); id++) {
String key = blocks1_13.get(id).getAsString();
ListTag blockStates = MappingDataLoader.loadNBT("blockstates-1.13.nbt").get("blockstates");
for (int id = 0; id < blockStates.size(); id++) {
String key = (String) blockStates.get(id).getValue();
idToKey.put(id, key);
keyToId.put(key, id);
}

View File

@ -17,23 +17,24 @@
*/
package com.viaversion.viaversion.protocols.protocol1_13to1_12_2.data;
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.github.steveice10.opennbt.tag.builtin.IntArrayTag;
import com.github.steveice10.opennbt.tag.builtin.StringTag;
import com.github.steveice10.opennbt.tag.builtin.Tag;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.io.CharStreams;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.data.BiMappings;
import com.viaversion.viaversion.api.data.Int2IntMapBiMappings;
import com.viaversion.viaversion.api.data.IntArrayMappings;
import com.viaversion.viaversion.api.data.MappingDataBase;
import com.viaversion.viaversion.api.data.MappingDataLoader;
import com.viaversion.viaversion.api.data.Mappings;
import com.viaversion.viaversion.util.GsonUtil;
import com.viaversion.viaversion.util.Int2IntBiHashMap;
import com.viaversion.viaversion.util.Int2IntBiMap;
import com.viaversion.viaversion.util.Key;
import java.io.IOException;
import java.io.InputStreamReader;
@ -44,27 +45,26 @@ import java.util.Map;
import org.checkerframework.checker.nullness.qual.Nullable;
public class MappingData extends MappingDataBase {
private final Map<String, Integer[]> blockTags = new HashMap<>();
private final Map<String, Integer[]> itemTags = new HashMap<>();
private final Map<String, Integer[]> fluidTags = new HashMap<>();
private final Map<String, int[]> blockTags = new HashMap<>();
private final Map<String, int[]> itemTags = new HashMap<>();
private final Map<String, int[]> fluidTags = new HashMap<>();
private final BiMap<Short, String> oldEnchantmentsIds = HashBiMap.create();
private final Map<String, String> translateMapping = new HashMap<>();
private final Map<String, String> mojangTranslation = new HashMap<>();
private final BiMap<String, String> channelMappings = HashBiMap.create(); // 1.12->1.13
private final BiMap<String, String> channelMappings = HashBiMap.create();
public MappingData() {
super("1.12", "1.13");
}
@Override
public void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
loadTags(blockTags, mappedIdentifiers.getAsJsonObject("block_tags"));
loadTags(itemTags, mappedIdentifiers.getAsJsonObject("item_tags"));
loadTags(fluidTags, mappedIdentifiers.getAsJsonObject("fluid_tags"));
protected void loadExtras(final CompoundTag data) {
loadTags(blockTags, data.get("block_tags"));
loadTags(itemTags, data.get("item_tags"));
loadTags(fluidTags, data.get("fluid_tags"));
loadEnchantments(oldEnchantmentsIds, unmappedIdentifiers.getAsJsonObject("legacy_enchantments"));
enchantmentMappings = IntArrayMappings.builder().customEntrySize(72)
.unmapped(unmappedIdentifiers.getAsJsonObject("legacy_enchantments")).mapped(mappedIdentifiers.getAsJsonArray("enchantments")).build();
CompoundTag legacyEnchantments = data.get("legacy_enchantments");
loadEnchantments(oldEnchantmentsIds, legacyEnchantments);
// Map minecraft:snow[layers=1] of 1.12 to minecraft:snow[layers=2] in 1.13
if (Via.getConfig().isSnowCollisionFix()) {
@ -105,10 +105,14 @@ public class MappingData extends MappingDataBase {
lines = CharStreams.toString(reader).split("\n");
}
for (String line : lines) {
if (line.isEmpty()) continue;
if (line.isEmpty()) {
continue;
}
String[] keyAndTranslation = line.split("=", 2);
if (keyAndTranslation.length != 2) continue;
if (keyAndTranslation.length != 2) {
continue;
}
String key = keyAndTranslation[0];
if (!translateData.containsKey(key)) {
@ -127,38 +131,25 @@ public class MappingData extends MappingDataBase {
}
@Override
protected @Nullable Mappings loadFromArray(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings, final String key) {
protected @Nullable Mappings loadMappings(final CompoundTag data, final String key) {
// Special cursed case
if (key.equals("blocks")) {
// Need to use a custom size since there are larger gaps in ids, also object -> array
return IntArrayMappings.builder().customEntrySize(4084)
.unmapped(unmappedIdentifiers.getAsJsonObject("blocks")).mapped(mappedIdentifiers.getAsJsonArray("blockstates")).build();
} else if (key.equals("items")) {
// Object -> array
return IntArrayMappings.builder()
.unmapped(unmappedIdentifiers.getAsJsonObject(key)).mapped(mappedIdentifiers.getAsJsonArray(key)).build();
return super.loadMappings(data, "blockstates");
} else if (key.equals("blockstates")) {
return null;
} else {
return super.loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
return super.loadMappings(data, key);
}
}
@Override
protected @Nullable BiMappings loadBiFromArray(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings, final String key) {
protected @Nullable BiMappings loadBiMappings(final CompoundTag data, final String key) {
// Special cursed case
if (key.equals("items")) {
final Int2IntBiMap itemMappings = new Int2IntBiHashMap();
itemMappings.defaultReturnValue(-1);
MappingDataLoader.mapIdentifiers(itemMappings, unmappedIdentifiers.getAsJsonObject("items"), toJsonObject(mappedIdentifiers.getAsJsonArray("items")), null, true);
return Int2IntMapBiMappings.of(itemMappings);
return (BiMappings) MappingDataLoader.loadMappings(data, "items", Int2IntBiHashMap::new, Int2IntBiHashMap::put, (v, mappedSize) -> Int2IntMapBiMappings.of(v));
} else {
return super.loadBiMappings(data, key);
}
return super.loadBiFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
}
private JsonObject toJsonObject(final JsonArray array) {
final JsonObject object = new JsonObject();
for (int i = 0; i < array.size(); i++) {
final JsonElement element = array.get(i);
object.add(Integer.toString(i), element);
}
return object;
}
public static String validateNewChannel(String newId) {
@ -179,32 +170,28 @@ public class MappingData extends MappingDataBase {
return channelId.matches("([0-9a-z_.-]+:)?[0-9a-z_/.-]+");
}
private void loadTags(Map<String, Integer[]> output, JsonObject newTags) {
for (Map.Entry<String, JsonElement> entry : newTags.entrySet()) {
JsonArray ids = entry.getValue().getAsJsonArray();
Integer[] idsArray = new Integer[ids.size()];
for (int i = 0; i < ids.size(); i++) {
idsArray[i] = ids.get(i).getAsInt();
}
output.put(Key.namespaced(entry.getKey()), idsArray);
private void loadTags(Map<String, int[]> output, CompoundTag newTags) {
for (Map.Entry<String, Tag> entry : newTags.entrySet()) {
IntArrayTag ids = (IntArrayTag) entry.getValue();
output.put(Key.namespaced(entry.getKey()), ids.getValue());
}
}
private void loadEnchantments(Map<Short, String> output, JsonObject enchantments) {
for (Map.Entry<String, JsonElement> enchantment : enchantments.entrySet()) {
output.put(Short.parseShort(enchantment.getKey()), enchantment.getValue().getAsString());
private void loadEnchantments(Map<Short, String> output, CompoundTag enchantments) {
for (Map.Entry<String, Tag> enty : enchantments.entrySet()) {
output.put(Short.parseShort(enty.getKey()), ((StringTag) enty.getValue()).getValue());
}
}
public Map<String, Integer[]> getBlockTags() {
public Map<String, int[]> getBlockTags() {
return blockTags;
}
public Map<String, Integer[]> getItemTags() {
public Map<String, int[]> getItemTags() {
return itemTags;
}
public Map<String, Integer[]> getFluidTags() {
public Map<String, int[]> getFluidTags() {
return fluidTags;
}

View File

@ -53,6 +53,9 @@ public class BlockConnectionStorage implements StorableObject {
}
}
public static void init() {
}
public void store(int x, int y, int z, int blockState) {
short mapping = REVERSE_BLOCK_MAPPINGS[blockState];
if (mapping == -1) return;

View File

@ -83,21 +83,21 @@ public class Protocol1_14To1_13_2 extends AbstractProtocol<ClientboundPackets1_1
wrapper.passthrough(Type.STRING);
int[] blockIds = wrapper.passthrough(Type.VAR_INT_ARRAY_PRIMITIVE);
for (int j = 0; j < blockIds.length; j++) {
blockIds[j] = getMappingData().getNewBlockId(blockIds[j]);
blockIds[j] = MAPPINGS.getNewBlockId(blockIds[j]);
}
}
// Minecraft crashes if we not send signs tags
wrapper.write(Type.STRING, "minecraft:signs");
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, new int[]{
getMappingData().getNewBlockId(150), getMappingData().getNewBlockId(155)
MAPPINGS.getNewBlockId(150), MAPPINGS.getNewBlockId(155)
});
wrapper.write(Type.STRING, "minecraft:wall_signs");
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, new int[]{
getMappingData().getNewBlockId(155)
MAPPINGS.getNewBlockId(155)
});
wrapper.write(Type.STRING, "minecraft:standing_signs");
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, new int[]{
getMappingData().getNewBlockId(150)
MAPPINGS.getNewBlockId(150)
});
// Fences and walls tags - used for block connections
wrapper.write(Type.STRING, "minecraft:fences");
@ -112,13 +112,13 @@ public class Protocol1_14To1_13_2 extends AbstractProtocol<ClientboundPackets1_1
wrapper.passthrough(Type.STRING);
int[] itemIds = wrapper.passthrough(Type.VAR_INT_ARRAY_PRIMITIVE);
for (int j = 0; j < itemIds.length; j++) {
itemIds[j] = getMappingData().getNewItemId(itemIds[j]);
itemIds[j] = MAPPINGS.getNewItemId(itemIds[j]);
}
}
// Should fix fuel shift clicking
wrapper.write(Type.STRING, "minecraft:signs");
wrapper.write(Type.VAR_INT_ARRAY_PRIMITIVE, new int[]{
getMappingData().getNewItemId(541)
MAPPINGS.getNewItemId(541)
});
// Arrows tag (used by bow)
wrapper.write(Type.STRING, "minecraft:arrows");
@ -141,9 +141,9 @@ public class Protocol1_14To1_13_2 extends AbstractProtocol<ClientboundPackets1_1
@Override
protected void onMappingDataLoaded() {
WorldPackets.air = getMappingData().getBlockStateMappings().getNewId(0);
WorldPackets.voidAir = getMappingData().getBlockStateMappings().getNewId(8591);
WorldPackets.caveAir = getMappingData().getBlockStateMappings().getNewId(8592);
WorldPackets.air = MAPPINGS.getBlockStateMappings().getNewId(0);
WorldPackets.voidAir = MAPPINGS.getBlockStateMappings().getNewId(8591);
WorldPackets.caveAir = MAPPINGS.getBlockStateMappings().getNewId(8592);
Types1_13_2.PARTICLE.filler(this, false)
.reader("block", ParticleType.Readers.BLOCK)

View File

@ -17,16 +17,13 @@
*/
package com.viaversion.viaversion.protocols.protocol1_14to1_13_2.data;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.github.steveice10.opennbt.tag.builtin.IntArrayTag;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.data.MappingDataBase;
import com.viaversion.viaversion.api.data.MappingDataLoader;
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
import it.unimi.dsi.fastutil.ints.IntSet;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
public class MappingData extends MappingDataBase {
private IntSet motionBlocking;
@ -37,41 +34,14 @@ public class MappingData extends MappingDataBase {
}
@Override
public void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
JsonArray mappedBlockStates = mappedIdentifiers.getAsJsonArray("blockstates");
Object2IntMap<String> blockStateMap = new Object2IntOpenHashMap<>(mappedBlockStates.size());
blockStateMap.defaultReturnValue(-1);
for (int i = 0; i < mappedBlockStates.size(); i++) {
String state = mappedBlockStates.get(i).getAsString();
blockStateMap.put(state, i);
}
JsonObject heightMapData = MappingDataLoader.loadData("heightMapData-1.14.json");
JsonArray motionBlocking = heightMapData.getAsJsonArray("MOTION_BLOCKING");
this.motionBlocking = new IntOpenHashSet(motionBlocking.size(), .99F);
for (JsonElement blockState : motionBlocking) {
String key = blockState.getAsString();
int id = blockStateMap.getInt(key);
if (id == -1) {
Via.getPlatform().getLogger().warning("Unknown blockstate " + key + " :(");
} else {
this.motionBlocking.add(id);
}
}
public void loadExtras(final CompoundTag data) {
final CompoundTag heightmap = MappingDataLoader.loadNBT("heightmap-1.14.nbt");
final IntArrayTag motionBlocking = heightmap.get("motionBlocking");
this.motionBlocking = new IntOpenHashSet(motionBlocking.getValue());
if (Via.getConfig().isNonFullBlockLightFix()) {
nonFullBlocks = new IntOpenHashSet(1611, .99F);
JsonArray blockStates = unmappedIdentifiers.getAsJsonArray("blockstates");
for (int i = 0; i < blockStates.size(); i++) {
String state = blockStates.get(i).getAsString();
if (state.contains("_slab") || state.contains("_stairs") || state.contains("_wall[")) {
nonFullBlocks.add(blockStateMappings.getNewId(i));
}
}
nonFullBlocks.add(blockStateMappings.getNewId(8163)); // grass path
for (int i = 3060; i <= 3067; i++) { // farmland
nonFullBlocks.add(blockStateMappings.getNewId(i));
}
final IntArrayTag nonFullBlocks = heightmap.get("nonFullBlocks");
this.nonFullBlocks = new IntOpenHashSet(nonFullBlocks.getValue());
}
}

View File

@ -18,6 +18,8 @@
package com.viaversion.viaversion.protocols.protocol1_15to1_14_4;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.data.MappingData;
import com.viaversion.viaversion.api.data.MappingDataBase;
import com.viaversion.viaversion.api.minecraft.RegistryType;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_15Types;
import com.viaversion.viaversion.api.protocol.AbstractProtocol;
@ -25,7 +27,6 @@ import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ClientboundPackets1_14;
import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ServerboundPackets1_14;
import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.data.MappingData;
import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.metadata.MetadataRewriter1_15To1_14_4;
import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.packets.EntityPackets;
import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.packets.InventoryPackets;
@ -36,7 +37,7 @@ import com.viaversion.viaversion.rewriter.TagRewriter;
public class Protocol1_15To1_14_4 extends AbstractProtocol<ClientboundPackets1_14, ClientboundPackets1_15, ServerboundPackets1_14, ServerboundPackets1_14> {
public static final MappingData MAPPINGS = new MappingData();
public static final MappingData MAPPINGS = new MappingDataBase("1.14", "1.15");
private final MetadataRewriter1_15To1_14_4 metadataRewriter = new MetadataRewriter1_15To1_14_4(this);
private final InventoryPackets itemRewriter = new InventoryPackets(this);
private TagRewriter<ClientboundPackets1_14> tagRewriter;

View File

@ -1,42 +0,0 @@
/*
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
* Copyright (C) 2016-2023 ViaVersion and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.viaversion.viaversion.protocols.protocol1_15to1_14_4.data;
import com.google.gson.JsonObject;
import com.viaversion.viaversion.api.data.IntArrayMappings;
import com.viaversion.viaversion.api.data.MappingDataBase;
import com.viaversion.viaversion.api.data.Mappings;
import org.checkerframework.checker.nullness.qual.Nullable;
public class MappingData extends MappingDataBase {
public MappingData() {
super("1.14", "1.15", true);
}
@Override
protected Mappings loadFromArray(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
if (!key.equals("sounds")) {
return super.loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
}
// Ignore removed sounds
return IntArrayMappings.builder().warnOnMissing(false)
.unmapped(unmappedIdentifiers.getAsJsonArray(key)).mapped(mappedIdentifiers.getAsJsonArray(key)).build();
}
}

View File

@ -21,7 +21,6 @@ import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.github.steveice10.opennbt.tag.builtin.ListTag;
import com.github.steveice10.opennbt.tag.builtin.StringTag;
import com.github.steveice10.opennbt.tag.builtin.Tag;
import com.google.gson.JsonObject;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.data.MappingDataBase;
import com.viaversion.viaversion.api.data.MappingDataLoader;
@ -35,24 +34,25 @@ public class MappingData extends MappingDataBase {
private CompoundTag dimensionRegistry;
public MappingData() {
super("1.16", "1.16.2", true);
super("1.16", "1.16.2");
}
@Override
public void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
public void loadExtras(final CompoundTag data) {
try {
// TODO Read uncompressed file
dimensionRegistry = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("dimension-registry-1.16.2.nbt"));
} catch (IOException e) {
} catch (final IOException e) {
Via.getPlatform().getLogger().severe("Error loading dimension registry:");
e.printStackTrace();
}
// Data of each dimension
ListTag dimensions = ((CompoundTag) dimensionRegistry.get("minecraft:dimension_type")).get("value");
for (Tag dimension : dimensions) {
CompoundTag dimensionCompound = (CompoundTag) dimension;
final ListTag dimensions = ((CompoundTag) dimensionRegistry.get("minecraft:dimension_type")).get("value");
for (final Tag dimension : dimensions) {
final CompoundTag dimensionCompound = (CompoundTag) dimension;
// Copy with an empty name
CompoundTag dimensionData = new CompoundTag(((CompoundTag) dimensionCompound.get("element")).getValue());
final CompoundTag dimensionData = new CompoundTag(((CompoundTag) dimensionCompound.get("element")).getValue());
dimensionDataMap.put(((StringTag) dimensionCompound.get("name")).getValue(), dimensionData);
}
}

View File

@ -17,20 +17,20 @@
*/
package com.viaversion.viaversion.protocols.protocol1_16to1_15_2.data;
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.gson.JsonObject;
import com.viaversion.viaversion.api.data.MappingDataBase;
public class MappingData extends MappingDataBase {
private final BiMap<String, String> attributeMappings = HashBiMap.create();
public MappingData() {
super("1.15", "1.16", true);
super("1.15", "1.16");
}
@Override
protected void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
protected void loadExtras(final CompoundTag data) {
attributeMappings.put("generic.maxHealth", "minecraft:generic.max_health");
attributeMappings.put("zombie.spawnReinforcements", "minecraft:zombie.spawn_reinforcements");
attributeMappings.put("horse.jumpStrength", "minecraft:horse.jump_strength");

View File

@ -42,7 +42,7 @@ import com.viaversion.viaversion.rewriter.TagRewriter;
public final class Protocol1_17To1_16_4 extends AbstractProtocol<ClientboundPackets1_16_2, ClientboundPackets1_17, ServerboundPackets1_16_2, ServerboundPackets1_17> {
public static final MappingData MAPPINGS = new MappingDataBase("1.16.2", "1.17", true);
public static final MappingData MAPPINGS = new MappingDataBase("1.16.2", "1.17");
private static final String[] NEW_GAME_EVENT_TAGS = {"minecraft:ignore_vibrations_sneaking", "minecraft:vibrations"};
private final EntityPackets entityRewriter = new EntityPackets(this);
private final InventoryPackets itemRewriter = new InventoryPackets(this);

View File

@ -17,32 +17,68 @@
*/
package com.viaversion.viaversion.protocols.protocol1_18to1_17_1.data;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.viaversion.viaversion.api.data.MappingDataBase;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import org.checkerframework.checker.nullness.qual.Nullable;
public final class MappingData extends MappingDataBase {
private final Object2IntMap<String> blockEntityIds = new Object2IntOpenHashMap<>();
public MappingData() {
super("1.17", "1.18", true);
super("1.17", "1.18");
blockEntityIds.defaultReturnValue(-1);
}
@Override
protected void loadExtras(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings) {
int i = 0;
for (final JsonElement element : mappedIdentifiers.getAsJsonArray("blockentities")) {
final String id = element.getAsString();
blockEntityIds.put(id, i++);
protected void loadExtras(final CompoundTag data) {
final String[] blockEntities = blockEntities();
for (int id = 0; id < blockEntities.length; id++) {
blockEntityIds.put(blockEntities[id], id);
}
}
public Object2IntMap<String> blockEntityIds() {
return blockEntityIds;
}
private String[] blockEntities() {
return new String[]{
"furnace",
"chest",
"trapped_chest",
"ender_chest",
"jukebox",
"dispenser",
"dropper",
"sign",
"mob_spawner",
"piston",
"brewing_stand",
"enchanting_table",
"end_portal",
"beacon",
"skull",
"daylight_detector",
"hopper",
"comparator",
"banner",
"structure_block",
"end_gateway",
"command_block",
"shulker_box",
"bed",
"conduit",
"barrel",
"smoker",
"blast_furnace",
"lectern",
"bell",
"jigsaw",
"campfire",
"beehive",
"sculk_sensor"
};
}
}

View File

@ -50,7 +50,7 @@ import java.util.UUID;
public final class Protocol1_19_3To1_19_1 extends AbstractProtocol<ClientboundPackets1_19_1, ClientboundPackets1_19_3, ServerboundPackets1_19_1, ServerboundPackets1_19_3> {
public static final MappingData MAPPINGS = new MappingDataBase("1.19", "1.19.3", true);
public static final MappingData MAPPINGS = new MappingDataBase("1.19", "1.19.3");
private static final ByteArrayType.OptionalByteArrayType OPTIONAL_MESSAGE_SIGNATURE_BYTES_TYPE = new ByteArrayType.OptionalByteArrayType(256);
private static final ByteArrayType MESSAGE_SIGNATURE_BYTES_TYPE = new ByteArrayType(256);
private static final BitSetType ACKNOWLEDGED_BIT_SET_TYPE = new BitSetType(20);

View File

@ -18,12 +18,10 @@
package com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.data;
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.google.gson.JsonObject;
import com.viaversion.viaversion.api.data.MappingDataBase;
import com.viaversion.viaversion.api.data.MappingDataLoader;
import com.viaversion.viaversion.api.minecraft.nbt.BinaryTagIO;
import java.io.IOException;
import org.checkerframework.checker.nullness.qual.Nullable;
public final class MappingData extends MappingDataBase {
@ -34,8 +32,9 @@ public final class MappingData extends MappingDataBase {
}
@Override
protected void loadExtras(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings) {
protected void loadExtras(final CompoundTag data) {
try {
// TODO Read uncompressed file
damageTypesRegistry = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("damage-types-1.19.4.nbt"));
} catch (final IOException e) {
throw new RuntimeException(e);

View File

@ -21,7 +21,6 @@ import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.github.steveice10.opennbt.tag.builtin.ListTag;
import com.github.steveice10.opennbt.tag.builtin.NumberTag;
import com.github.steveice10.opennbt.tag.builtin.Tag;
import com.google.gson.JsonObject;
import com.viaversion.viaversion.api.data.MappingDataBase;
import com.viaversion.viaversion.api.data.MappingDataLoader;
import com.viaversion.viaversion.api.minecraft.nbt.BinaryTagIO;
@ -35,12 +34,13 @@ public final class MappingData extends MappingDataBase {
private final Int2ObjectMap<CompoundTag> defaultChatTypes = new Int2ObjectOpenHashMap<>();
public MappingData() {
super("1.18", "1.19", true);
super("1.18", "1.19");
}
@Override
protected void loadExtras(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings) {
protected void loadExtras(final CompoundTag daata) {
try {
// TODO Read uncompressed file
final ListTag chatTypes = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("chat-types-1.19.nbt")).get("values");
for (final Tag chatType : chatTypes) {
final CompoundTag chatTypeCompound = (CompoundTag) chatType;
@ -48,7 +48,7 @@ public final class MappingData extends MappingDataBase {
defaultChatTypes.put(idTag.asInt(), chatTypeCompound);
}
} catch (final IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}

View File

@ -52,6 +52,10 @@ public class BlockRewriter<C extends ClientboundPacketType> {
map(Type.UNSIGNED_BYTE); // Action param
map(Type.VAR_INT); // Block id - /!\ NOT BLOCK STATE
handler(wrapper -> {
if (protocol.getMappingData().getBlockMappings() == null) {
return;
}
int id = wrapper.get(Type.VAR_INT, 0);
int mappedId = protocol.getMappingData().getNewBlockId(id);
if (mappedId == -1) {
@ -166,8 +170,11 @@ public class BlockRewriter<C extends ClientboundPacketType> {
public void register() {
map(Type.POSITION1_14);
handler(wrapper -> {
final int blockEntityId = wrapper.read(Type.VAR_INT);
wrapper.write(Type.VAR_INT, protocol.getMappingData().getBlockEntityMappings().getNewIdOrDefault(blockEntityId, blockEntityId));
final Mappings mappings = protocol.getMappingData().getBlockEntityMappings();
if (mappings != null) {
final int blockEntityId = wrapper.read(Type.VAR_INT);
wrapper.write(Type.VAR_INT, mappings.getNewIdOrDefault(blockEntityId, blockEntityId));
}
});
}
});

View File

@ -1,467 +0,0 @@
{
"sounds": [
"ambient.cave",
"block.anvil.break",
"block.anvil.destroy",
"block.anvil.fall",
"block.anvil.hit",
"block.anvil.land",
"block.anvil.place",
"block.anvil.step",
"block.anvil.use",
"block.brewing_stand.brew",
"block.chest.close",
"block.chest.locked",
"block.chest.open",
"block.chorus_flower.death",
"block.chorus_flower.grow",
"block.cloth.break",
"block.cloth.fall",
"block.cloth.hit",
"block.cloth.place",
"block.cloth.step",
"block.comparator.click",
"block.dispenser.dispense",
"block.dispenser.fail",
"block.dispenser.launch",
"block.enchantment_table.use",
"block.end_gateway.spawn",
"block.enderchest.close",
"block.enderchest.open",
"block.fence_gate.close",
"block.fence_gate.open",
"block.fire.ambient",
"block.fire.extinguish",
"block.furnace.fire_crackle",
"block.glass.break",
"block.glass.fall",
"block.glass.hit",
"block.glass.place",
"block.glass.step",
"block.grass.break",
"block.grass.fall",
"block.grass.hit",
"block.grass.place",
"block.grass.step",
"block.gravel.break",
"block.gravel.fall",
"block.gravel.hit",
"block.gravel.place",
"block.gravel.step",
"block.iron_door.close",
"block.iron_door.open",
"block.iron_trapdoor.close",
"block.iron_trapdoor.open",
"block.ladder.break",
"block.ladder.fall",
"block.ladder.hit",
"block.ladder.place",
"block.ladder.step",
"block.lava.ambient",
"block.lava.extinguish",
"block.lava.pop",
"block.lever.click",
"block.metal.break",
"block.metal.fall",
"block.metal.hit",
"block.metal.place",
"block.metal.step",
"block.metal_pressureplate.click_off",
"block.metal_pressureplate.click_on",
"block.note.basedrum",
"block.note.bass",
"block.note.harp",
"block.note.hat",
"block.note.pling",
"block.note.snare",
"block.piston.contract",
"block.piston.extend",
"block.portal.ambient",
"block.portal.travel",
"block.portal.trigger",
"block.redstone_torch.burnout",
"block.sand.break",
"block.sand.fall",
"block.sand.hit",
"block.sand.place",
"block.sand.step",
"block.slime.break",
"block.slime.fall",
"block.slime.hit",
"block.slime.place",
"block.slime.step",
"block.snow.break",
"block.snow.fall",
"block.snow.hit",
"block.snow.place",
"block.snow.step",
"block.stone.break",
"block.stone.fall",
"block.stone.hit",
"block.stone.place",
"block.stone.step",
"block.stone_button.click_off",
"block.stone_button.click_on",
"block.stone_pressureplate.click_off",
"block.stone_pressureplate.click_on",
"block.tripwire.attach",
"block.tripwire.click_off",
"block.tripwire.click_on",
"block.tripwire.detach",
"block.water.ambient",
"block.waterlily.place",
"block.wood.break",
"block.wood.fall",
"block.wood.hit",
"block.wood.place",
"block.wood.step",
"block.wood_button.click_off",
"block.wood_button.click_on",
"block.wood_pressureplate.click_off",
"block.wood_pressureplate.click_on",
"block.wooden_door.close",
"block.wooden_door.open",
"block.wooden_trapdoor.close",
"block.wooden_trapdoor.open",
"enchant.thorns.hit",
"entity.armorstand.break",
"entity.armorstand.fall",
"entity.armorstand.hit",
"entity.armorstand.place",
"entity.arrow.hit",
"entity.arrow.hit_player",
"entity.arrow.shoot",
"entity.bat.ambient",
"entity.bat.death",
"entity.bat.hurt",
"entity.bat.loop",
"entity.bat.takeoff",
"entity.blaze.ambient",
"entity.blaze.burn",
"entity.blaze.death",
"entity.blaze.hurt",
"entity.blaze.shoot",
"entity.bobber.splash",
"entity.bobber.throw",
"entity.cat.ambient",
"entity.cat.death",
"entity.cat.hiss",
"entity.cat.hurt",
"entity.cat.purr",
"entity.cat.purreow",
"entity.chicken.ambient",
"entity.chicken.death",
"entity.chicken.egg",
"entity.chicken.hurt",
"entity.chicken.step",
"entity.cow.ambient",
"entity.cow.death",
"entity.cow.hurt",
"entity.cow.milk",
"entity.cow.step",
"entity.creeper.death",
"entity.creeper.hurt",
"entity.creeper.primed",
"entity.donkey.ambient",
"entity.donkey.angry",
"entity.donkey.chest",
"entity.donkey.death",
"entity.donkey.hurt",
"entity.egg.throw",
"entity.elder_guardian.ambient",
"entity.elder_guardian.ambient_land",
"entity.elder_guardian.curse",
"entity.elder_guardian.death",
"entity.elder_guardian.death_land",
"entity.elder_guardian.hurt",
"entity.elder_guardian.hurt_land",
"entity.enderdragon.ambient",
"entity.enderdragon.death",
"entity.enderdragon.flap",
"entity.enderdragon.growl",
"entity.enderdragon.hurt",
"entity.enderdragon.shoot",
"entity.enderdragon_fireball.explode",
"entity.endereye.launch",
"entity.endermen.ambient",
"entity.endermen.death",
"entity.endermen.hurt",
"entity.endermen.scream",
"entity.endermen.stare",
"entity.endermen.teleport",
"entity.endermite.ambient",
"entity.endermite.death",
"entity.endermite.hurt",
"entity.endermite.step",
"entity.enderpearl.throw",
"entity.experience_bottle.throw",
"entity.experience_orb.pickup",
"entity.experience_orb.touch",
"entity.firework.blast",
"entity.firework.blast_far",
"entity.firework.large_blast",
"entity.firework.large_blast_far",
"entity.firework.launch",
"entity.firework.shoot",
"entity.firework.twinkle",
"entity.firework.twinkle_far",
"entity.generic.big_fall",
"entity.generic.burn",
"entity.generic.death",
"entity.generic.drink",
"entity.generic.eat",
"entity.generic.explode",
"entity.generic.extinguish_fire",
"entity.generic.hurt",
"entity.generic.small_fall",
"entity.generic.splash",
"entity.generic.swim",
"entity.ghast.ambient",
"entity.ghast.death",
"entity.ghast.hurt",
"entity.ghast.scream",
"entity.ghast.shoot",
"entity.ghast.warn",
"entity.guardian.ambient",
"entity.guardian.ambient_land",
"entity.guardian.attack",
"entity.guardian.death",
"entity.guardian.death_land",
"entity.guardian.flop",
"entity.guardian.hurt",
"entity.guardian.hurt_land",
"entity.horse.ambient",
"entity.horse.angry",
"entity.horse.armor",
"entity.horse.breathe",
"entity.horse.death",
"entity.horse.eat",
"entity.horse.gallop",
"entity.horse.hurt",
"entity.horse.jump",
"entity.horse.land",
"entity.horse.saddle",
"entity.horse.step",
"entity.horse.step_wood",
"entity.hostile.big_fall",
"entity.hostile.death",
"entity.hostile.hurt",
"entity.hostile.small_fall",
"entity.hostile.splash",
"entity.hostile.swim",
"entity.husk.ambient",
"entity.husk.death",
"entity.husk.hurt",
"entity.husk.step",
"entity.irongolem.attack",
"entity.irongolem.death",
"entity.irongolem.hurt",
"entity.irongolem.step",
"entity.item.break",
"entity.item.pickup",
"entity.itemframe.add_item",
"entity.itemframe.break",
"entity.itemframe.place",
"entity.itemframe.remove_item",
"entity.itemframe.rotate_item",
"entity.leashknot.break",
"entity.leashknot.place",
"entity.lightning.impact",
"entity.lightning.thunder",
"entity.lingeringpotion.throw",
"entity.magmacube.death",
"entity.magmacube.hurt",
"entity.magmacube.jump",
"entity.magmacube.squish",
"entity.minecart.inside",
"entity.minecart.riding",
"entity.mooshroom.shear",
"entity.mule.ambient",
"entity.mule.death",
"entity.mule.hurt",
"entity.painting.break",
"entity.painting.place",
"entity.pig.ambient",
"entity.pig.death",
"entity.pig.hurt",
"entity.pig.saddle",
"entity.pig.step",
"entity.player.attack.crit",
"entity.player.attack.knockback",
"entity.player.attack.nodamage",
"entity.player.attack.strong",
"entity.player.attack.sweep",
"entity.player.attack.weak",
"entity.player.big_fall",
"entity.player.breath",
"entity.player.burp",
"entity.player.death",
"entity.player.hurt",
"entity.player.levelup",
"entity.player.small_fall",
"entity.player.splash",
"entity.player.swim",
"entity.polar_bear.ambient",
"entity.polar_bear.baby_ambient",
"entity.polar_bear.death",
"entity.polar_bear.hurt",
"entity.polar_bear.step",
"entity.polar_bear.warning",
"entity.rabbit.ambient",
"entity.rabbit.attack",
"entity.rabbit.death",
"entity.rabbit.hurt",
"entity.rabbit.jump",
"entity.sheep.ambient",
"entity.sheep.death",
"entity.sheep.hurt",
"entity.sheep.shear",
"entity.sheep.step",
"entity.shulker.ambient",
"entity.shulker.close",
"entity.shulker.death",
"entity.shulker.hurt",
"entity.shulker.hurt_closed",
"entity.shulker.open",
"entity.shulker.shoot",
"entity.shulker.teleport",
"entity.shulker_bullet.hit",
"entity.shulker_bullet.hurt",
"entity.silverfish.ambient",
"entity.silverfish.death",
"entity.silverfish.hurt",
"entity.silverfish.step",
"entity.skeleton.ambient",
"entity.skeleton.death",
"entity.skeleton.hurt",
"entity.skeleton.shoot",
"entity.skeleton.step",
"entity.skeleton_horse.ambient",
"entity.skeleton_horse.death",
"entity.skeleton_horse.hurt",
"entity.slime.attack",
"entity.slime.death",
"entity.slime.hurt",
"entity.slime.jump",
"entity.slime.squish",
"entity.small_magmacube.death",
"entity.small_magmacube.hurt",
"entity.small_magmacube.squish",
"entity.small_slime.death",
"entity.small_slime.hurt",
"entity.small_slime.jump",
"entity.small_slime.squish",
"entity.snowball.throw",
"entity.snowman.ambient",
"entity.snowman.death",
"entity.snowman.hurt",
"entity.snowman.shoot",
"entity.spider.ambient",
"entity.spider.death",
"entity.spider.hurt",
"entity.spider.step",
"entity.splash_potion.break",
"entity.splash_potion.throw",
"entity.squid.ambient",
"entity.squid.death",
"entity.squid.hurt",
"entity.stray.ambient",
"entity.stray.death",
"entity.stray.hurt",
"entity.stray.step",
"entity.tnt.primed",
"entity.villager.ambient",
"entity.villager.death",
"entity.villager.hurt",
"entity.villager.no",
"entity.villager.trading",
"entity.villager.yes",
"entity.witch.ambient",
"entity.witch.death",
"entity.witch.drink",
"entity.witch.hurt",
"entity.witch.throw",
"entity.wither.ambient",
"entity.wither.break_block",
"entity.wither.death",
"entity.wither.hurt",
"entity.wither.shoot",
"entity.wither.spawn",
"entity.wither_skeleton.ambient",
"entity.wither_skeleton.death",
"entity.wither_skeleton.hurt",
"entity.wither_skeleton.step",
"entity.wolf.ambient",
"entity.wolf.death",
"entity.wolf.growl",
"entity.wolf.howl",
"entity.wolf.hurt",
"entity.wolf.pant",
"entity.wolf.shake",
"entity.wolf.step",
"entity.wolf.whine",
"entity.zombie.ambient",
"entity.zombie.attack_door_wood",
"entity.zombie.attack_iron_door",
"entity.zombie.break_door_wood",
"entity.zombie.death",
"entity.zombie.hurt",
"entity.zombie.infect",
"entity.zombie.step",
"entity.zombie_horse.ambient",
"entity.zombie_horse.death",
"entity.zombie_horse.hurt",
"entity.zombie_pig.ambient",
"entity.zombie_pig.angry",
"entity.zombie_pig.death",
"entity.zombie_pig.hurt",
"entity.zombie_villager.ambient",
"entity.zombie_villager.converted",
"entity.zombie_villager.cure",
"entity.zombie_villager.death",
"entity.zombie_villager.hurt",
"entity.zombie_villager.step",
"item.armor.equip_chain",
"item.armor.equip_diamond",
"item.armor.equip_generic",
"item.armor.equip_gold",
"item.armor.equip_iron",
"item.armor.equip_leather",
"item.bottle.fill",
"item.bottle.fill_dragonbreath",
"item.bucket.empty",
"item.bucket.empty_lava",
"item.bucket.fill",
"item.bucket.fill_lava",
"item.chorus_fruit.teleport",
"item.elytra.flying",
"item.firecharge.use",
"item.flintandsteel.use",
"item.hoe.till",
"item.shield.block",
"item.shield.break",
"item.shovel.flatten",
"music.creative",
"music.credits",
"music.dragon",
"music.end",
"music.game",
"music.menu",
"music.nether",
"record.11",
"record.13",
"record.blocks",
"record.cat",
"record.chirp",
"record.far",
"record.mall",
"record.mellohi",
"record.stal",
"record.strad",
"record.wait",
"record.ward",
"ui.button.click",
"weather.rain",
"weather.rain.above"
]
}

View File

@ -1,497 +0,0 @@
{
"sounds": [
"ambient.cave",
"block.anvil.break",
"block.anvil.destroy",
"block.anvil.fall",
"block.anvil.hit",
"block.anvil.land",
"block.anvil.place",
"block.anvil.step",
"block.anvil.use",
"block.brewing_stand.brew",
"block.chest.close",
"block.chest.locked",
"block.chest.open",
"block.chorus_flower.death",
"block.chorus_flower.grow",
"block.cloth.break",
"block.cloth.fall",
"block.cloth.hit",
"block.cloth.place",
"block.cloth.step",
"block.comparator.click",
"block.dispenser.dispense",
"block.dispenser.fail",
"block.dispenser.launch",
"block.enchantment_table.use",
"block.end_gateway.spawn",
"block.enderchest.close",
"block.enderchest.open",
"block.fence_gate.close",
"block.fence_gate.open",
"block.fire.ambient",
"block.fire.extinguish",
"block.furnace.fire_crackle",
"block.glass.break",
"block.glass.fall",
"block.glass.hit",
"block.glass.place",
"block.glass.step",
"block.grass.break",
"block.grass.fall",
"block.grass.hit",
"block.grass.place",
"block.grass.step",
"block.gravel.break",
"block.gravel.fall",
"block.gravel.hit",
"block.gravel.place",
"block.gravel.step",
"block.iron_door.close",
"block.iron_door.open",
"block.iron_trapdoor.close",
"block.iron_trapdoor.open",
"block.ladder.break",
"block.ladder.fall",
"block.ladder.hit",
"block.ladder.place",
"block.ladder.step",
"block.lava.ambient",
"block.lava.extinguish",
"block.lava.pop",
"block.lever.click",
"block.metal.break",
"block.metal.fall",
"block.metal.hit",
"block.metal.place",
"block.metal.step",
"block.metal_pressureplate.click_off",
"block.metal_pressureplate.click_on",
"block.note.basedrum",
"block.note.bass",
"block.note.harp",
"block.note.hat",
"block.note.pling",
"block.note.snare",
"block.piston.contract",
"block.piston.extend",
"block.portal.ambient",
"block.portal.travel",
"block.portal.trigger",
"block.redstone_torch.burnout",
"block.sand.break",
"block.sand.fall",
"block.sand.hit",
"block.sand.place",
"block.sand.step",
"block.shulker_box.close",
"block.shulker_box.open",
"block.slime.break",
"block.slime.fall",
"block.slime.hit",
"block.slime.place",
"block.slime.step",
"block.snow.break",
"block.snow.fall",
"block.snow.hit",
"block.snow.place",
"block.snow.step",
"block.stone.break",
"block.stone.fall",
"block.stone.hit",
"block.stone.place",
"block.stone.step",
"block.stone_button.click_off",
"block.stone_button.click_on",
"block.stone_pressureplate.click_off",
"block.stone_pressureplate.click_on",
"block.tripwire.attach",
"block.tripwire.click_off",
"block.tripwire.click_on",
"block.tripwire.detach",
"block.water.ambient",
"block.waterlily.place",
"block.wood.break",
"block.wood.fall",
"block.wood.hit",
"block.wood.place",
"block.wood.step",
"block.wood_button.click_off",
"block.wood_button.click_on",
"block.wood_pressureplate.click_off",
"block.wood_pressureplate.click_on",
"block.wooden_door.close",
"block.wooden_door.open",
"block.wooden_trapdoor.close",
"block.wooden_trapdoor.open",
"enchant.thorns.hit",
"entity.armorstand.break",
"entity.armorstand.fall",
"entity.armorstand.hit",
"entity.armorstand.place",
"entity.arrow.hit",
"entity.arrow.hit_player",
"entity.arrow.shoot",
"entity.bat.ambient",
"entity.bat.death",
"entity.bat.hurt",
"entity.bat.loop",
"entity.bat.takeoff",
"entity.blaze.ambient",
"entity.blaze.burn",
"entity.blaze.death",
"entity.blaze.hurt",
"entity.blaze.shoot",
"entity.bobber.splash",
"entity.bobber.throw",
"entity.cat.ambient",
"entity.cat.death",
"entity.cat.hiss",
"entity.cat.hurt",
"entity.cat.purr",
"entity.cat.purreow",
"entity.chicken.ambient",
"entity.chicken.death",
"entity.chicken.egg",
"entity.chicken.hurt",
"entity.chicken.step",
"entity.cow.ambient",
"entity.cow.death",
"entity.cow.hurt",
"entity.cow.milk",
"entity.cow.step",
"entity.creeper.death",
"entity.creeper.hurt",
"entity.creeper.primed",
"entity.donkey.ambient",
"entity.donkey.angry",
"entity.donkey.chest",
"entity.donkey.death",
"entity.donkey.hurt",
"entity.egg.throw",
"entity.elder_guardian.ambient",
"entity.elder_guardian.ambient_land",
"entity.elder_guardian.curse",
"entity.elder_guardian.death",
"entity.elder_guardian.death_land",
"entity.elder_guardian.hurt",
"entity.elder_guardian.flop",
"entity.elder_guardian.hurt_land",
"entity.enderdragon.ambient",
"entity.enderdragon.death",
"entity.enderdragon.flap",
"entity.enderdragon.growl",
"entity.enderdragon.hurt",
"entity.enderdragon.shoot",
"entity.enderdragon_fireball.explode",
"entity.endereye.launch",
"entity.endermen.ambient",
"entity.endermen.death",
"entity.endermen.hurt",
"entity.endermen.scream",
"entity.endermen.stare",
"entity.endermen.teleport",
"entity.endermite.ambient",
"entity.endermite.death",
"entity.endermite.hurt",
"entity.endermite.step",
"entity.enderpearl.throw",
"entity.evocation_fangs.attack",
"entity.evocation_illager.ambient",
"entity.evocation_illager.cast_spell",
"entity.evocation_illager.death",
"entity.evocation_illager.hurt",
"entity.evocation_illager.prepare_attack",
"entity.evocation_illager.prepare_summon",
"entity.evocation_illager.prepare_wololo",
"entity.experience_bottle.throw",
"entity.experience_orb.pickup",
"entity.firework.blast",
"entity.firework.blast_far",
"entity.firework.large_blast",
"entity.firework.large_blast_far",
"entity.firework.launch",
"entity.firework.shoot",
"entity.firework.twinkle",
"entity.firework.twinkle_far",
"entity.generic.big_fall",
"entity.generic.burn",
"entity.generic.death",
"entity.generic.drink",
"entity.generic.eat",
"entity.generic.explode",
"entity.generic.extinguish_fire",
"entity.generic.hurt",
"entity.generic.small_fall",
"entity.generic.splash",
"entity.generic.swim",
"entity.ghast.ambient",
"entity.ghast.death",
"entity.ghast.hurt",
"entity.ghast.scream",
"entity.ghast.shoot",
"entity.ghast.warn",
"entity.guardian.ambient",
"entity.guardian.ambient_land",
"entity.guardian.attack",
"entity.guardian.death",
"entity.guardian.death_land",
"entity.guardian.flop",
"entity.guardian.hurt",
"entity.guardian.hurt_land",
"entity.horse.ambient",
"entity.horse.angry",
"entity.horse.armor",
"entity.horse.breathe",
"entity.horse.death",
"entity.horse.eat",
"entity.horse.gallop",
"entity.horse.hurt",
"entity.horse.jump",
"entity.horse.land",
"entity.horse.saddle",
"entity.horse.step",
"entity.horse.step_wood",
"entity.hostile.big_fall",
"entity.hostile.death",
"entity.hostile.hurt",
"entity.hostile.small_fall",
"entity.hostile.splash",
"entity.hostile.swim",
"entity.husk.ambient",
"entity.husk.death",
"entity.husk.hurt",
"entity.husk.step",
"entity.irongolem.attack",
"entity.irongolem.death",
"entity.irongolem.hurt",
"entity.irongolem.step",
"entity.item.break",
"entity.item.pickup",
"entity.itemframe.add_item",
"entity.itemframe.break",
"entity.itemframe.place",
"entity.itemframe.remove_item",
"entity.itemframe.rotate_item",
"entity.leashknot.break",
"entity.leashknot.place",
"entity.lightning.impact",
"entity.lightning.thunder",
"entity.lingeringpotion.throw",
"entity.llama.ambient",
"entity.llama.angry",
"entity.llama.chest",
"entity.llama.death",
"entity.llama.eat",
"entity.llama.hurt",
"entity.llama.spit",
"entity.llama.step",
"entity.llama.swag",
"entity.magmacube.death",
"entity.magmacube.hurt",
"entity.magmacube.jump",
"entity.magmacube.squish",
"entity.minecart.inside",
"entity.minecart.riding",
"entity.mooshroom.shear",
"entity.mule.ambient",
"entity.mule.chest",
"entity.mule.death",
"entity.mule.hurt",
"entity.painting.break",
"entity.painting.place",
"entity.pig.ambient",
"entity.pig.death",
"entity.pig.hurt",
"entity.pig.saddle",
"entity.pig.step",
"entity.player.attack.crit",
"entity.player.attack.knockback",
"entity.player.attack.nodamage",
"entity.player.attack.strong",
"entity.player.attack.sweep",
"entity.player.attack.weak",
"entity.player.big_fall",
"entity.player.breath",
"entity.player.burp",
"entity.player.death",
"entity.player.hurt",
"entity.player.levelup",
"entity.player.small_fall",
"entity.player.splash",
"entity.player.swim",
"entity.polar_bear.ambient",
"entity.polar_bear.baby_ambient",
"entity.polar_bear.death",
"entity.polar_bear.hurt",
"entity.polar_bear.step",
"entity.polar_bear.warning",
"entity.rabbit.ambient",
"entity.rabbit.attack",
"entity.rabbit.death",
"entity.rabbit.hurt",
"entity.rabbit.jump",
"entity.sheep.ambient",
"entity.sheep.death",
"entity.sheep.hurt",
"entity.sheep.shear",
"entity.sheep.step",
"entity.shulker.ambient",
"entity.shulker.close",
"entity.shulker.death",
"entity.shulker.hurt",
"entity.shulker.hurt_closed",
"entity.shulker.open",
"entity.shulker.shoot",
"entity.shulker.teleport",
"entity.shulker_bullet.hit",
"entity.shulker_bullet.hurt",
"entity.silverfish.ambient",
"entity.silverfish.death",
"entity.silverfish.hurt",
"entity.silverfish.step",
"entity.skeleton.ambient",
"entity.skeleton.death",
"entity.skeleton.hurt",
"entity.skeleton.shoot",
"entity.skeleton.step",
"entity.skeleton_horse.ambient",
"entity.skeleton_horse.death",
"entity.skeleton_horse.hurt",
"entity.slime.attack",
"entity.slime.death",
"entity.slime.hurt",
"entity.slime.jump",
"entity.slime.squish",
"entity.small_magmacube.death",
"entity.small_magmacube.hurt",
"entity.small_magmacube.squish",
"entity.small_slime.death",
"entity.small_slime.hurt",
"entity.small_slime.jump",
"entity.small_slime.squish",
"entity.snowball.throw",
"entity.snowman.ambient",
"entity.snowman.death",
"entity.snowman.hurt",
"entity.snowman.shoot",
"entity.spider.ambient",
"entity.spider.death",
"entity.spider.hurt",
"entity.spider.step",
"entity.splash_potion.break",
"entity.splash_potion.throw",
"entity.squid.ambient",
"entity.squid.death",
"entity.squid.hurt",
"entity.stray.ambient",
"entity.stray.death",
"entity.stray.hurt",
"entity.stray.step",
"entity.tnt.primed",
"entity.vex.ambient",
"entity.vex.charge",
"entity.vex.death",
"entity.vex.hurt",
"entity.villager.ambient",
"entity.villager.death",
"entity.villager.hurt",
"entity.villager.no",
"entity.villager.trading",
"entity.villager.yes",
"entity.vindication_illager.ambient",
"entity.vindication_illager.death",
"entity.vindication_illager.hurt",
"entity.witch.ambient",
"entity.witch.death",
"entity.witch.drink",
"entity.witch.hurt",
"entity.witch.throw",
"entity.wither.ambient",
"entity.wither.break_block",
"entity.wither.death",
"entity.wither.hurt",
"entity.wither.shoot",
"entity.wither.spawn",
"entity.wither_skeleton.ambient",
"entity.wither_skeleton.death",
"entity.wither_skeleton.hurt",
"entity.wither_skeleton.step",
"entity.wolf.ambient",
"entity.wolf.death",
"entity.wolf.growl",
"entity.wolf.howl",
"entity.wolf.hurt",
"entity.wolf.pant",
"entity.wolf.shake",
"entity.wolf.step",
"entity.wolf.whine",
"entity.zombie.ambient",
"entity.zombie.attack_door_wood",
"entity.zombie.attack_iron_door",
"entity.zombie.break_door_wood",
"entity.zombie.death",
"entity.zombie.hurt",
"entity.zombie.infect",
"entity.zombie.step",
"entity.zombie_horse.ambient",
"entity.zombie_horse.death",
"entity.zombie_horse.hurt",
"entity.zombie_pig.ambient",
"entity.zombie_pig.angry",
"entity.zombie_pig.death",
"entity.zombie_pig.hurt",
"entity.zombie_villager.ambient",
"entity.zombie_villager.converted",
"entity.zombie_villager.cure",
"entity.zombie_villager.death",
"entity.zombie_villager.hurt",
"entity.zombie_villager.step",
"item.armor.equip_chain",
"item.armor.equip_diamond",
"item.armor.equip_elytra",
"item.armor.equip_generic",
"item.armor.equip_gold",
"item.armor.equip_iron",
"item.armor.equip_leather",
"item.bottle.empty",
"item.bottle.fill",
"item.bottle.fill_dragonbreath",
"item.bucket.empty",
"item.bucket.empty_lava",
"item.bucket.fill",
"item.bucket.fill_lava",
"item.chorus_fruit.teleport",
"item.elytra.flying",
"item.firecharge.use",
"item.flintandsteel.use",
"item.hoe.till",
"item.shield.block",
"item.shield.break",
"item.shovel.flatten",
"item.totem.use",
"music.creative",
"music.credits",
"music.dragon",
"music.end",
"music.game",
"music.menu",
"music.nether",
"record.11",
"record.13",
"record.blocks",
"record.cat",
"record.chirp",
"record.far",
"record.mall",
"record.mellohi",
"record.stal",
"record.strad",
"record.wait",
"record.ward",
"ui.button.click",
"weather.rain",
"weather.rain.above"
]
}

View File

@ -1,448 +0,0 @@
{
"sounds": [
"ambient.cave",
"block.anvil.break",
"block.anvil.destroy",
"block.anvil.fall",
"block.anvil.hit",
"block.anvil.land",
"block.anvil.place",
"block.anvil.step",
"block.anvil.use",
"block.brewing_stand.brew",
"block.chest.close",
"block.chest.locked",
"block.chest.open",
"block.chorus_flower.death",
"block.chorus_flower.grow",
"block.cloth.break",
"block.cloth.fall",
"block.cloth.hit",
"block.cloth.place",
"block.cloth.step",
"block.comparator.click",
"block.dispenser.dispense",
"block.dispenser.fail",
"block.dispenser.launch",
"block.end_gateway.spawn",
"block.enderchest.close",
"block.enderchest.open",
"block.fence_gate.close",
"block.fence_gate.open",
"block.fire.ambient",
"block.fire.extinguish",
"block.furnace.fire_crackle",
"block.glass.break",
"block.glass.fall",
"block.glass.hit",
"block.glass.place",
"block.glass.step",
"block.grass.break",
"block.grass.fall",
"block.grass.hit",
"block.grass.place",
"block.grass.step",
"block.gravel.break",
"block.gravel.fall",
"block.gravel.hit",
"block.gravel.place",
"block.gravel.step",
"block.iron_door.close",
"block.iron_door.open",
"block.iron_trapdoor.close",
"block.iron_trapdoor.open",
"block.ladder.break",
"block.ladder.fall",
"block.ladder.hit",
"block.ladder.place",
"block.ladder.step",
"block.lava.ambient",
"block.lava.extinguish",
"block.lava.pop",
"block.lever.click",
"block.metal.break",
"block.metal.fall",
"block.metal.hit",
"block.metal.place",
"block.metal.step",
"block.metal_pressureplate.click_off",
"block.metal_pressureplate.click_on",
"block.note.basedrum",
"block.note.bass",
"block.note.harp",
"block.note.hat",
"block.note.pling",
"block.note.snare",
"block.piston.contract",
"block.piston.extend",
"block.portal.ambient",
"block.portal.travel",
"block.portal.trigger",
"block.redstone_torch.burnout",
"block.sand.break",
"block.sand.fall",
"block.sand.hit",
"block.sand.place",
"block.sand.step",
"block.slime.break",
"block.slime.fall",
"block.slime.hit",
"block.slime.place",
"block.slime.step",
"block.snow.break",
"block.snow.fall",
"block.snow.hit",
"block.snow.place",
"block.snow.step",
"block.stone.break",
"block.stone.fall",
"block.stone.hit",
"block.stone.place",
"block.stone.step",
"block.stone_button.click_off",
"block.stone_button.click_on",
"block.stone_pressureplate.click_off",
"block.stone_pressureplate.click_on",
"block.tripwire.attach",
"block.tripwire.click_off",
"block.tripwire.click_on",
"block.tripwire.detach",
"block.water.ambient",
"block.waterlily.place",
"block.wood.break",
"block.wood.fall",
"block.wood.hit",
"block.wood.place",
"block.wood.step",
"block.wood_button.click_off",
"block.wood_button.click_on",
"block.wood_pressureplate.click_off",
"block.wood_pressureplate.click_on",
"block.wooden_door.close",
"block.wooden_door.open",
"block.wooden_trapdoor.close",
"block.wooden_trapdoor.open",
"enchant.thorns.hit",
"entity.armorstand.break",
"entity.armorstand.fall",
"entity.armorstand.hit",
"entity.armorstand.place",
"entity.arrow.hit",
"entity.arrow.hit_player",
"entity.arrow.shoot",
"entity.bat.ambient",
"entity.bat.death",
"entity.bat.hurt",
"entity.bat.loop",
"entity.bat.takeoff",
"entity.blaze.ambient",
"entity.blaze.burn",
"entity.blaze.death",
"entity.blaze.hurt",
"entity.blaze.shoot",
"entity.bobber.splash",
"entity.bobber.throw",
"entity.cat.ambient",
"entity.cat.death",
"entity.cat.hiss",
"entity.cat.hurt",
"entity.cat.purr",
"entity.cat.purreow",
"entity.chicken.ambient",
"entity.chicken.death",
"entity.chicken.egg",
"entity.chicken.hurt",
"entity.chicken.step",
"entity.cow.ambient",
"entity.cow.death",
"entity.cow.hurt",
"entity.cow.milk",
"entity.cow.step",
"entity.creeper.death",
"entity.creeper.hurt",
"entity.creeper.primed",
"entity.donkey.ambient",
"entity.donkey.angry",
"entity.donkey.chest",
"entity.donkey.death",
"entity.donkey.hurt",
"entity.egg.throw",
"entity.elder_guardian.ambient",
"entity.elder_guardian.ambient_land",
"entity.elder_guardian.curse",
"entity.elder_guardian.death",
"entity.elder_guardian.death_land",
"entity.elder_guardian.hurt",
"entity.elder_guardian.hurt_land",
"entity.enderdragon.ambient",
"entity.enderdragon.death",
"entity.enderdragon.flap",
"entity.enderdragon.growl",
"entity.enderdragon.hurt",
"entity.enderdragon.shoot",
"entity.enderdragon_fireball.explode",
"entity.endereye.launch",
"entity.endermen.ambient",
"entity.endermen.death",
"entity.endermen.hurt",
"entity.endermen.scream",
"entity.endermen.stare",
"entity.endermen.teleport",
"entity.endermite.ambient",
"entity.endermite.death",
"entity.endermite.hurt",
"entity.endermite.step",
"entity.enderpearl.throw",
"entity.experience_bottle.throw",
"entity.experience_orb.pickup",
"entity.experience_orb.touch",
"entity.firework.blast",
"entity.firework.blast_far",
"entity.firework.large_blast",
"entity.firework.large_blast_far",
"entity.firework.launch",
"entity.firework.shoot",
"entity.firework.twinkle",
"entity.firework.twinkle_far",
"entity.generic.big_fall",
"entity.generic.burn",
"entity.generic.death",
"entity.generic.drink",
"entity.generic.eat",
"entity.generic.explode",
"entity.generic.extinguish_fire",
"entity.generic.hurt",
"entity.generic.small_fall",
"entity.generic.splash",
"entity.generic.swim",
"entity.ghast.ambient",
"entity.ghast.death",
"entity.ghast.hurt",
"entity.ghast.scream",
"entity.ghast.shoot",
"entity.ghast.warn",
"entity.guardian.ambient",
"entity.guardian.ambient_land",
"entity.guardian.attack",
"entity.guardian.death",
"entity.guardian.death_land",
"entity.guardian.flop",
"entity.guardian.hurt",
"entity.guardian.hurt_land",
"entity.horse.ambient",
"entity.horse.angry",
"entity.horse.armor",
"entity.horse.breathe",
"entity.horse.death",
"entity.horse.eat",
"entity.horse.gallop",
"entity.horse.hurt",
"entity.horse.jump",
"entity.horse.land",
"entity.horse.saddle",
"entity.horse.step",
"entity.horse.step_wood",
"entity.hostile.big_fall",
"entity.hostile.death",
"entity.hostile.hurt",
"entity.hostile.small_fall",
"entity.hostile.splash",
"entity.hostile.swim",
"entity.irongolem.attack",
"entity.irongolem.death",
"entity.irongolem.hurt",
"entity.irongolem.step",
"entity.item.break",
"entity.item.pickup",
"entity.itemframe.add_item",
"entity.itemframe.break",
"entity.itemframe.place",
"entity.itemframe.remove_item",
"entity.itemframe.rotate_item",
"entity.leashknot.break",
"entity.leashknot.place",
"entity.lightning.impact",
"entity.lightning.thunder",
"entity.lingeringpotion.throw",
"entity.magmacube.death",
"entity.magmacube.hurt",
"entity.magmacube.jump",
"entity.magmacube.squish",
"entity.minecart.inside",
"entity.minecart.riding",
"entity.mooshroom.shear",
"entity.mule.ambient",
"entity.mule.death",
"entity.mule.hurt",
"entity.painting.break",
"entity.painting.place",
"entity.pig.ambient",
"entity.pig.death",
"entity.pig.hurt",
"entity.pig.saddle",
"entity.pig.step",
"entity.player.attack.crit",
"entity.player.attack.knockback",
"entity.player.attack.nodamage",
"entity.player.attack.strong",
"entity.player.attack.sweep",
"entity.player.attack.weak",
"entity.player.big_fall",
"entity.player.breath",
"entity.player.burp",
"entity.player.death",
"entity.player.hurt",
"entity.player.levelup",
"entity.player.small_fall",
"entity.player.splash",
"entity.player.swim",
"entity.rabbit.ambient",
"entity.rabbit.attack",
"entity.rabbit.death",
"entity.rabbit.hurt",
"entity.rabbit.jump",
"entity.sheep.ambient",
"entity.sheep.death",
"entity.sheep.hurt",
"entity.sheep.shear",
"entity.sheep.step",
"entity.shulker.ambient",
"entity.shulker.close",
"entity.shulker.death",
"entity.shulker.hurt",
"entity.shulker.hurt_closed",
"entity.shulker.open",
"entity.shulker.shoot",
"entity.shulker.teleport",
"entity.shulker_bullet.hit",
"entity.shulker_bullet.hurt",
"entity.silverfish.ambient",
"entity.silverfish.death",
"entity.silverfish.hurt",
"entity.silverfish.step",
"entity.skeleton.ambient",
"entity.skeleton.death",
"entity.skeleton.hurt",
"entity.skeleton.shoot",
"entity.skeleton.step",
"entity.skeleton_horse.ambient",
"entity.skeleton_horse.death",
"entity.skeleton_horse.hurt",
"entity.slime.attack",
"entity.slime.death",
"entity.slime.hurt",
"entity.slime.jump",
"entity.slime.squish",
"entity.small_magmacube.death",
"entity.small_magmacube.hurt",
"entity.small_magmacube.squish",
"entity.small_slime.death",
"entity.small_slime.hurt",
"entity.small_slime.jump",
"entity.small_slime.squish",
"entity.snowball.throw",
"entity.snowman.ambient",
"entity.snowman.death",
"entity.snowman.hurt",
"entity.snowman.shoot",
"entity.spider.ambient",
"entity.spider.death",
"entity.spider.hurt",
"entity.spider.step",
"entity.splash_potion.break",
"entity.splash_potion.throw",
"entity.squid.ambient",
"entity.squid.death",
"entity.squid.hurt",
"entity.tnt.primed",
"entity.villager.ambient",
"entity.villager.death",
"entity.villager.hurt",
"entity.villager.no",
"entity.villager.trading",
"entity.villager.yes",
"entity.witch.ambient",
"entity.witch.death",
"entity.witch.drink",
"entity.witch.hurt",
"entity.witch.throw",
"entity.wither.ambient",
"entity.wither.break_block",
"entity.wither.death",
"entity.wither.hurt",
"entity.wither.shoot",
"entity.wither.spawn",
"entity.wolf.ambient",
"entity.wolf.death",
"entity.wolf.growl",
"entity.wolf.howl",
"entity.wolf.hurt",
"entity.wolf.pant",
"entity.wolf.shake",
"entity.wolf.step",
"entity.wolf.whine",
"entity.zombie.ambient",
"entity.zombie.attack_door_wood",
"entity.zombie.attack_iron_door",
"entity.zombie.break_door_wood",
"entity.zombie.death",
"entity.zombie.hurt",
"entity.zombie.infect",
"entity.zombie.step",
"entity.zombie_horse.ambient",
"entity.zombie_horse.death",
"entity.zombie_horse.hurt",
"entity.zombie_pig.ambient",
"entity.zombie_pig.angry",
"entity.zombie_pig.death",
"entity.zombie_pig.hurt",
"entity.zombie_villager.ambient",
"entity.zombie_villager.converted",
"entity.zombie_villager.cure",
"entity.zombie_villager.death",
"entity.zombie_villager.hurt",
"entity.zombie_villager.step",
"item.armor.equip_chain",
"item.armor.equip_diamond",
"item.armor.equip_generic",
"item.armor.equip_gold",
"item.armor.equip_iron",
"item.armor.equip_leather",
"item.bottle.fill",
"item.bottle.fill_dragonbreath",
"item.bucket.empty",
"item.bucket.empty_lava",
"item.bucket.fill",
"item.bucket.fill_lava",
"item.chorus_fruit.teleport",
"item.elytra.flying",
"item.firecharge.use",
"item.flintandsteel.use",
"item.hoe.till",
"item.shield.block",
"item.shield.break",
"item.shovel.flatten",
"music.creative",
"music.credits",
"music.dragon",
"music.end",
"music.game",
"music.menu",
"music.nether",
"record.11",
"record.13",
"record.blocks",
"record.cat",
"record.chirp",
"record.far",
"record.mall",
"record.mellohi",
"record.stal",
"record.strad",
"record.wait",
"record.ward",
"ui.button.click",
"weather.rain",
"weather.rain.above"
]
}

View File

@ -1,64 +0,0 @@
{
"blockstates": {
"1126": "tnt[unstable=false]",
"3075": "oak_sign[rotation=0,waterlogged=true]",
"3076": "oak_sign[rotation=0,waterlogged=false]",
"3077": "oak_sign[rotation=1,waterlogged=true]",
"3078": "oak_sign[rotation=1,waterlogged=false]",
"3079": "oak_sign[rotation=2,waterlogged=true]",
"3080": "oak_sign[rotation=2,waterlogged=false]",
"3081": "oak_sign[rotation=3,waterlogged=true]",
"3082": "oak_sign[rotation=3,waterlogged=false]",
"3083": "oak_sign[rotation=4,waterlogged=true]",
"3084": "oak_sign[rotation=4,waterlogged=false]",
"3085": "oak_sign[rotation=5,waterlogged=true]",
"3086": "oak_sign[rotation=5,waterlogged=false]",
"3087": "oak_sign[rotation=6,waterlogged=true]",
"3088": "oak_sign[rotation=6,waterlogged=false]",
"3089": "oak_sign[rotation=7,waterlogged=true]",
"3090": "oak_sign[rotation=7,waterlogged=false]",
"3091": "oak_sign[rotation=8,waterlogged=true]",
"3092": "oak_sign[rotation=8,waterlogged=false]",
"3093": "oak_sign[rotation=9,waterlogged=true]",
"3094": "oak_sign[rotation=9,waterlogged=false]",
"3095": "oak_sign[rotation=10,waterlogged=true]",
"3096": "oak_sign[rotation=10,waterlogged=false]",
"3097": "oak_sign[rotation=11,waterlogged=true]",
"3098": "oak_sign[rotation=11,waterlogged=false]",
"3099": "oak_sign[rotation=12,waterlogged=true]",
"3100": "oak_sign[rotation=12,waterlogged=false]",
"3101": "oak_sign[rotation=13,waterlogged=true]",
"3102": "oak_sign[rotation=13,waterlogged=false]",
"3103": "oak_sign[rotation=14,waterlogged=true]",
"3104": "oak_sign[rotation=14,waterlogged=false]",
"3105": "oak_sign[rotation=15,waterlogged=true]",
"3106": "oak_sign[rotation=15,waterlogged=false]",
"3269": "oak_wall_sign[facing=north,waterlogged=true]",
"3270": "oak_wall_sign[facing=north,waterlogged=false]",
"3271": "oak_wall_sign[facing=south,waterlogged=true]",
"3272": "oak_wall_sign[facing=south,waterlogged=false]",
"3273": "oak_wall_sign[facing=west,waterlogged=true]",
"3274": "oak_wall_sign[facing=west,waterlogged=false]",
"3275": "oak_wall_sign[facing=east,waterlogged=true]",
"3276": "oak_wall_sign[facing=east,waterlogged=false]",
"7293": "smooth_stone_slab[type=top,waterlogged=true]",
"7294": "smooth_stone_slab[type=top,waterlogged=false]",
"7295": "smooth_stone_slab[type=bottom,waterlogged=true]",
"7296": "smooth_stone_slab[type=bottom,waterlogged=false]",
"7297": "smooth_stone_slab[type=double,waterlogged=true]",
"7298": "smooth_stone_slab[type=double,waterlogged=false]",
"8459": "tube_coral[waterlogged=true]",
"8460": "brain_coral[waterlogged=true]",
"8461": "bubble_coral[waterlogged=true]",
"8462": "fire_coral[waterlogged=true]",
"8463": "horn_coral[waterlogged=true]",
"8573": "conduit[waterlogged=true]"
},
"items": {
"118": "smooth_stone_slab",
"536": "oak_sign",
"573": "red_dye",
"574": "green_dye",
"583": "yellow_dye"
}
}

View File

@ -1,20 +0,0 @@
{
"blockstates": {
"11198": "bell[attachment=floor,facing=north,powered=false]",
"11199": "bell[attachment=floor,facing=south,powered=false]",
"11200": "bell[attachment=floor,facing=west,powered=false]",
"11201": "bell[attachment=floor,facing=east,powered=false]",
"11202": "bell[attachment=ceiling,facing=north,powered=false]",
"11203": "bell[attachment=ceiling,facing=south,powered=false]",
"11204": "bell[attachment=ceiling,facing=west,powered=false]",
"11205": "bell[attachment=ceiling,facing=east,powered=false]",
"11206": "bell[attachment=single_wall,facing=north,powered=false]",
"11207": "bell[attachment=single_wall,facing=south,powered=false]",
"11208": "bell[attachment=single_wall,facing=west,powered=false]",
"11209": "bell[attachment=single_wall,facing=east,powered=false]",
"11210": "bell[attachment=double_wall,facing=north,powered=false]",
"11211": "bell[attachment=double_wall,facing=south,powered=false]",
"11212": "bell[attachment=double_wall,facing=west,powered=false]",
"11213": "bell[attachment=double_wall,facing=east,powered=false]"
}
}

View File

@ -1,916 +0,0 @@
{
"items": {
"754": "zombified_piglin_spawn_egg"
},
"sounds": {
"entity.zombie_pigman.ambient": "entity.zombified_piglin.ambient",
"entity.zombie_pigman.angry": "entity.zombified_piglin.angry",
"entity.zombie_pigman.death": "entity.zombified_piglin.death",
"entity.zombie_pigman.hurt": "entity.zombified_piglin.hurt",
"music.nether": "music.nether.nether_wastes"
},
"blockstates": {
"5641": "cobblestone_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"5642": "cobblestone_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"5643": "cobblestone_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"5644": "cobblestone_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"5645": "cobblestone_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"5646": "cobblestone_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"5647": "cobblestone_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"5648": "cobblestone_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"5649": "cobblestone_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"5650": "cobblestone_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"5651": "cobblestone_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"5652": "cobblestone_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"5653": "cobblestone_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"5654": "cobblestone_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"5655": "cobblestone_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"5656": "cobblestone_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"5657": "cobblestone_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"5658": "cobblestone_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"5659": "cobblestone_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"5660": "cobblestone_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"5661": "cobblestone_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"5662": "cobblestone_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"5663": "cobblestone_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"5664": "cobblestone_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"5665": "cobblestone_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"5666": "cobblestone_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"5667": "cobblestone_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"5668": "cobblestone_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"5669": "cobblestone_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"5670": "cobblestone_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"5671": "cobblestone_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"5672": "cobblestone_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"5673": "cobblestone_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"5674": "cobblestone_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"5675": "cobblestone_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"5676": "cobblestone_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"5677": "cobblestone_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"5678": "cobblestone_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"5679": "cobblestone_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"5680": "cobblestone_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"5681": "cobblestone_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"5682": "cobblestone_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"5683": "cobblestone_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"5684": "cobblestone_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"5685": "cobblestone_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"5686": "cobblestone_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"5687": "cobblestone_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"5688": "cobblestone_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"5689": "cobblestone_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"5690": "cobblestone_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"5691": "cobblestone_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"5692": "cobblestone_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"5693": "cobblestone_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"5694": "cobblestone_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"5695": "cobblestone_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"5696": "cobblestone_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"5697": "cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"5698": "cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"5699": "cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"5700": "cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"5701": "cobblestone_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"5702": "cobblestone_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"5703": "cobblestone_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"5704": "cobblestone_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"5705": "mossy_cobblestone_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"5706": "mossy_cobblestone_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"5707": "mossy_cobblestone_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"5708": "mossy_cobblestone_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"5709": "mossy_cobblestone_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"5710": "mossy_cobblestone_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"5711": "mossy_cobblestone_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"5712": "mossy_cobblestone_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"5713": "mossy_cobblestone_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"5714": "mossy_cobblestone_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"5715": "mossy_cobblestone_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"5716": "mossy_cobblestone_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"5717": "mossy_cobblestone_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"5718": "mossy_cobblestone_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"5719": "mossy_cobblestone_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"5720": "mossy_cobblestone_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"5721": "mossy_cobblestone_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"5722": "mossy_cobblestone_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"5723": "mossy_cobblestone_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"5724": "mossy_cobblestone_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"5725": "mossy_cobblestone_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"5726": "mossy_cobblestone_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"5727": "mossy_cobblestone_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"5728": "mossy_cobblestone_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"5729": "mossy_cobblestone_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"5730": "mossy_cobblestone_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"5731": "mossy_cobblestone_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"5732": "mossy_cobblestone_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"5733": "mossy_cobblestone_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"5734": "mossy_cobblestone_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"5735": "mossy_cobblestone_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"5736": "mossy_cobblestone_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"5737": "mossy_cobblestone_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"5738": "mossy_cobblestone_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"5739": "mossy_cobblestone_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"5740": "mossy_cobblestone_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"5741": "mossy_cobblestone_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"5742": "mossy_cobblestone_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"5743": "mossy_cobblestone_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"5744": "mossy_cobblestone_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"5745": "mossy_cobblestone_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"5746": "mossy_cobblestone_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"5747": "mossy_cobblestone_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"5748": "mossy_cobblestone_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"5749": "mossy_cobblestone_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"5750": "mossy_cobblestone_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"5751": "mossy_cobblestone_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"5752": "mossy_cobblestone_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"5753": "mossy_cobblestone_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"5754": "mossy_cobblestone_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"5755": "mossy_cobblestone_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"5756": "mossy_cobblestone_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"5757": "mossy_cobblestone_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"5758": "mossy_cobblestone_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"5759": "mossy_cobblestone_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"5760": "mossy_cobblestone_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"5761": "mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"5762": "mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"5763": "mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"5764": "mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"5765": "mossy_cobblestone_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"5766": "mossy_cobblestone_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"5767": "mossy_cobblestone_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"5768": "mossy_cobblestone_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10331": "brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10332": "brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10333": "brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10334": "brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10335": "brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10336": "brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10337": "brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10338": "brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10339": "brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10340": "brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10341": "brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10342": "brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10343": "brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10344": "brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10345": "brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10346": "brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10347": "brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10348": "brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10349": "brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10350": "brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10351": "brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10352": "brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10353": "brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10354": "brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10355": "brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10356": "brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10357": "brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10358": "brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10359": "brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10360": "brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10361": "brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10362": "brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10363": "brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10364": "brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10365": "brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10366": "brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10367": "brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10368": "brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10369": "brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10370": "brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10371": "brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10372": "brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10373": "brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10374": "brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10375": "brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10376": "brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10377": "brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10378": "brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10379": "brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10380": "brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10381": "brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10382": "brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10383": "brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10384": "brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10385": "brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10386": "brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10387": "brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10388": "brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10389": "brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10390": "brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10391": "brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10392": "brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10393": "brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10394": "brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10395": "prismarine_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10396": "prismarine_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10397": "prismarine_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10398": "prismarine_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10399": "prismarine_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10400": "prismarine_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10401": "prismarine_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10402": "prismarine_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10403": "prismarine_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10404": "prismarine_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10405": "prismarine_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10406": "prismarine_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10407": "prismarine_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10408": "prismarine_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10409": "prismarine_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10410": "prismarine_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10411": "prismarine_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10412": "prismarine_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10413": "prismarine_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10414": "prismarine_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10415": "prismarine_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10416": "prismarine_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10417": "prismarine_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10418": "prismarine_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10419": "prismarine_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10420": "prismarine_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10421": "prismarine_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10422": "prismarine_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10423": "prismarine_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10424": "prismarine_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10425": "prismarine_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10426": "prismarine_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10427": "prismarine_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10428": "prismarine_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10429": "prismarine_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10430": "prismarine_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10431": "prismarine_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10432": "prismarine_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10433": "prismarine_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10434": "prismarine_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10435": "prismarine_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10436": "prismarine_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10437": "prismarine_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10438": "prismarine_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10439": "prismarine_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10440": "prismarine_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10441": "prismarine_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10442": "prismarine_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10443": "prismarine_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10444": "prismarine_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10445": "prismarine_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10446": "prismarine_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10447": "prismarine_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10448": "prismarine_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10449": "prismarine_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10450": "prismarine_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10451": "prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10452": "prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10453": "prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10454": "prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10455": "prismarine_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10456": "prismarine_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10457": "prismarine_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10458": "prismarine_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10459": "red_sandstone_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10460": "red_sandstone_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10461": "red_sandstone_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10462": "red_sandstone_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10463": "red_sandstone_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10464": "red_sandstone_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10465": "red_sandstone_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10466": "red_sandstone_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10467": "red_sandstone_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10468": "red_sandstone_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10469": "red_sandstone_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10470": "red_sandstone_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10471": "red_sandstone_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10472": "red_sandstone_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10473": "red_sandstone_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10474": "red_sandstone_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10475": "red_sandstone_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10476": "red_sandstone_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10477": "red_sandstone_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10478": "red_sandstone_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10479": "red_sandstone_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10480": "red_sandstone_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10481": "red_sandstone_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10482": "red_sandstone_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10483": "red_sandstone_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10484": "red_sandstone_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10485": "red_sandstone_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10486": "red_sandstone_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10487": "red_sandstone_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10488": "red_sandstone_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10489": "red_sandstone_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10490": "red_sandstone_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10491": "red_sandstone_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10492": "red_sandstone_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10493": "red_sandstone_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10494": "red_sandstone_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10495": "red_sandstone_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10496": "red_sandstone_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10497": "red_sandstone_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10498": "red_sandstone_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10499": "red_sandstone_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10500": "red_sandstone_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10501": "red_sandstone_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10502": "red_sandstone_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10503": "red_sandstone_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10504": "red_sandstone_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10505": "red_sandstone_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10506": "red_sandstone_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10507": "red_sandstone_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10508": "red_sandstone_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10509": "red_sandstone_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10510": "red_sandstone_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10511": "red_sandstone_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10512": "red_sandstone_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10513": "red_sandstone_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10514": "red_sandstone_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10515": "red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10516": "red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10517": "red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10518": "red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10519": "red_sandstone_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10520": "red_sandstone_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10521": "red_sandstone_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10522": "red_sandstone_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10523": "mossy_stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10524": "mossy_stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10525": "mossy_stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10526": "mossy_stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10527": "mossy_stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10528": "mossy_stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10529": "mossy_stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10530": "mossy_stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10531": "mossy_stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10532": "mossy_stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10533": "mossy_stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10534": "mossy_stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10535": "mossy_stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10536": "mossy_stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10537": "mossy_stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10538": "mossy_stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10539": "mossy_stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10540": "mossy_stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10541": "mossy_stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10542": "mossy_stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10543": "mossy_stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10544": "mossy_stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10545": "mossy_stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10546": "mossy_stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10547": "mossy_stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10548": "mossy_stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10549": "mossy_stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10550": "mossy_stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10551": "mossy_stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10552": "mossy_stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10553": "mossy_stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10554": "mossy_stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10555": "mossy_stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10556": "mossy_stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10557": "mossy_stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10558": "mossy_stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10559": "mossy_stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10560": "mossy_stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10561": "mossy_stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10562": "mossy_stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10563": "mossy_stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10564": "mossy_stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10565": "mossy_stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10566": "mossy_stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10567": "mossy_stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10568": "mossy_stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10569": "mossy_stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10570": "mossy_stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10571": "mossy_stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10572": "mossy_stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10573": "mossy_stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10574": "mossy_stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10575": "mossy_stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10576": "mossy_stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10577": "mossy_stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10578": "mossy_stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10579": "mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10580": "mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10581": "mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10582": "mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10583": "mossy_stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10584": "mossy_stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10585": "mossy_stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10586": "mossy_stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10587": "granite_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10588": "granite_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10589": "granite_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10590": "granite_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10591": "granite_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10592": "granite_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10593": "granite_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10594": "granite_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10595": "granite_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10596": "granite_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10597": "granite_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10598": "granite_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10599": "granite_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10600": "granite_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10601": "granite_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10602": "granite_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10603": "granite_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10604": "granite_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10605": "granite_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10606": "granite_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10607": "granite_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10608": "granite_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10609": "granite_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10610": "granite_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10611": "granite_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10612": "granite_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10613": "granite_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10614": "granite_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10615": "granite_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10616": "granite_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10617": "granite_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10618": "granite_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10619": "granite_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10620": "granite_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10621": "granite_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10622": "granite_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10623": "granite_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10624": "granite_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10625": "granite_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10626": "granite_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10627": "granite_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10628": "granite_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10629": "granite_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10630": "granite_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10631": "granite_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10632": "granite_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10633": "granite_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10634": "granite_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10635": "granite_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10636": "granite_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10637": "granite_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10638": "granite_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10639": "granite_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10640": "granite_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10641": "granite_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10642": "granite_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10643": "granite_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10644": "granite_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10645": "granite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10646": "granite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10647": "granite_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10648": "granite_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10649": "granite_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10650": "granite_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10651": "stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10652": "stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10653": "stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10654": "stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10655": "stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10656": "stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10657": "stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10658": "stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10659": "stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10660": "stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10661": "stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10662": "stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10663": "stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10664": "stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10665": "stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10666": "stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10667": "stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10668": "stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10669": "stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10670": "stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10671": "stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10672": "stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10673": "stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10674": "stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10675": "stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10676": "stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10677": "stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10678": "stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10679": "stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10680": "stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10681": "stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10682": "stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10683": "stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10684": "stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10685": "stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10686": "stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10687": "stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10688": "stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10689": "stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10690": "stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10691": "stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10692": "stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10693": "stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10694": "stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10695": "stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10696": "stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10697": "stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10698": "stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10699": "stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10700": "stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10701": "stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10702": "stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10703": "stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10704": "stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10705": "stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10706": "stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10707": "stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10708": "stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10709": "stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10710": "stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10711": "stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10712": "stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10713": "stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10714": "stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10715": "nether_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10716": "nether_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10717": "nether_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10718": "nether_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10719": "nether_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10720": "nether_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10721": "nether_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10722": "nether_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10723": "nether_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10724": "nether_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10725": "nether_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10726": "nether_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10727": "nether_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10728": "nether_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10729": "nether_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10730": "nether_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10731": "nether_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10732": "nether_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10733": "nether_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10734": "nether_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10735": "nether_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10736": "nether_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10737": "nether_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10738": "nether_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10739": "nether_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10740": "nether_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10741": "nether_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10742": "nether_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10743": "nether_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10744": "nether_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10745": "nether_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10746": "nether_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10747": "nether_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10748": "nether_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10749": "nether_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10750": "nether_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10751": "nether_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10752": "nether_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10753": "nether_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10754": "nether_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10755": "nether_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10756": "nether_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10757": "nether_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10758": "nether_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10759": "nether_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10760": "nether_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10761": "nether_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10762": "nether_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10763": "nether_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10764": "nether_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10765": "nether_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10766": "nether_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10767": "nether_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10768": "nether_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10769": "nether_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10770": "nether_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10771": "nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10772": "nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10773": "nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10774": "nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10775": "nether_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10776": "nether_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10777": "nether_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10778": "nether_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10779": "andesite_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10780": "andesite_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10781": "andesite_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10782": "andesite_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10783": "andesite_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10784": "andesite_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10785": "andesite_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10786": "andesite_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10787": "andesite_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10788": "andesite_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10789": "andesite_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10790": "andesite_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10791": "andesite_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10792": "andesite_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10793": "andesite_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10794": "andesite_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10795": "andesite_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10796": "andesite_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10797": "andesite_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10798": "andesite_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10799": "andesite_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10800": "andesite_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10801": "andesite_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10802": "andesite_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10803": "andesite_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10804": "andesite_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10805": "andesite_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10806": "andesite_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10807": "andesite_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10808": "andesite_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10809": "andesite_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10810": "andesite_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10811": "andesite_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10812": "andesite_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10813": "andesite_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10814": "andesite_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10815": "andesite_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10816": "andesite_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10817": "andesite_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10818": "andesite_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10819": "andesite_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10820": "andesite_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10821": "andesite_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10822": "andesite_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10823": "andesite_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10824": "andesite_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10825": "andesite_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10826": "andesite_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10827": "andesite_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10828": "andesite_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10829": "andesite_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10830": "andesite_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10831": "andesite_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10832": "andesite_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10833": "andesite_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10834": "andesite_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10835": "andesite_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10836": "andesite_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10837": "andesite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10838": "andesite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10839": "andesite_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10840": "andesite_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10841": "andesite_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10842": "andesite_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10843": "red_nether_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10844": "red_nether_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10845": "red_nether_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10846": "red_nether_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10847": "red_nether_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10848": "red_nether_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10849": "red_nether_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10850": "red_nether_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10851": "red_nether_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10852": "red_nether_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10853": "red_nether_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10854": "red_nether_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10855": "red_nether_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10856": "red_nether_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10857": "red_nether_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10858": "red_nether_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10859": "red_nether_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10860": "red_nether_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10861": "red_nether_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10862": "red_nether_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10863": "red_nether_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10864": "red_nether_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10865": "red_nether_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10866": "red_nether_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10867": "red_nether_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10868": "red_nether_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10869": "red_nether_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10870": "red_nether_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10871": "red_nether_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10872": "red_nether_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10873": "red_nether_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10874": "red_nether_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10875": "red_nether_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10876": "red_nether_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10877": "red_nether_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10878": "red_nether_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10879": "red_nether_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10880": "red_nether_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10881": "red_nether_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10882": "red_nether_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10883": "red_nether_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10884": "red_nether_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10885": "red_nether_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10886": "red_nether_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10887": "red_nether_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10888": "red_nether_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10889": "red_nether_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10890": "red_nether_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10891": "red_nether_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10892": "red_nether_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10893": "red_nether_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10894": "red_nether_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10895": "red_nether_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10896": "red_nether_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10897": "red_nether_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10898": "red_nether_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10899": "red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10900": "red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10901": "red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10902": "red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10903": "red_nether_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10904": "red_nether_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10905": "red_nether_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10906": "red_nether_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10907": "sandstone_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10908": "sandstone_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10909": "sandstone_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10910": "sandstone_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10911": "sandstone_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10912": "sandstone_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10913": "sandstone_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10914": "sandstone_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10915": "sandstone_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10916": "sandstone_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10917": "sandstone_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10918": "sandstone_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10919": "sandstone_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10920": "sandstone_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10921": "sandstone_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10922": "sandstone_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10923": "sandstone_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10924": "sandstone_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10925": "sandstone_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10926": "sandstone_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10927": "sandstone_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10928": "sandstone_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10929": "sandstone_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10930": "sandstone_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10931": "sandstone_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10932": "sandstone_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10933": "sandstone_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10934": "sandstone_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10935": "sandstone_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"10936": "sandstone_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"10937": "sandstone_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"10938": "sandstone_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"10939": "sandstone_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"10940": "sandstone_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"10941": "sandstone_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"10942": "sandstone_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"10943": "sandstone_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"10944": "sandstone_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"10945": "sandstone_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"10946": "sandstone_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"10947": "sandstone_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"10948": "sandstone_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"10949": "sandstone_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"10950": "sandstone_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"10951": "sandstone_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"10952": "sandstone_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"10953": "sandstone_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"10954": "sandstone_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"10955": "sandstone_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"10956": "sandstone_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"10957": "sandstone_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"10958": "sandstone_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"10959": "sandstone_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"10960": "sandstone_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"10961": "sandstone_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"10962": "sandstone_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"10963": "sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"10964": "sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"10965": "sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"10966": "sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"10967": "sandstone_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"10968": "sandstone_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"10969": "sandstone_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"10970": "sandstone_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"10971": "end_stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"10972": "end_stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"10973": "end_stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"10974": "end_stone_brick_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"10975": "end_stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"10976": "end_stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"10977": "end_stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"10978": "end_stone_brick_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"10979": "end_stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"10980": "end_stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"10981": "end_stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"10982": "end_stone_brick_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"10983": "end_stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"10984": "end_stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"10985": "end_stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"10986": "end_stone_brick_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"10987": "end_stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"10988": "end_stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"10989": "end_stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"10990": "end_stone_brick_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"10991": "end_stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"10992": "end_stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"10993": "end_stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"10994": "end_stone_brick_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"10995": "end_stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"10996": "end_stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"10997": "end_stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"10998": "end_stone_brick_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"10999": "end_stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"11000": "end_stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"11001": "end_stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"11002": "end_stone_brick_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"11003": "end_stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"11004": "end_stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"11005": "end_stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"11006": "end_stone_brick_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"11007": "end_stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"11008": "end_stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"11009": "end_stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"11010": "end_stone_brick_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"11011": "end_stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"11012": "end_stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"11013": "end_stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"11014": "end_stone_brick_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"11015": "end_stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"11016": "end_stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"11017": "end_stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"11018": "end_stone_brick_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"11019": "end_stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"11020": "end_stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"11021": "end_stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"11022": "end_stone_brick_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"11023": "end_stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"11024": "end_stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"11025": "end_stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"11026": "end_stone_brick_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"11027": "end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"11028": "end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"11029": "end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"11030": "end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"11031": "end_stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"11032": "end_stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"11033": "end_stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"11034": "end_stone_brick_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"11035": "diorite_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=low]",
"11036": "diorite_wall[east=low,north=low,south=low,up=true,waterlogged=true,west=none]",
"11037": "diorite_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=low]",
"11038": "diorite_wall[east=low,north=low,south=low,up=true,waterlogged=false,west=none]",
"11039": "diorite_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=low]",
"11040": "diorite_wall[east=low,north=low,south=low,up=false,waterlogged=true,west=none]",
"11041": "diorite_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=low]",
"11042": "diorite_wall[east=low,north=low,south=low,up=false,waterlogged=false,west=none]",
"11043": "diorite_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=low]",
"11044": "diorite_wall[east=low,north=low,south=none,up=true,waterlogged=true,west=none]",
"11045": "diorite_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=low]",
"11046": "diorite_wall[east=low,north=low,south=none,up=true,waterlogged=false,west=none]",
"11047": "diorite_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=low]",
"11048": "diorite_wall[east=low,north=low,south=none,up=false,waterlogged=true,west=none]",
"11049": "diorite_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=low]",
"11050": "diorite_wall[east=low,north=low,south=none,up=false,waterlogged=false,west=none]",
"11051": "diorite_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=low]",
"11052": "diorite_wall[east=low,north=none,south=low,up=true,waterlogged=true,west=none]",
"11053": "diorite_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=low]",
"11054": "diorite_wall[east=low,north=none,south=low,up=true,waterlogged=false,west=none]",
"11055": "diorite_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=low]",
"11056": "diorite_wall[east=low,north=none,south=low,up=false,waterlogged=true,west=none]",
"11057": "diorite_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=low]",
"11058": "diorite_wall[east=low,north=none,south=low,up=false,waterlogged=false,west=none]",
"11059": "diorite_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=low]",
"11060": "diorite_wall[east=low,north=none,south=none,up=true,waterlogged=true,west=none]",
"11061": "diorite_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=low]",
"11062": "diorite_wall[east=low,north=none,south=none,up=true,waterlogged=false,west=none]",
"11063": "diorite_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=low]",
"11064": "diorite_wall[east=low,north=none,south=none,up=false,waterlogged=true,west=none]",
"11065": "diorite_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=low]",
"11066": "diorite_wall[east=low,north=none,south=none,up=false,waterlogged=false,west=none]",
"11067": "diorite_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=low]",
"11068": "diorite_wall[east=none,north=low,south=low,up=true,waterlogged=true,west=none]",
"11069": "diorite_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=low]",
"11070": "diorite_wall[east=none,north=low,south=low,up=true,waterlogged=false,west=none]",
"11071": "diorite_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=low]",
"11072": "diorite_wall[east=none,north=low,south=low,up=false,waterlogged=true,west=none]",
"11073": "diorite_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=low]",
"11074": "diorite_wall[east=none,north=low,south=low,up=false,waterlogged=false,west=none]",
"11075": "diorite_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=low]",
"11076": "diorite_wall[east=none,north=low,south=none,up=true,waterlogged=true,west=none]",
"11077": "diorite_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=low]",
"11078": "diorite_wall[east=none,north=low,south=none,up=true,waterlogged=false,west=none]",
"11079": "diorite_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=low]",
"11080": "diorite_wall[east=none,north=low,south=none,up=false,waterlogged=true,west=none]",
"11081": "diorite_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=low]",
"11082": "diorite_wall[east=none,north=low,south=none,up=false,waterlogged=false,west=none]",
"11083": "diorite_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=low]",
"11084": "diorite_wall[east=none,north=none,south=low,up=true,waterlogged=true,west=none]",
"11085": "diorite_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=low]",
"11086": "diorite_wall[east=none,north=none,south=low,up=true,waterlogged=false,west=none]",
"11087": "diorite_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=low]",
"11088": "diorite_wall[east=none,north=none,south=low,up=false,waterlogged=true,west=none]",
"11089": "diorite_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=low]",
"11090": "diorite_wall[east=none,north=none,south=low,up=false,waterlogged=false,west=none]",
"11091": "diorite_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=low]",
"11092": "diorite_wall[east=none,north=none,south=none,up=true,waterlogged=true,west=none]",
"11093": "diorite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=low]",
"11094": "diorite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]",
"11095": "diorite_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=low]",
"11096": "diorite_wall[east=none,north=none,south=none,up=false,waterlogged=true,west=none]",
"11097": "diorite_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=low]",
"11098": "diorite_wall[east=none,north=none,south=none,up=false,waterlogged=false,west=none]",
"11272": "jigsaw[orientation=north_up]",
"11273": "jigsaw[orientation=east_up]",
"11274": "jigsaw[orientation=south_up]",
"11275": "jigsaw[orientation=west_up]",
"11276": "jigsaw[orientation=up_east]",
"11277": "jigsaw[orientation=down_east]"
}
}

View File

@ -1,675 +0,0 @@
{
"blocks": {
"498": "dirt_path"
},
"sounds": {
"item.sweet_berries.pick_from_bush": "block.sweet_berry_bush.pick_berries"
},
"blockstates": {
"1305": "powered_rail[powered=true,shape=north_south,waterlogged=false]",
"1306": "powered_rail[powered=true,shape=east_west,waterlogged=false]",
"1307": "powered_rail[powered=true,shape=ascending_east,waterlogged=false]",
"1308": "powered_rail[powered=true,shape=ascending_west,waterlogged=false]",
"1309": "powered_rail[powered=true,shape=ascending_north,waterlogged=false]",
"1310": "powered_rail[powered=true,shape=ascending_south,waterlogged=false]",
"1311": "powered_rail[powered=false,shape=north_south,waterlogged=false]",
"1312": "powered_rail[powered=false,shape=east_west,waterlogged=false]",
"1313": "powered_rail[powered=false,shape=ascending_east,waterlogged=false]",
"1314": "powered_rail[powered=false,shape=ascending_west,waterlogged=false]",
"1315": "powered_rail[powered=false,shape=ascending_north,waterlogged=false]",
"1316": "powered_rail[powered=false,shape=ascending_south,waterlogged=false]",
"1317": "detector_rail[powered=true,shape=north_south,waterlogged=false]",
"1318": "detector_rail[powered=true,shape=east_west,waterlogged=false]",
"1319": "detector_rail[powered=true,shape=ascending_east,waterlogged=false]",
"1320": "detector_rail[powered=true,shape=ascending_west,waterlogged=false]",
"1321": "detector_rail[powered=true,shape=ascending_north,waterlogged=false]",
"1322": "detector_rail[powered=true,shape=ascending_south,waterlogged=false]",
"1323": "detector_rail[powered=false,shape=north_south,waterlogged=false]",
"1324": "detector_rail[powered=false,shape=east_west,waterlogged=false]",
"1325": "detector_rail[powered=false,shape=ascending_east,waterlogged=false]",
"1326": "detector_rail[powered=false,shape=ascending_west,waterlogged=false]",
"1327": "detector_rail[powered=false,shape=ascending_north,waterlogged=false]",
"1328": "detector_rail[powered=false,shape=ascending_south,waterlogged=false]",
"3645": "rail[shape=north_south,waterlogged=false]",
"3646": "rail[shape=east_west,waterlogged=false]",
"3647": "rail[shape=ascending_east,waterlogged=false]",
"3648": "rail[shape=ascending_west,waterlogged=false]",
"3649": "rail[shape=ascending_north,waterlogged=false]",
"3650": "rail[shape=ascending_south,waterlogged=false]",
"3651": "rail[shape=south_east,waterlogged=false]",
"3652": "rail[shape=south_west,waterlogged=false]",
"3653": "rail[shape=north_west,waterlogged=false]",
"3654": "rail[shape=north_east,waterlogged=false]",
"6827": "activator_rail[powered=true,shape=north_south,waterlogged=false]",
"6828": "activator_rail[powered=true,shape=east_west,waterlogged=false]",
"6829": "activator_rail[powered=true,shape=ascending_east,waterlogged=false]",
"6830": "activator_rail[powered=true,shape=ascending_west,waterlogged=false]",
"6831": "activator_rail[powered=true,shape=ascending_north,waterlogged=false]",
"6832": "activator_rail[powered=true,shape=ascending_south,waterlogged=false]",
"6833": "activator_rail[powered=false,shape=north_south,waterlogged=false]",
"6834": "activator_rail[powered=false,shape=east_west,waterlogged=false]",
"6835": "activator_rail[powered=false,shape=ascending_east,waterlogged=false]",
"6836": "activator_rail[powered=false,shape=ascending_west,waterlogged=false]",
"6837": "activator_rail[powered=false,shape=ascending_north,waterlogged=false]",
"6838": "activator_rail[powered=false,shape=ascending_south,waterlogged=false]",
"5145": "cauldron",
"5146": "water_cauldron[level=1]",
"5147": "water_cauldron[level=2]",
"5148": "water_cauldron[level=3]",
"9227": "dirt_path"
},
"items": {
"372": "dirt_path"
},
"tags": {
"block": {
"dirt": [
"dirt",
"grass_block",
"podzol",
"coarse_dirt",
"mycelium",
"rooted_dirt",
"moss_block"
],
"cauldrons": [
"cauldron"
],
"mineable/hoe": [
"nether_wart_block",
"warped_wart_block",
"hay_block",
"dried_kelp_block",
"target",
"shroomlight",
"sponge",
"wet_sponge",
"jungle_leaves",
"oak_leaves",
"spruce_leaves",
"dark_oak_leaves",
"acacia_leaves",
"birch_leaves"
],
"mineable/shovel": [
"clay",
"dirt",
"coarse_dirt",
"podzol",
"farmland",
"grass_block",
"gravel",
"mycelium",
"sand",
"red_sand",
"snow_block",
"snow",
"soul_sand",
"dirt_path",
"white_concrete_powder",
"orange_concrete_powder",
"magenta_concrete_powder",
"light_blue_concrete_powder",
"yellow_concrete_powder",
"lime_concrete_powder",
"pink_concrete_powder",
"gray_concrete_powder",
"light_gray_concrete_powder",
"cyan_concrete_powder",
"purple_concrete_powder",
"blue_concrete_powder",
"brown_concrete_powder",
"green_concrete_powder",
"red_concrete_powder",
"black_concrete_powder",
"soul_soil"
],
"mineable/axe": [
"note_block",
"attached_melon_stem",
"attached_pumpkin_stem",
"bamboo",
"barrel",
"bee_nest",
"beehive",
"beetroots",
"bookshelf",
"brown_mushroom_block",
"brown_mushroom",
"campfire",
"carrots",
"cartography_table",
"carved_pumpkin",
"chest",
"chorus_flower",
"chorus_plant",
"cocoa",
"composter",
"crafting_table",
"crimson_fungus",
"daylight_detector",
"dead_bush",
"fern",
"fletching_table",
"grass",
"jack_o_lantern",
"jukebox",
"ladder",
"large_fern",
"lectern",
"lily_pad",
"loom",
"melon_stem",
"melon",
"mushroom_stem",
"nether_wart",
"potatoes",
"pumpkin_stem",
"pumpkin",
"red_mushroom_block",
"red_mushroom",
"scaffolding",
"smithing_table",
"soul_campfire",
"sugar_cane",
"sweet_berry_bush",
"tall_grass",
"trapped_chest",
"twisting_vines_plant",
"twisting_vines",
"vine",
"warped_fungus",
"weeping_vines_plant",
"weeping_vines",
"wheat",
"white_banner",
"orange_banner",
"magenta_banner",
"light_blue_banner",
"yellow_banner",
"lime_banner",
"pink_banner",
"gray_banner",
"light_gray_banner",
"cyan_banner",
"purple_banner",
"blue_banner",
"brown_banner",
"green_banner",
"red_banner",
"black_banner",
"white_wall_banner",
"orange_wall_banner",
"magenta_wall_banner",
"light_blue_wall_banner",
"yellow_wall_banner",
"lime_wall_banner",
"pink_wall_banner",
"gray_wall_banner",
"light_gray_wall_banner",
"cyan_wall_banner",
"purple_wall_banner",
"blue_wall_banner",
"brown_wall_banner",
"green_wall_banner",
"red_wall_banner",
"black_wall_banner",
"acacia_fence_gate",
"birch_fence_gate",
"dark_oak_fence_gate",
"jungle_fence_gate",
"oak_fence_gate",
"spruce_fence_gate",
"crimson_fence_gate",
"warped_fence_gate",
"dandelion",
"poppy",
"blue_orchid",
"allium",
"azure_bluet",
"red_tulip",
"orange_tulip",
"white_tulip",
"pink_tulip",
"oxeye_daisy",
"cornflower",
"lily_of_the_valley",
"wither_rose",
"sunflower",
"lilac",
"peony",
"rose_bush",
"dark_oak_log",
"dark_oak_wood",
"stripped_dark_oak_log",
"stripped_dark_oak_wood",
"oak_log",
"oak_wood",
"stripped_oak_log",
"stripped_oak_wood",
"acacia_log",
"acacia_wood",
"stripped_acacia_log",
"stripped_acacia_wood",
"birch_log",
"birch_wood",
"stripped_birch_log",
"stripped_birch_wood",
"jungle_log",
"jungle_wood",
"stripped_jungle_log",
"stripped_jungle_wood",
"spruce_log",
"spruce_wood",
"stripped_spruce_log",
"stripped_spruce_wood",
"crimson_stem",
"stripped_crimson_stem",
"crimson_hyphae",
"stripped_crimson_hyphae",
"warped_stem",
"stripped_warped_stem",
"warped_hyphae",
"stripped_warped_hyphae",
"oak_planks",
"spruce_planks",
"birch_planks",
"jungle_planks",
"acacia_planks",
"dark_oak_planks",
"crimson_planks",
"warped_planks",
"oak_sapling",
"spruce_sapling",
"birch_sapling",
"jungle_sapling",
"acacia_sapling",
"dark_oak_sapling",
"oak_sign",
"spruce_sign",
"birch_sign",
"acacia_sign",
"jungle_sign",
"dark_oak_sign",
"crimson_sign",
"warped_sign",
"oak_wall_sign",
"spruce_wall_sign",
"birch_wall_sign",
"acacia_wall_sign",
"jungle_wall_sign",
"dark_oak_wall_sign",
"crimson_wall_sign",
"warped_wall_sign",
"oak_button",
"spruce_button",
"birch_button",
"jungle_button",
"acacia_button",
"dark_oak_button",
"crimson_button",
"warped_button",
"oak_door",
"spruce_door",
"birch_door",
"jungle_door",
"acacia_door",
"dark_oak_door",
"crimson_door",
"warped_door",
"oak_fence",
"acacia_fence",
"dark_oak_fence",
"spruce_fence",
"birch_fence",
"jungle_fence",
"crimson_fence",
"warped_fence",
"oak_pressure_plate",
"spruce_pressure_plate",
"birch_pressure_plate",
"jungle_pressure_plate",
"acacia_pressure_plate",
"dark_oak_pressure_plate",
"crimson_pressure_plate",
"warped_pressure_plate",
"oak_slab",
"spruce_slab",
"birch_slab",
"jungle_slab",
"acacia_slab",
"dark_oak_slab",
"crimson_slab",
"warped_slab",
"oak_stairs",
"spruce_stairs",
"birch_stairs",
"jungle_stairs",
"acacia_stairs",
"dark_oak_stairs",
"crimson_stairs",
"warped_stairs",
"acacia_trapdoor",
"birch_trapdoor",
"dark_oak_trapdoor",
"jungle_trapdoor",
"oak_trapdoor",
"spruce_trapdoor",
"crimson_trapdoor",
"warped_trapdoor"
],
"mineable/pickaxe": [
"stone",
"granite",
"polished_granite",
"diorite",
"polished_diorite",
"andesite",
"polished_andesite",
"cobblestone",
"gold_ore",
"iron_ore",
"coal_ore",
"nether_gold_ore",
"lapis_ore",
"lapis_block",
"dispenser",
"sandstone",
"chiseled_sandstone",
"cut_sandstone",
"gold_block",
"iron_block",
"bricks",
"mossy_cobblestone",
"obsidian",
"spawner",
"diamond_ore",
"diamond_block",
"furnace",
"cobblestone_stairs",
"stone_pressure_plate",
"iron_door",
"redstone_ore",
"netherrack",
"basalt",
"polished_basalt",
"stone_bricks",
"mossy_stone_bricks",
"cracked_stone_bricks",
"chiseled_stone_bricks",
"iron_bars",
"chain",
"brick_stairs",
"stone_brick_stairs",
"nether_bricks",
"nether_brick_fence",
"nether_brick_stairs",
"enchanting_table",
"brewing_stand",
"end_stone",
"sandstone_stairs",
"emerald_ore",
"ender_chest",
"emerald_block",
"light_weighted_pressure_plate",
"heavy_weighted_pressure_plate",
"redstone_block",
"nether_quartz_ore",
"hopper",
"quartz_block",
"chiseled_quartz_block",
"quartz_pillar",
"quartz_stairs",
"dropper",
"white_terracotta",
"orange_terracotta",
"magenta_terracotta",
"light_blue_terracotta",
"yellow_terracotta",
"lime_terracotta",
"pink_terracotta",
"gray_terracotta",
"light_gray_terracotta",
"cyan_terracotta",
"purple_terracotta",
"blue_terracotta",
"brown_terracotta",
"green_terracotta",
"red_terracotta",
"black_terracotta",
"iron_trapdoor",
"prismarine",
"prismarine_bricks",
"dark_prismarine",
"prismarine_stairs",
"prismarine_brick_stairs",
"dark_prismarine_stairs",
"prismarine_slab",
"prismarine_brick_slab",
"dark_prismarine_slab",
"terracotta",
"coal_block",
"red_sandstone",
"chiseled_red_sandstone",
"cut_red_sandstone",
"red_sandstone_stairs",
"stone_slab",
"smooth_stone_slab",
"sandstone_slab",
"cut_sandstone_slab",
"petrified_oak_slab",
"cobblestone_slab",
"brick_slab",
"stone_brick_slab",
"nether_brick_slab",
"quartz_slab",
"red_sandstone_slab",
"cut_red_sandstone_slab",
"purpur_slab",
"smooth_stone",
"smooth_sandstone",
"smooth_quartz",
"smooth_red_sandstone",
"purpur_block",
"purpur_pillar",
"purpur_stairs",
"end_stone_bricks",
"magma_block",
"red_nether_bricks",
"bone_block",
"observer",
"white_glazed_terracotta",
"orange_glazed_terracotta",
"magenta_glazed_terracotta",
"light_blue_glazed_terracotta",
"yellow_glazed_terracotta",
"lime_glazed_terracotta",
"pink_glazed_terracotta",
"gray_glazed_terracotta",
"light_gray_glazed_terracotta",
"cyan_glazed_terracotta",
"purple_glazed_terracotta",
"blue_glazed_terracotta",
"brown_glazed_terracotta",
"green_glazed_terracotta",
"red_glazed_terracotta",
"black_glazed_terracotta",
"white_concrete",
"orange_concrete",
"magenta_concrete",
"light_blue_concrete",
"yellow_concrete",
"lime_concrete",
"pink_concrete",
"gray_concrete",
"light_gray_concrete",
"cyan_concrete",
"purple_concrete",
"blue_concrete",
"brown_concrete",
"green_concrete",
"red_concrete",
"black_concrete",
"dead_tube_coral_block",
"dead_brain_coral_block",
"dead_bubble_coral_block",
"dead_fire_coral_block",
"dead_horn_coral_block",
"tube_coral_block",
"brain_coral_block",
"bubble_coral_block",
"fire_coral_block",
"horn_coral_block",
"dead_tube_coral",
"dead_brain_coral",
"dead_bubble_coral",
"dead_fire_coral",
"dead_horn_coral",
"dead_tube_coral_fan",
"dead_brain_coral_fan",
"dead_bubble_coral_fan",
"dead_fire_coral_fan",
"dead_horn_coral_fan",
"dead_tube_coral_wall_fan",
"dead_brain_coral_wall_fan",
"dead_bubble_coral_wall_fan",
"dead_fire_coral_wall_fan",
"dead_horn_coral_wall_fan",
"polished_granite_stairs",
"smooth_red_sandstone_stairs",
"mossy_stone_brick_stairs",
"polished_diorite_stairs",
"mossy_cobblestone_stairs",
"end_stone_brick_stairs",
"stone_stairs",
"smooth_sandstone_stairs",
"smooth_quartz_stairs",
"granite_stairs",
"andesite_stairs",
"red_nether_brick_stairs",
"polished_andesite_stairs",
"diorite_stairs",
"polished_granite_slab",
"smooth_red_sandstone_slab",
"mossy_stone_brick_slab",
"polished_diorite_slab",
"mossy_cobblestone_slab",
"end_stone_brick_slab",
"smooth_sandstone_slab",
"smooth_quartz_slab",
"granite_slab",
"andesite_slab",
"red_nether_brick_slab",
"polished_andesite_slab",
"diorite_slab",
"smoker",
"blast_furnace",
"grindstone",
"stonecutter",
"bell",
"lantern",
"soul_lantern",
"warped_nylium",
"crimson_nylium",
"netherite_block",
"ancient_debris",
"crying_obsidian",
"respawn_anchor",
"lodestone",
"blackstone",
"blackstone_stairs",
"blackstone_slab",
"polished_blackstone",
"polished_blackstone_bricks",
"cracked_polished_blackstone_bricks",
"chiseled_polished_blackstone",
"polished_blackstone_brick_slab",
"polished_blackstone_brick_stairs",
"gilded_blackstone",
"polished_blackstone_stairs",
"polished_blackstone_slab",
"polished_blackstone_pressure_plate",
"chiseled_nether_bricks",
"cracked_nether_bricks",
"quartz_bricks",
"ice",
"packed_ice",
"blue_ice",
"stone_button",
"piston",
"sticky_piston",
"piston_head",
"infested_cobblestone",
"infested_chiseled_stone_bricks",
"infested_cracked_stone_bricks",
"infested_stone",
"infested_mossy_stone_bricks",
"infested_stone_bricks",
"cobblestone_wall",
"mossy_cobblestone_wall",
"brick_wall",
"prismarine_wall",
"red_sandstone_wall",
"mossy_stone_brick_wall",
"granite_wall",
"stone_brick_wall",
"nether_brick_wall",
"andesite_wall",
"red_nether_brick_wall",
"sandstone_wall",
"end_stone_brick_wall",
"diorite_wall",
"blackstone_wall",
"polished_blackstone_brick_wall",
"polished_blackstone_wall",
"shulker_box",
"black_shulker_box",
"blue_shulker_box",
"brown_shulker_box",
"cyan_shulker_box",
"gray_shulker_box",
"green_shulker_box",
"light_blue_shulker_box",
"light_gray_shulker_box",
"lime_shulker_box",
"magenta_shulker_box",
"orange_shulker_box",
"pink_shulker_box",
"purple_shulker_box",
"red_shulker_box",
"white_shulker_box",
"yellow_shulker_box",
"anvil",
"chipped_anvil",
"damaged_anvil",
"cauldron",
"rail",
"powered_rail",
"detector_rail",
"activator_rail"
],
"needs_diamond_tool": [
"obsidian",
"crying_obsidian",
"netherite_block",
"respawn_anchor",
"ancient_debris"
],
"needs_iron_tool": [
"diamond_block",
"diamond_ore",
"emerald_ore",
"emerald_block",
"gold_block",
"gold_ore",
"redstone_ore"
],
"needs_stone_tool": [
"iron_block",
"iron_ore",
"lapis_block",
"lapis_ore"
]
}
}
}

View File

@ -1,10 +0,0 @@
{
"blockstates": {
"4729": "chain[axis=y,waterlogged=true]",
"4730": "chain[axis=y,waterlogged=false]",
"14886": "lantern[hanging=true,waterlogged=false]",
"14887": "lantern[hanging=false,waterlogged=false]",
"14888": "soul_lantern[hanging=true,waterlogged=false]",
"14889": "soul_lantern[hanging=false,waterlogged=false]"
}
}

View File

@ -1,6 +0,0 @@
{
"particles": {
"barrier": "block_marker",
"light": "block_marker"
}
}

View File

@ -1,200 +0,0 @@
{
"blockstates": {
"148": "oak_leaves[distance=1,persistent=true,waterlogged=false]",
"149": "oak_leaves[distance=1,persistent=false,waterlogged=false]",
"150": "oak_leaves[distance=2,persistent=true,waterlogged=false]",
"151": "oak_leaves[distance=2,persistent=false,waterlogged=false]",
"152": "oak_leaves[distance=3,persistent=true,waterlogged=false]",
"153": "oak_leaves[distance=3,persistent=false,waterlogged=false]",
"154": "oak_leaves[distance=4,persistent=true,waterlogged=false]",
"155": "oak_leaves[distance=4,persistent=false,waterlogged=false]",
"156": "oak_leaves[distance=5,persistent=true,waterlogged=false]",
"157": "oak_leaves[distance=5,persistent=false,waterlogged=false]",
"158": "oak_leaves[distance=6,persistent=true,waterlogged=false]",
"159": "oak_leaves[distance=6,persistent=false,waterlogged=false]",
"160": "oak_leaves[distance=7,persistent=true,waterlogged=false]",
"161": "oak_leaves[distance=7,persistent=false,waterlogged=false]",
"162": "spruce_leaves[distance=1,persistent=true,waterlogged=false]",
"163": "spruce_leaves[distance=1,persistent=false,waterlogged=false]",
"164": "spruce_leaves[distance=2,persistent=true,waterlogged=false]",
"165": "spruce_leaves[distance=2,persistent=false,waterlogged=false]",
"166": "spruce_leaves[distance=3,persistent=true,waterlogged=false]",
"167": "spruce_leaves[distance=3,persistent=false,waterlogged=false]",
"168": "spruce_leaves[distance=4,persistent=true,waterlogged=false]",
"169": "spruce_leaves[distance=4,persistent=false,waterlogged=false]",
"170": "spruce_leaves[distance=5,persistent=true,waterlogged=false]",
"171": "spruce_leaves[distance=5,persistent=false,waterlogged=false]",
"172": "spruce_leaves[distance=6,persistent=true,waterlogged=false]",
"173": "spruce_leaves[distance=6,persistent=false,waterlogged=false]",
"174": "spruce_leaves[distance=7,persistent=true,waterlogged=false]",
"175": "spruce_leaves[distance=7,persistent=false,waterlogged=false]",
"176": "birch_leaves[distance=1,persistent=true,waterlogged=false]",
"177": "birch_leaves[distance=1,persistent=false,waterlogged=false]",
"178": "birch_leaves[distance=2,persistent=true,waterlogged=false]",
"179": "birch_leaves[distance=2,persistent=false,waterlogged=false]",
"180": "birch_leaves[distance=3,persistent=true,waterlogged=false]",
"181": "birch_leaves[distance=3,persistent=false,waterlogged=false]",
"182": "birch_leaves[distance=4,persistent=true,waterlogged=false]",
"183": "birch_leaves[distance=4,persistent=false,waterlogged=false]",
"184": "birch_leaves[distance=5,persistent=true,waterlogged=false]",
"185": "birch_leaves[distance=5,persistent=false,waterlogged=false]",
"186": "birch_leaves[distance=6,persistent=true,waterlogged=false]",
"187": "birch_leaves[distance=6,persistent=false,waterlogged=false]",
"188": "birch_leaves[distance=7,persistent=true,waterlogged=false]",
"189": "birch_leaves[distance=7,persistent=false,waterlogged=false]",
"190": "jungle_leaves[distance=1,persistent=true,waterlogged=false]",
"191": "jungle_leaves[distance=1,persistent=false,waterlogged=false]",
"192": "jungle_leaves[distance=2,persistent=true,waterlogged=false]",
"193": "jungle_leaves[distance=2,persistent=false,waterlogged=false]",
"194": "jungle_leaves[distance=3,persistent=true,waterlogged=false]",
"195": "jungle_leaves[distance=3,persistent=false,waterlogged=false]",
"196": "jungle_leaves[distance=4,persistent=true,waterlogged=false]",
"197": "jungle_leaves[distance=4,persistent=false,waterlogged=false]",
"198": "jungle_leaves[distance=5,persistent=true,waterlogged=false]",
"199": "jungle_leaves[distance=5,persistent=false,waterlogged=false]",
"200": "jungle_leaves[distance=6,persistent=true,waterlogged=false]",
"201": "jungle_leaves[distance=6,persistent=false,waterlogged=false]",
"202": "jungle_leaves[distance=7,persistent=true,waterlogged=false]",
"203": "jungle_leaves[distance=7,persistent=false,waterlogged=false]",
"204": "acacia_leaves[distance=1,persistent=true,waterlogged=false]",
"205": "acacia_leaves[distance=1,persistent=false,waterlogged=false]",
"206": "acacia_leaves[distance=2,persistent=true,waterlogged=false]",
"207": "acacia_leaves[distance=2,persistent=false,waterlogged=false]",
"208": "acacia_leaves[distance=3,persistent=true,waterlogged=false]",
"209": "acacia_leaves[distance=3,persistent=false,waterlogged=false]",
"210": "acacia_leaves[distance=4,persistent=true,waterlogged=false]",
"211": "acacia_leaves[distance=4,persistent=false,waterlogged=false]",
"212": "acacia_leaves[distance=5,persistent=true,waterlogged=false]",
"213": "acacia_leaves[distance=5,persistent=false,waterlogged=false]",
"214": "acacia_leaves[distance=6,persistent=true,waterlogged=false]",
"215": "acacia_leaves[distance=6,persistent=false,waterlogged=false]",
"216": "acacia_leaves[distance=7,persistent=true,waterlogged=false]",
"217": "acacia_leaves[distance=7,persistent=false,waterlogged=false]",
"218": "dark_oak_leaves[distance=1,persistent=true,waterlogged=false]",
"219": "dark_oak_leaves[distance=1,persistent=false,waterlogged=false]",
"220": "dark_oak_leaves[distance=2,persistent=true,waterlogged=false]",
"221": "dark_oak_leaves[distance=2,persistent=false,waterlogged=false]",
"222": "dark_oak_leaves[distance=3,persistent=true,waterlogged=false]",
"223": "dark_oak_leaves[distance=3,persistent=false,waterlogged=false]",
"224": "dark_oak_leaves[distance=4,persistent=true,waterlogged=false]",
"225": "dark_oak_leaves[distance=4,persistent=false,waterlogged=false]",
"226": "dark_oak_leaves[distance=5,persistent=true,waterlogged=false]",
"227": "dark_oak_leaves[distance=5,persistent=false,waterlogged=false]",
"228": "dark_oak_leaves[distance=6,persistent=true,waterlogged=false]",
"229": "dark_oak_leaves[distance=6,persistent=false,waterlogged=false]",
"230": "dark_oak_leaves[distance=7,persistent=true,waterlogged=false]",
"231": "dark_oak_leaves[distance=7,persistent=false,waterlogged=false]",
"232": "azalea_leaves[distance=1,persistent=true,waterlogged=false]",
"233": "azalea_leaves[distance=1,persistent=false,waterlogged=false]",
"234": "azalea_leaves[distance=2,persistent=true,waterlogged=false]",
"235": "azalea_leaves[distance=2,persistent=false,waterlogged=false]",
"236": "azalea_leaves[distance=3,persistent=true,waterlogged=false]",
"237": "azalea_leaves[distance=3,persistent=false,waterlogged=false]",
"238": "azalea_leaves[distance=4,persistent=true,waterlogged=false]",
"239": "azalea_leaves[distance=4,persistent=false,waterlogged=false]",
"240": "azalea_leaves[distance=5,persistent=true,waterlogged=false]",
"241": "azalea_leaves[distance=5,persistent=false,waterlogged=false]",
"242": "azalea_leaves[distance=6,persistent=true,waterlogged=false]",
"243": "azalea_leaves[distance=6,persistent=false,waterlogged=false]",
"244": "azalea_leaves[distance=7,persistent=true,waterlogged=false]",
"245": "azalea_leaves[distance=7,persistent=false,waterlogged=false]",
"246": "flowering_azalea_leaves[distance=1,persistent=true,waterlogged=false]",
"247": "flowering_azalea_leaves[distance=1,persistent=false,waterlogged=false]",
"248": "flowering_azalea_leaves[distance=2,persistent=true,waterlogged=false]",
"249": "flowering_azalea_leaves[distance=2,persistent=false,waterlogged=false]",
"250": "flowering_azalea_leaves[distance=3,persistent=true,waterlogged=false]",
"251": "flowering_azalea_leaves[distance=3,persistent=false,waterlogged=false]",
"252": "flowering_azalea_leaves[distance=4,persistent=true,waterlogged=false]",
"253": "flowering_azalea_leaves[distance=4,persistent=false,waterlogged=false]",
"254": "flowering_azalea_leaves[distance=5,persistent=true,waterlogged=false]",
"255": "flowering_azalea_leaves[distance=5,persistent=false,waterlogged=false]",
"256": "flowering_azalea_leaves[distance=6,persistent=true,waterlogged=false]",
"257": "flowering_azalea_leaves[distance=6,persistent=false,waterlogged=false]",
"258": "flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false]",
"259": "flowering_azalea_leaves[distance=7,persistent=false,waterlogged=false]",
"1416": "piston_head[type=normal,facing=north,short=true]",
"1417": "piston_head[type=sticky,facing=north,short=true]",
"1418": "piston_head[type=normal,facing=north,short=false]",
"1419": "piston_head[type=sticky,facing=north,short=false]",
"1420": "piston_head[type=normal,facing=east,short=true]",
"1421": "piston_head[type=sticky,facing=east,short=true]",
"1422": "piston_head[type=normal,facing=east,short=false]",
"1423": "piston_head[type=sticky,facing=east,short=false]",
"1424": "piston_head[type=normal,facing=south,short=true]",
"1425": "piston_head[type=sticky,facing=south,short=true]",
"1426": "piston_head[type=normal,facing=south,short=false]",
"1427": "piston_head[type=sticky,facing=south,short=false]",
"1428": "piston_head[type=normal,facing=west,short=true]",
"1429": "piston_head[type=sticky,facing=west,short=true]",
"1430": "piston_head[type=normal,facing=west,short=false]",
"1431": "piston_head[type=sticky,facing=west,short=false]",
"1432": "piston_head[type=normal,facing=up,short=true]",
"1433": "piston_head[type=sticky,facing=up,short=true]",
"1434": "piston_head[type=normal,facing=up,short=false]",
"1435": "piston_head[type=sticky,facing=up,short=false]",
"1436": "piston_head[type=normal,facing=down,short=true]",
"1437": "piston_head[type=sticky,facing=down,short=true]",
"1438": "piston_head[type=normal,facing=down,short=false]",
"1439": "piston_head[type=sticky,facing=down,short=false]",
"1456": "moving_piston[type=normal,facing=north]",
"1457": "moving_piston[type=sticky,facing=north]",
"1458": "moving_piston[type=normal,facing=east]",
"1459": "moving_piston[type=sticky,facing=east]",
"1460": "moving_piston[type=normal,facing=south]",
"1461": "moving_piston[type=sticky,facing=south]",
"1462": "moving_piston[type=normal,facing=west]",
"1463": "moving_piston[type=sticky,facing=west]",
"1464": "moving_piston[type=normal,facing=up]",
"1465": "moving_piston[type=sticky,facing=up]",
"1466": "moving_piston[type=normal,facing=down]",
"1467": "moving_piston[type=sticky,facing=down]",
"2090": "chest[type=single,facing=north,waterlogged=true]",
"2091": "chest[type=single,facing=north,waterlogged=false]",
"2092": "chest[type=left,facing=north,waterlogged=true]",
"2093": "chest[type=left,facing=north,waterlogged=false]",
"2094": "chest[type=right,facing=north,waterlogged=true]",
"2095": "chest[type=right,facing=north,waterlogged=false]",
"2096": "chest[type=single,facing=south,waterlogged=true]",
"2097": "chest[type=single,facing=south,waterlogged=false]",
"2098": "chest[type=left,facing=south,waterlogged=true]",
"2099": "chest[type=left,facing=south,waterlogged=false]",
"2100": "chest[type=right,facing=south,waterlogged=true]",
"2101": "chest[type=right,facing=south,waterlogged=false]",
"2102": "chest[type=single,facing=west,waterlogged=true]",
"2103": "chest[type=single,facing=west,waterlogged=false]",
"2104": "chest[type=left,facing=west,waterlogged=true]",
"2105": "chest[type=left,facing=west,waterlogged=false]",
"2106": "chest[type=right,facing=west,waterlogged=true]",
"2107": "chest[type=right,facing=west,waterlogged=false]",
"2108": "chest[type=single,facing=east,waterlogged=true]",
"2109": "chest[type=single,facing=east,waterlogged=false]",
"2110": "chest[type=left,facing=east,waterlogged=true]",
"2111": "chest[type=left,facing=east,waterlogged=false]",
"2112": "chest[type=right,facing=east,waterlogged=true]",
"2113": "chest[type=right,facing=east,waterlogged=false]",
"6828": "trapped_chest[type=single,facing=north,waterlogged=true]",
"6829": "trapped_chest[type=single,facing=north,waterlogged=false]",
"6830": "trapped_chest[type=left,facing=north,waterlogged=true]",
"6831": "trapped_chest[type=left,facing=north,waterlogged=false]",
"6832": "trapped_chest[type=right,facing=north,waterlogged=true]",
"6833": "trapped_chest[type=right,facing=north,waterlogged=false]",
"6834": "trapped_chest[type=single,facing=south,waterlogged=true]",
"6835": "trapped_chest[type=single,facing=south,waterlogged=false]",
"6836": "trapped_chest[type=left,facing=south,waterlogged=true]",
"6837": "trapped_chest[type=left,facing=south,waterlogged=false]",
"6838": "trapped_chest[type=right,facing=south,waterlogged=true]",
"6839": "trapped_chest[type=right,facing=south,waterlogged=false]",
"6840": "trapped_chest[type=single,facing=west,waterlogged=true]",
"6841": "trapped_chest[type=single,facing=west,waterlogged=false]",
"6842": "trapped_chest[type=left,facing=west,waterlogged=true]",
"6843": "trapped_chest[type=left,facing=west,waterlogged=false]",
"6844": "trapped_chest[type=right,facing=west,waterlogged=true]",
"6845": "trapped_chest[type=right,facing=west,waterlogged=false]",
"6846": "trapped_chest[type=single,facing=east,waterlogged=true]",
"6847": "trapped_chest[type=single,facing=east,waterlogged=false]",
"6848": "trapped_chest[type=left,facing=east,waterlogged=true]",
"6849": "trapped_chest[type=left,facing=east,waterlogged=false]",
"6850": "trapped_chest[type=right,facing=east,waterlogged=true]",
"6851": "trapped_chest[type=right,facing=east,waterlogged=false]"
}
}

View File

@ -1,7 +0,0 @@
{
"argumenttypes": {
"item_enchantment": "resource",
"mob_effect": "resource",
"entity_summon": "resource"
}
}