Merge pull request #1648 from KennyTV/abstraction

20w06a, more cleanup
This commit is contained in:
Myles 2020-02-05 19:28:04 +00:00 committed by GitHub
commit 7f5e53782b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 20078 additions and 260 deletions

View File

@ -0,0 +1,227 @@
package us.myles.ViaVersion.api.entities;
import lombok.AllArgsConstructor;
import lombok.Getter;
import us.myles.ViaVersion.api.Via;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
public class Entity1_16Types {
public static EntityType getTypeFromId(int typeID) {
Optional<EntityType> type = EntityType.findById(typeID);
if (!type.isPresent()) {
Via.getPlatform().getLogger().severe("Could not find 1.16 type id " + typeID);
return EntityType.ENTITY; // Fall back to the basic ENTITY
}
return type.get();
}
@AllArgsConstructor
@Getter
public enum EntityType implements us.myles.ViaVersion.api.entities.EntityType {
ENTITY(-1),
AREA_EFFECT_CLOUD(0, ENTITY),
ENDER_CRYSTAL(18, ENTITY),
EVOCATION_FANGS(22, ENTITY),
XP_ORB(24, ENTITY),
EYE_OF_ENDER_SIGNAL(25, ENTITY),
FALLING_BLOCK(26, ENTITY),
FIREWORKS_ROCKET(27, ENTITY),
ITEM(35, ENTITY),
LLAMA_SPIT(40, ENTITY),
TNT(59, ENTITY),
SHULKER_BULLET(64, ENTITY),
FISHING_BOBBER(102, ENTITY),
LIVINGENTITY(-1, ENTITY),
ARMOR_STAND(1, LIVINGENTITY),
PLAYER(101, LIVINGENTITY),
ABSTRACT_INSENTIENT(-1, LIVINGENTITY),
ENDER_DRAGON(19, ABSTRACT_INSENTIENT),
BEE(4, ABSTRACT_INSENTIENT),
ABSTRACT_CREATURE(-1, ABSTRACT_INSENTIENT),
ABSTRACT_AGEABLE(-1, ABSTRACT_CREATURE),
VILLAGER(85, ABSTRACT_AGEABLE),
WANDERING_TRADER(89, ABSTRACT_AGEABLE),
// Animals
ABSTRACT_ANIMAL(-1, ABSTRACT_AGEABLE),
DOLPHIN(14, ABSTRACT_INSENTIENT),
CHICKEN(9, ABSTRACT_ANIMAL),
COW(11, ABSTRACT_ANIMAL),
MOOSHROOM(50, COW),
PANDA(53, ABSTRACT_INSENTIENT),
PIG(55, ABSTRACT_ANIMAL),
POLAR_BEAR(58, ABSTRACT_ANIMAL),
RABBIT(60, ABSTRACT_ANIMAL),
SHEEP(62, ABSTRACT_ANIMAL),
TURTLE(78, ABSTRACT_ANIMAL),
FOX(28, ABSTRACT_ANIMAL),
ABSTRACT_TAMEABLE_ANIMAL(-1, ABSTRACT_ANIMAL),
CAT(7, ABSTRACT_TAMEABLE_ANIMAL),
OCELOT(51, ABSTRACT_TAMEABLE_ANIMAL),
WOLF(94, ABSTRACT_TAMEABLE_ANIMAL),
ABSTRACT_PARROT(-1, ABSTRACT_TAMEABLE_ANIMAL),
PARROT(54, ABSTRACT_PARROT),
// Horses
ABSTRACT_HORSE(-1, ABSTRACT_ANIMAL),
CHESTED_HORSE(-1, ABSTRACT_HORSE),
DONKEY(13, CHESTED_HORSE),
MULE(49, CHESTED_HORSE),
LLAMA(39, CHESTED_HORSE),
TRADER_LLAMA(76, CHESTED_HORSE),
HORSE(32, ABSTRACT_HORSE),
SKELETON_HORSE(67, ABSTRACT_HORSE),
ZOMBIE_HORSE(96, ABSTRACT_HORSE),
// Golem
ABSTRACT_GOLEM(-1, ABSTRACT_CREATURE),
SNOWMAN(70, ABSTRACT_GOLEM),
VILLAGER_GOLEM(86, ABSTRACT_GOLEM),
SHULKER(63, ABSTRACT_GOLEM),
// Fish
ABSTRACT_FISHES(-1, ABSTRACT_CREATURE),
COD(10, ABSTRACT_FISHES),
PUFFER_FISH(56, ABSTRACT_FISHES),
SALMON_MOB(61, ABSTRACT_FISHES),
TROPICAL_FISH(77, ABSTRACT_FISHES),
// Monsters
ABSTRACT_MONSTER(-1, ABSTRACT_CREATURE),
BLAZE(5, ABSTRACT_MONSTER),
CREEPER(12, ABSTRACT_MONSTER),
ENDERMITE(21, ABSTRACT_MONSTER),
ENDERMAN(20, ABSTRACT_MONSTER),
GIANT(30, ABSTRACT_MONSTER),
SILVERFISH(65, ABSTRACT_MONSTER),
VEX(84, ABSTRACT_MONSTER),
WITCH(90, ABSTRACT_MONSTER),
WITHER(91, ABSTRACT_MONSTER),
RAVAGER(99, ABSTRACT_MONSTER),
HOGLIN(100, ABSTRACT_MONSTER),
// Illagers
ABSTRACT_ILLAGER_BASE(-1, ABSTRACT_MONSTER),
ABSTRACT_EVO_ILLU_ILLAGER(-1, ABSTRACT_ILLAGER_BASE),
EVOCATION_ILLAGER(23, ABSTRACT_EVO_ILLU_ILLAGER),
ILLUSION_ILLAGER(34, ABSTRACT_EVO_ILLU_ILLAGER),
VINDICATION_ILLAGER(87, ABSTRACT_ILLAGER_BASE),
PILLAGER(88, ABSTRACT_ILLAGER_BASE),
// Skeletons
ABSTRACT_SKELETON(-1, ABSTRACT_MONSTER),
SKELETON(66, ABSTRACT_SKELETON),
STRAY(75, ABSTRACT_SKELETON),
WITHER_SKELETON(92, ABSTRACT_SKELETON),
// Guardians
GUARDIAN(31, ABSTRACT_MONSTER),
ELDER_GUARDIAN(17, GUARDIAN),
// Spiders
SPIDER(73, ABSTRACT_MONSTER),
CAVE_SPIDER(8, SPIDER),
// Zombies
ZOMBIE(95, ABSTRACT_MONSTER),
DROWNED(16, ZOMBIE),
HUSK(33, ZOMBIE),
ZOMBIE_PIGMAN(57, ZOMBIE),
ZOMBIE_VILLAGER(97, ZOMBIE),
// Flying entities
ABSTRACT_FLYING(-1, ABSTRACT_INSENTIENT),
GHAST(29, ABSTRACT_FLYING),
PHANTOM(98, ABSTRACT_FLYING),
ABSTRACT_AMBIENT(-1, ABSTRACT_INSENTIENT),
BAT(3, ABSTRACT_AMBIENT),
ABSTRACT_WATERMOB(-1, ABSTRACT_INSENTIENT),
SQUID(74, ABSTRACT_WATERMOB),
// Slimes
SLIME(68, ABSTRACT_INSENTIENT),
MAGMA_CUBE(41, SLIME),
// Hangable objects
ABSTRACT_HANGING(-1, ENTITY),
LEASH_KNOT(38, ABSTRACT_HANGING),
ITEM_FRAME(36, ABSTRACT_HANGING),
PAINTING(52, ABSTRACT_HANGING),
ABSTRACT_LIGHTNING(-1, ENTITY),
LIGHTNING_BOLT(100, ABSTRACT_LIGHTNING),
// Arrows
ABSTRACT_ARROW(-1, ENTITY),
ARROW(2, ABSTRACT_ARROW),
SPECTRAL_ARROW(72, ABSTRACT_ARROW),
TRIDENT(83, ABSTRACT_ARROW),
// Fireballs
ABSTRACT_FIREBALL(-1, ENTITY),
DRAGON_FIREBALL(15, ABSTRACT_FIREBALL),
FIREBALL(37, ABSTRACT_FIREBALL),
SMALL_FIREBALL(69, ABSTRACT_FIREBALL),
WITHER_SKULL(93, ABSTRACT_FIREBALL),
// Projectiles
PROJECTILE_ABSTRACT(-1, ENTITY),
SNOWBALL(71, PROJECTILE_ABSTRACT),
ENDER_PEARL(80, PROJECTILE_ABSTRACT),
EGG(79, PROJECTILE_ABSTRACT),
POTION(82, PROJECTILE_ABSTRACT),
XP_BOTTLE(81, PROJECTILE_ABSTRACT),
// Vehicles
MINECART_ABSTRACT(-1, ENTITY),
CHESTED_MINECART_ABSTRACT(-1, MINECART_ABSTRACT),
CHEST_MINECART(43, CHESTED_MINECART_ABSTRACT),
HOPPER_MINECART(46, CHESTED_MINECART_ABSTRACT),
MINECART(42, MINECART_ABSTRACT),
FURNACE_MINECART(45, MINECART_ABSTRACT),
COMMANDBLOCK_MINECART(44, MINECART_ABSTRACT),
TNT_MINECART(48, MINECART_ABSTRACT),
SPAWNER_MINECART(47, MINECART_ABSTRACT),
BOAT(6, ENTITY);
private static final Map<Integer, EntityType> TYPES = new HashMap<>();
private final int id;
private final EntityType parent;
EntityType(int id) {
this.id = id;
this.parent = null;
}
static {
for (EntityType type : EntityType.values()) {
TYPES.put(type.id, type);
}
}
public static Optional<EntityType> findById(int id) {
if (id == -1)
return Optional.empty();
return Optional.ofNullable(TYPES.get(id));
}
}
}

View File

@ -24,6 +24,7 @@ import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2;
import us.myles.ViaVersion.protocols.protocol1_15_1to1_15.Protocol1_15_1To1_15;
import us.myles.ViaVersion.protocols.protocol1_15_2to1_15_1.Protocol1_15_2To1_15_1;
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.Protocol1_15To1_14_4;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.Protocol1_16To1_15_2;
import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.Protocol1_9_1_2To1_9_3_4;
import us.myles.ViaVersion.protocols.protocol1_9_1to1_9.Protocol1_9_1To1_9;
import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.Protocol1_9_3To1_9_1_2;
@ -77,6 +78,8 @@ public class ProtocolRegistry {
registerProtocol(new Protocol1_15To1_14_4(), ProtocolVersion.v1_15, ProtocolVersion.v1_14_4);
registerProtocol(new Protocol1_15_1To1_15(), ProtocolVersion.v1_15_1, ProtocolVersion.v1_15);
registerProtocol(new Protocol1_15_2To1_15_1(), ProtocolVersion.v1_15_2, ProtocolVersion.v1_15_1);
registerProtocol(new Protocol1_16To1_15_2(), ProtocolVersion.v1_16, ProtocolVersion.v1_15_2);
}
/**

View File

@ -43,6 +43,7 @@ public class ProtocolVersion {
public static final ProtocolVersion v1_15;
public static final ProtocolVersion v1_15_1;
public static final ProtocolVersion v1_15_2;
public static final ProtocolVersion v1_16;
public static final ProtocolVersion unknown;
private final int id;
@ -82,6 +83,7 @@ public class ProtocolVersion {
register(v1_15 = new ProtocolVersion(573, "1.15"));
register(v1_15_1 = new ProtocolVersion(575, "1.15.1"));
register(v1_15_2 = new ProtocolVersion(578, "1.15.2"));
register(v1_16 = new ProtocolVersion(701, "1.16"));
register(unknown = new ProtocolVersion(-1, "UNKNOWN"));
}

View File

@ -1,6 +1,5 @@
package us.myles.ViaVersion.api.rewriters;
import us.myles.ViaVersion.api.PacketWrapper;
import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.entities.EntityType;
@ -11,6 +10,7 @@ import us.myles.ViaVersion.api.remapper.PacketRemapper;
import us.myles.ViaVersion.api.storage.EntityTracker;
import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.packets.State;
import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import java.util.*;
import java.util.logging.Logger;
@ -53,6 +53,105 @@ public abstract class MetadataRewriter {
}
}
public void registerJoinGame(int oldPacketId, int newPacketId, EntityType playerType) {
protocol.registerOutgoing(State.PLAY, oldPacketId, newPacketId, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.INT); // 0 - Entity ID
map(Type.UNSIGNED_BYTE); // 1 - Gamemode
map(Type.INT); // 2 - Dimension
handler(wrapper -> {
ClientWorld clientChunks = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 1);
clientChunks.setEnvironment(dimensionId);
if (playerType != null) {
wrapper.user().get(entityTrackerClass).addEntity(wrapper.get(Type.INT, 0), playerType);
}
});
}
});
}
public void registerRespawn(int oldPacketId, int newPacketId) {
protocol.registerOutgoing(State.PLAY, oldPacketId, newPacketId, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.INT);
handler(wrapper -> {
ClientWorld clientWorld = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 0);
clientWorld.setEnvironment(dimensionId);
});
}
});
}
public void registerTracker(int oldPacketId, int newPacketId) {
protocol.registerOutgoing(State.PLAY, oldPacketId, newPacketId, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.VAR_INT); // 0 - Entity ID
map(Type.UUID); // 1 - Entity UUID
map(Type.VAR_INT); // 2 - Entity Type
handler(getTracker());
}
});
}
public void registerSpawnTrackerWithData(int oldPacketId, int newPacketId, EntityType fallingBlockType, IdRewriteFunction itemRewriter) {
protocol.registerOutgoing(State.PLAY, oldPacketId, newPacketId, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.VAR_INT); // 0 - Entity id
map(Type.UUID); // 1 - Entity UUID
map(Type.VAR_INT); // 2 - Entity Type
map(Type.DOUBLE); // 3 - X
map(Type.DOUBLE); // 4 - Y
map(Type.DOUBLE); // 5 - Z
map(Type.BYTE); // 6 - Pitch
map(Type.BYTE); // 7 - Yaw
map(Type.INT); // 8 - Data
handler(getTracker());
handler(wrapper -> {
int entityId = wrapper.get(Type.VAR_INT, 0);
EntityType entityType = wrapper.user().get(entityTrackerClass).getEntity(entityId);
if (entityType == fallingBlockType) {
wrapper.set(Type.INT, 0, itemRewriter.rewrite(wrapper.get(Type.INT, 0)));
}
});
}
});
}
public void registerTracker(int oldPacketId, int newPacketId, EntityType entityType) {
protocol.registerOutgoing(State.PLAY, oldPacketId, newPacketId, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.VAR_INT); // 0 - Entity ID
handler(wrapper -> {
int entityId = wrapper.get(Type.VAR_INT, 0);
wrapper.user().get(entityTrackerClass).addEntity(entityId, entityType);
});
}
});
}
public void registerEntityDestroy(int oldPacketId, int newPacketId) {
protocol.registerOutgoing(State.PLAY, oldPacketId, newPacketId, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.VAR_INT_ARRAY_PRIMITIVE); // 0 - Entity ids
handler(wrapper -> {
EntityTracker entityTracker = wrapper.user().get(entityTrackerClass);
for (int entity : wrapper.get(Type.VAR_INT_ARRAY_PRIMITIVE, 0)) {
entityTracker.removeEntity(entity);
}
});
}
});
}
public void registerMetadataRewriter(int oldPacketId, int newPacketId, Type<List<Metadata>> oldMetaType, Type<List<Metadata>> newMetaType) {
protocol.registerOutgoing(State.PLAY, oldPacketId, newPacketId, new PacketRemapper() {
@Override
@ -63,13 +162,10 @@ public abstract class MetadataRewriter {
} else {
map(newMetaType);
}
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
int entityId = wrapper.get(Type.VAR_INT, 0);
List<Metadata> metadata = wrapper.get(newMetaType, 0);
handleMetadata(entityId, metadata, wrapper.user());
}
handler(wrapper -> {
int entityId = wrapper.get(Type.VAR_INT, 0);
List<Metadata> metadata = wrapper.get(newMetaType, 0);
handleMetadata(entityId, metadata, wrapper.user());
});
}
});
@ -79,6 +175,13 @@ public abstract class MetadataRewriter {
registerMetadataRewriter(oldPacketId, newPacketId, null, metaType);
}
public PacketHandler getTracker() {
return getTrackerAndRewriter(null);
}
// ---------------------------------------------------------------------------
// Sub 1.14.1 methods
/**
* Returns a packethandler to track and rewrite an entity.
*
@ -86,43 +189,33 @@ public abstract class MetadataRewriter {
* @return handler for tracking and rewriting entities
*/
public PacketHandler getTrackerAndRewriter(Type<List<Metadata>> metaType) {
return new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
int entityId = wrapper.get(Type.VAR_INT, 0);
int type = wrapper.get(Type.VAR_INT, 1);
return wrapper -> {
int entityId = wrapper.get(Type.VAR_INT, 0);
int type = wrapper.get(Type.VAR_INT, 1);
int newType = getNewEntityId(type);
if (newType != type) {
wrapper.set(Type.VAR_INT, 1, newType);
}
int newType = getNewEntityId(type);
if (newType != type) {
wrapper.set(Type.VAR_INT, 1, newType);
}
EntityType entType = getTypeFromId(newType);
// Register Type ID
wrapper.user().get(entityTrackerClass).addEntity(entityId, entType);
EntityType entType = getTypeFromId(newType);
// Register Type ID
wrapper.user().get(entityTrackerClass).addEntity(entityId, entType);
if (metaType != null) {
handleMetadata(entityId, wrapper.get(metaType, 0), wrapper.user());
}
if (metaType != null) {
handleMetadata(entityId, wrapper.get(metaType, 0), wrapper.user());
}
};
}
public PacketHandler getTracker() {
return getTrackerAndRewriter(null);
}
public PacketHandler getTrackerAndRewriter(Type<List<Metadata>> metaType, EntityType entityType) {
return new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
int entityId = wrapper.get(Type.VAR_INT, 0);
// Register Type ID
wrapper.user().get(entityTrackerClass).addEntity(entityId, entityType);
return wrapper -> {
int entityId = wrapper.get(Type.VAR_INT, 0);
// Register Type ID
wrapper.user().get(entityTrackerClass).addEntity(entityId, entityType);
if (metaType != null) {
handleMetadata(entityId, wrapper.get(metaType, 0), wrapper.user());
}
if (metaType != null) {
handleMetadata(entityId, wrapper.get(metaType, 0), wrapper.user());
}
};
}
@ -133,41 +226,16 @@ public abstract class MetadataRewriter {
* @return handler for tracking and rewriting entities
*/
public PacketHandler getObjectTracker() {
return new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
int entityId = wrapper.get(Type.VAR_INT, 0);
byte type = wrapper.get(Type.BYTE, 0);
return wrapper -> {
int entityId = wrapper.get(Type.VAR_INT, 0);
byte type = wrapper.get(Type.BYTE, 0);
EntityType entType = getObjectTypeFromId(type);
// Register Type ID
wrapper.user().get(entityTrackerClass).addEntity(entityId, entType);
}
EntityType entType = getObjectTypeFromId(type);
// Register Type ID
wrapper.user().get(entityTrackerClass).addEntity(entityId, entType);
};
}
public void registerEntityDestroy(int oldPacketId, int newPacketId) {
protocol.registerOutgoing(State.PLAY, oldPacketId, newPacketId, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.VAR_INT_ARRAY_PRIMITIVE); // 0 - Entity ids
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
EntityTracker entityTracker = wrapper.user().get(entityTrackerClass);
for (int entity : wrapper.get(Type.VAR_INT_ARRAY_PRIMITIVE, 0)) {
entityTracker.removeEntity(entity);
}
}
});
}
});
}
public void registerEntityDestroy(int packetId) {
registerEntityDestroy(packetId, packetId);
}
protected abstract EntityType getTypeFromId(int type);
protected EntityType getObjectTypeFromId(int type) {

View File

@ -161,7 +161,7 @@ public class Protocol1_11To1_10 extends Protocol {
});
// Destroy entities
metadataRewriter.registerEntityDestroy(0x30);
metadataRewriter.registerEntityDestroy(0x30, 0x30);
// Title packet
registerOutgoing(State.PLAY, 0x45, 0x45, new PacketRemapper() {
@ -264,42 +264,10 @@ public class Protocol1_11To1_10 extends Protocol {
});
// Join (save dimension id)
registerOutgoing(State.PLAY, 0x23, 0x23, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.INT); // 0 - Entity ID
map(Type.UNSIGNED_BYTE); // 1 - Gamemode
map(Type.INT); // 2 - Dimension
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
ClientWorld clientChunks = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 1);
clientChunks.setEnvironment(dimensionId);
}
});
}
});
metadataRewriter.registerJoinGame(0x23, 0x23, null);
// Respawn (save dimension id)
registerOutgoing(State.PLAY, 0x33, 0x33, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.INT); // 0 - Dimension ID
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
ClientWorld clientWorld = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 0);
clientWorld.setEnvironment(dimensionId);
}
});
}
});
metadataRewriter.registerRespawn(0x33, 0x33);
/*
INCOMING PACKETS

View File

@ -141,24 +141,7 @@ public class Protocol1_12To1_11_1 extends Protocol {
});
// Join Packet
registerOutgoing(State.PLAY, 0x23, 0x23, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.INT); // 0 - Entity ID
map(Type.UNSIGNED_BYTE); // 1 - Gamemode
map(Type.INT); // 2 - Dimension
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
ClientWorld clientChunks = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 1);
clientChunks.setEnvironment(dimensionId);
}
});
}
});
metadataRewriter.registerJoinGame(0x23, 0x23, null);
// 0x28 moved to 0x25
registerOutgoing(State.PLAY, 0x28, 0x25);
@ -172,23 +155,9 @@ public class Protocol1_12To1_11_1 extends Protocol {
registerOutgoing(State.PLAY, 0x31, 0x32);
registerOutgoing(State.PLAY, 0x32, 0x33);
// Respawn Packet
registerOutgoing(State.PLAY, 0x33, 0x34, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.INT); // 0 - Dimension ID
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
ClientWorld clientWorld = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 0);
clientWorld.setEnvironment(dimensionId);
}
});
}
});
metadataRewriter.registerRespawn(0x33, 0x34);
registerOutgoing(State.PLAY, 0x34, 0x35);
// New packet at 0x36

View File

@ -92,7 +92,7 @@ public class EntityPackets {
});
// Destroy entities
metadataRewriter.registerEntityDestroy(0x35);
metadataRewriter.registerEntityDestroy(0x35, 0x35);
// Metadata packet
metadataRewriter.registerMetadataRewriter(0x3F, 0x3F, Types1_13.METADATA_LIST);

View File

@ -36,7 +36,7 @@ public class EntityPackets {
});
// Destroy entities
metadataRewriter.registerEntityDestroy(0x37);
metadataRewriter.registerEntityDestroy(0x37, 0x37);
// Spawn Player
protocol.registerOutgoing(State.PLAY, 0x05, 0x05, new PacketRemapper() {

View File

@ -238,15 +238,6 @@ public class Protocol1_15To1_14_4 extends Protocol {
registerOutgoing(State.PLAY, 0x59, 0x5A);
}
public static int getNewSoundId(int id) {
int newId = MappingData.soundMappings.getNewId(id);
if (newId == -1) {
Via.getPlatform().getLogger().warning("Missing 1.15 sound for 1.14.4 sound " + id);
return 0;
}
return newId;
}
public static int getNewBlockStateId(int id) {
int newId = MappingData.blockStateMappings.getNewId(id);
if (newId == -1) {

View File

@ -14,12 +14,12 @@ public class MappingData {
public static Mappings soundMappings;
public static void init() {
JsonObject diffmapping = MappingDataLoader.loadData("mappingdiff-1.14to1.15.json");
JsonObject mapping1_14 = MappingDataLoader.loadData("mapping-1.14.json");
JsonObject mapping1_14_4 = MappingDataLoader.loadData("mapping-1.14.4.json");
JsonObject mapping1_15 = MappingDataLoader.loadData("mapping-1.15.json");
Via.getPlatform().getLogger().info("Loading 1.14.4 -> 1.15 blockstate mapping...");
blockStateMappings = new Mappings(mapping1_14.getAsJsonObject("blockstates"), mapping1_15.getAsJsonObject("blockstates"), mapping1_14_4.getAsJsonObject("blockstates"));
blockStateMappings = new Mappings(mapping1_14.getAsJsonObject("blockstates"), mapping1_15.getAsJsonObject("blockstates"), diffmapping.getAsJsonObject("blockstates"));
Via.getPlatform().getLogger().info("Loading 1.14.4 -> 1.15 block mapping...");
blockMappings = new Mappings(mapping1_14.getAsJsonObject("blocks"), mapping1_15.getAsJsonObject("blocks"));
Via.getPlatform().getLogger().info("Loading 1.14.4 -> 1.15 item mapping...");

View File

@ -14,7 +14,6 @@ import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.metadata.MetadataRewri
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.storage.EntityTracker1_15;
import java.util.List;
import java.util.UUID;
public class EntityPackets {
@ -22,42 +21,7 @@ public class EntityPackets {
MetadataRewriter1_15To1_14_4 metadataRewriter = protocol.get(MetadataRewriter1_15To1_14_4.class);
// Spawn entity
protocol.registerOutgoing(State.PLAY, 0x00, 0x00, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.VAR_INT); // 0 - Entity id
map(Type.UUID); // 1 - UUID
map(Type.VAR_INT); // 2 - Type
map(Type.DOUBLE); // 3 - X
map(Type.DOUBLE); // 4 - Y
map(Type.DOUBLE); // 5 - Z
map(Type.BYTE); // 6 - Pitch
map(Type.BYTE); // 7 - Yaw
map(Type.INT); // 8 - Data
map(Type.SHORT); // 9 - Velocity X
map(Type.SHORT); // 10 - Velocity Y
map(Type.SHORT); // 11 - Velocity Z
// Track Entity
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
int entityId = wrapper.get(Type.VAR_INT, 0);
UUID uuid = wrapper.get(Type.UUID, 0);
int typeId = wrapper.get(Type.VAR_INT, 1);
Entity1_15Types.EntityType entityType = Entity1_15Types.getTypeFromId(getNewEntityId(typeId));
wrapper.user().get(EntityTracker1_15.class).addEntity(entityId, entityType);
wrapper.set(Type.VAR_INT, 1, entityType.getId());
if (entityType == Entity1_15Types.EntityType.FALLING_BLOCK) {
wrapper.set(Type.INT, 0, Protocol1_15To1_14_4.getNewBlockStateId(wrapper.get(Type.INT, 0)));
}
}
});
}
});
metadataRewriter.registerSpawnTrackerWithData(0x00, 0x00, Entity1_15Types.EntityType.FALLING_BLOCK, Protocol1_15To1_14_4::getNewBlockStateId);
// Spawn mob packet
protocol.registerOutgoing(State.PLAY, 0x03, 0x03, new PacketRemapper() {
@ -76,22 +40,15 @@ public class EntityPackets {
map(Type.SHORT); // 10 - Velocity Y
map(Type.SHORT); // 11 - Velocity Z
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
int entityId = wrapper.get(Type.VAR_INT, 0);
int typeId = wrapper.get(Type.VAR_INT, 1);
Entity1_15Types.EntityType entityType = Entity1_15Types.getTypeFromId(getNewEntityId(typeId));
wrapper.user().get(EntityTracker1_15.class).addEntity(entityId, entityType);
wrapper.set(Type.VAR_INT, 1, entityType.getId());
List<Metadata> metadata = wrapper.read(Types1_14.METADATA_LIST);
metadataRewriter.handleMetadata(entityId, metadata, wrapper.user());
PacketWrapper metadataUpdate = wrapper.create(0x44);
metadataUpdate.write(Type.VAR_INT, entityId);
metadataUpdate.write(Types1_14.METADATA_LIST, metadata);
metadataUpdate.send(Protocol1_15To1_14_4.class);
}
handler(metadataRewriter.getTracker());
handler(wrapper -> {
int entityId = wrapper.get(Type.VAR_INT, 0);
List<Metadata> metadata = wrapper.read(Types1_14.METADATA_LIST);
metadataRewriter.handleMetadata(entityId, metadata, wrapper.user());
PacketWrapper metadataUpdate = wrapper.create(0x44);
metadataUpdate.write(Type.VAR_INT, entityId);
metadataUpdate.write(Types1_14.METADATA_LIST, metadata);
metadataUpdate.send(Protocol1_15To1_14_4.class);
});
}
});
@ -108,20 +65,17 @@ public class EntityPackets {
map(Type.BYTE); // 5 - Yaw
map(Type.BYTE); // 6 - Pitch
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
int entityId = wrapper.get(Type.VAR_INT, 0);
Entity1_15Types.EntityType entityType = Entity1_15Types.EntityType.PLAYER;
wrapper.user().get(EntityTracker1_15.class).addEntity(entityId, entityType);
handler(wrapper -> {
int entityId = wrapper.get(Type.VAR_INT, 0);
Entity1_15Types.EntityType entityType = Entity1_15Types.EntityType.PLAYER;
wrapper.user().get(EntityTracker1_15.class).addEntity(entityId, entityType);
List<Metadata> metadata = wrapper.read(Types1_14.METADATA_LIST);
metadataRewriter.handleMetadata(entityId, metadata, wrapper.user());
PacketWrapper metadataUpdate = wrapper.create(0x44);
metadataUpdate.write(Type.VAR_INT, entityId);
metadataUpdate.write(Types1_14.METADATA_LIST, metadata);
metadataUpdate.send(Protocol1_15To1_14_4.class);
}
List<Metadata> metadata = wrapper.read(Types1_14.METADATA_LIST);
metadataRewriter.handleMetadata(entityId, metadata, wrapper.user());
PacketWrapper metadataUpdate = wrapper.create(0x44);
metadataUpdate.write(Type.VAR_INT, entityId);
metadataUpdate.write(Types1_14.METADATA_LIST, metadata);
metadataUpdate.send(Protocol1_15To1_14_4.class);
});
}
});

View File

@ -1,12 +1,9 @@
package us.myles.ViaVersion.protocols.protocol1_15to1_14_4.packets;
import us.myles.ViaVersion.api.PacketWrapper;
import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.api.entities.Entity1_15Types;
import us.myles.ViaVersion.api.protocol.Protocol;
import us.myles.ViaVersion.api.remapper.PacketHandler;
import us.myles.ViaVersion.api.remapper.PacketRemapper;
import us.myles.ViaVersion.api.remapper.ValueCreator;
import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.packets.State;
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.storage.EntityTracker1_15;
@ -20,19 +17,13 @@ public class PlayerPackets {
@Override
public void registerMap() {
map(Type.INT);
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
ClientWorld clientWorld = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 0);
clientWorld.setEnvironment(dimensionId);
}
handler(wrapper -> {
ClientWorld clientWorld = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 0);
clientWorld.setEnvironment(dimensionId);
});
create(new ValueCreator() {
@Override
public void write(PacketWrapper wrapper) throws Exception {
wrapper.write(Type.LONG, 0L); // Level Seed
}
create(wrapper -> {
wrapper.write(Type.LONG, 0L); // Level Seed
});
}
});
@ -45,33 +36,19 @@ public class PlayerPackets {
map(Type.UNSIGNED_BYTE); // 1 - Gamemode
map(Type.INT); // 2 - Dimension
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
Entity1_15Types.EntityType entType = Entity1_15Types.EntityType.PLAYER;
EntityTracker1_15 tracker = wrapper.user().get(EntityTracker1_15.class);
tracker.addEntity(wrapper.get(Type.INT, 0), entType);
}
});
handler(new PacketHandler() {
@Override
public void handle(PacketWrapper wrapper) throws Exception {
// Store the player
ClientWorld clientChunks = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 1);
clientChunks.setEnvironment(dimensionId);
handler(wrapper -> {
// Store the player
ClientWorld clientChunks = wrapper.user().get(ClientWorld.class);
int dimensionId = wrapper.get(Type.INT, 1);
clientChunks.setEnvironment(dimensionId);
// Register Type ID
EntityTracker1_15 tracker = wrapper.user().get(EntityTracker1_15.class);
int entityId = wrapper.get(Type.INT, 0);
tracker.addEntity(entityId, Entity1_15Types.EntityType.PLAYER);
}
// Register Type ID
EntityTracker1_15 tracker = wrapper.user().get(EntityTracker1_15.class);
int entityId = wrapper.get(Type.INT, 0);
tracker.addEntity(entityId, Entity1_15Types.EntityType.PLAYER);
});
create(new ValueCreator() {
@Override
public void write(PacketWrapper wrapper) throws Exception {
wrapper.write(Type.LONG, 0L); // Level Seed
}
create(wrapper -> {
wrapper.write(Type.LONG, 0L); // Level Seed
});
map(Type.UNSIGNED_BYTE); // 3 - Max Players
@ -79,11 +56,8 @@ public class PlayerPackets {
map(Type.VAR_INT); // 5 - View Distance
map(Type.BOOLEAN); // 6 - Reduce Debug Info
create(new ValueCreator() {
@Override
public void write(PacketWrapper wrapper) throws Exception {
wrapper.write(Type.BOOLEAN, !Via.getConfig().is1_15InstantRespawn()); // Show Death Screen
}
create(wrapper -> {
wrapper.write(Type.BOOLEAN, !Via.getConfig().is1_15InstantRespawn()); // Show Death Screen
});
}
});

View File

@ -0,0 +1,144 @@
package us.myles.ViaVersion.protocols.protocol1_16to1_15_2;
import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.protocol.Protocol;
import us.myles.ViaVersion.api.remapper.PacketRemapper;
import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.packets.State;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.data.MappingData;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.metadata.MetadataRewriter1_16To1_15_2;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.packets.EntityPackets;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.packets.InventoryPackets;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.packets.WorldPackets;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.storage.EntityTracker1_16;
import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
public class Protocol1_16To1_15_2 extends Protocol {
@Override
protected void registerPackets() {
new MetadataRewriter1_16To1_15_2(this);
MappingData.init();
EntityPackets.register(this);
WorldPackets.register(this);
InventoryPackets.register(this);
// Entity Sound Effect
registerOutgoing(State.PLAY, 0x51, 0x51, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.VAR_INT); // Sound Id
handler(wrapper -> wrapper.set(Type.VAR_INT, 0, MappingData.soundMappings.getNewId(wrapper.get(Type.VAR_INT, 0))));
}
});
// Sound Effect
registerOutgoing(State.PLAY, 0x52, 0x52, new PacketRemapper() {
@Override
public void registerMap() {
map(Type.VAR_INT); // Sound Id
handler(wrapper -> wrapper.set(Type.VAR_INT, 0, MappingData.soundMappings.getNewId(wrapper.get(Type.VAR_INT, 0))));
}
});
// Edit Book
registerIncoming(State.PLAY, 0x0C, 0x0C, new PacketRemapper() {
@Override
public void registerMap() {
handler(wrapper -> InventoryPackets.toServer(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)));
}
});
// Advancements
registerOutgoing(State.PLAY, 0x58, 0x58, new PacketRemapper() {
@Override
public void registerMap() {
handler(wrapper -> {
wrapper.passthrough(Type.BOOLEAN); // Reset/clear
int size = wrapper.passthrough(Type.VAR_INT); // Mapping size
for (int i = 0; i < size; i++) {
wrapper.passthrough(Type.STRING); // Identifier
// Parent
if (wrapper.passthrough(Type.BOOLEAN))
wrapper.passthrough(Type.STRING);
// Display data
if (wrapper.passthrough(Type.BOOLEAN)) {
wrapper.passthrough(Type.STRING); // Title
wrapper.passthrough(Type.STRING); // Description
InventoryPackets.toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); // Icon
wrapper.passthrough(Type.VAR_INT); // Frame type
int flags = wrapper.passthrough(Type.INT); // Flags
if ((flags & 1) != 0)
wrapper.passthrough(Type.STRING); // Background texture
wrapper.passthrough(Type.FLOAT); // X
wrapper.passthrough(Type.FLOAT); // Y
}
wrapper.passthrough(Type.STRING_ARRAY); // Criteria
int arrayLength = wrapper.passthrough(Type.VAR_INT);
for (int array = 0; array < arrayLength; array++) {
wrapper.passthrough(Type.STRING_ARRAY); // String array
}
}
});
}
});
// Tags
registerOutgoing(State.PLAY, 0x5C, 0x5C, new PacketRemapper() {
@Override
public void registerMap() {
handler(wrapper -> {
int blockTagsSize = wrapper.passthrough(Type.VAR_INT);
for (int i = 0; i < blockTagsSize; i++) {
wrapper.passthrough(Type.STRING);
int[] blockIds = wrapper.passthrough(Type.VAR_INT_ARRAY_PRIMITIVE);
for (int j = 0; j < blockIds.length; j++) {
blockIds[j] = getNewBlockId(blockIds[j]);
}
}
int itemTagsSize = wrapper.passthrough(Type.VAR_INT);
for (int i = 0; i < itemTagsSize; i++) {
wrapper.passthrough(Type.STRING);
int[] itemIds = wrapper.passthrough(Type.VAR_INT_ARRAY_PRIMITIVE);
for (int j = 0; j < itemIds.length; j++) {
itemIds[j] = InventoryPackets.getNewItemId(itemIds[j]);
}
}
});
}
});
}
public static int getNewBlockStateId(int id) {
int newId = MappingData.blockStateMappings.getNewId(id);
if (newId == -1) {
Via.getPlatform().getLogger().warning("Missing 1.16 blockstate for 1.15.2 blockstate " + id);
return 0;
}
return newId;
}
public static int getNewBlockId(int id) {
int newId = MappingData.blockMappings.getNewId(id);
if (newId == -1) {
Via.getPlatform().getLogger().warning("Missing 1.16 block for 1.15.2 block " + id);
return 0;
}
return newId;
}
@Override
public void init(UserConnection userConnection) {
userConnection.put(new EntityTracker1_16(userConnection));
if (!userConnection.has(ClientWorld.class))
userConnection.put(new ClientWorld(userConnection));
}
}

View File

@ -0,0 +1,30 @@
package us.myles.ViaVersion.protocols.protocol1_16to1_15_2.data;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.gson.JsonObject;
import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.api.data.MappingDataLoader;
import us.myles.ViaVersion.api.data.Mappings;
public class MappingData {
public static BiMap<Integer, Integer> oldToNewItems = HashBiMap.create();
public static Mappings blockMappings;
public static Mappings blockStateMappings;
public static Mappings soundMappings;
public static void init() {
JsonObject diffmapping = MappingDataLoader.loadData("mappingdiff-1.15to1.16.json");
JsonObject mapping1_15 = MappingDataLoader.loadData("mapping-1.15.json");
JsonObject mapping1_16 = MappingDataLoader.loadData("mapping-1.16.json");
Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 blockstate mapping...");
blockStateMappings = new Mappings(mapping1_15.getAsJsonObject("blockstates"), mapping1_16.getAsJsonObject("blockstates"), diffmapping.getAsJsonObject("blockstates"));
Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 block mapping...");
blockMappings = new Mappings(mapping1_15.getAsJsonObject("blocks"), mapping1_16.getAsJsonObject("blocks"));
Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 item mapping...");
MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_15.getAsJsonObject("items"), mapping1_16.getAsJsonObject("items"));
Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 sound mapping...");
soundMappings = new Mappings(mapping1_15.getAsJsonArray("sounds"), mapping1_16.getAsJsonArray("sounds"));
}
}

View File

@ -0,0 +1,36 @@
package us.myles.ViaVersion.protocols.protocol1_16to1_15_2.metadata;
import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.entities.Entity1_16Types;
import us.myles.ViaVersion.api.entities.EntityType;
import us.myles.ViaVersion.api.minecraft.item.Item;
import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
import us.myles.ViaVersion.api.minecraft.metadata.types.MetaType1_14;
import us.myles.ViaVersion.api.rewriters.MetadataRewriter;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.Protocol1_16To1_15_2;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.packets.InventoryPackets;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.storage.EntityTracker1_16;
import java.util.List;
public class MetadataRewriter1_16To1_15_2 extends MetadataRewriter {
public MetadataRewriter1_16To1_15_2(Protocol1_16To1_15_2 protocol) {
super(protocol, EntityTracker1_16.class);
}
@Override
public void handleMetadata(int entityId, EntityType type, Metadata metadata, List<Metadata> metadatas, UserConnection connection) throws Exception {
if (metadata.getMetaType() == MetaType1_14.Slot) {
InventoryPackets.toClient((Item) metadata.getValue());
} else if (metadata.getMetaType() == MetaType1_14.BlockID) {
int data = (int) metadata.getValue();
metadata.setValue(Protocol1_16To1_15_2.getNewBlockStateId(data));
}
}
@Override
protected EntityType getTypeFromId(int type) {
return Entity1_16Types.getTypeFromId(type);
}
}

View File

@ -0,0 +1,35 @@
package us.myles.ViaVersion.protocols.protocol1_16to1_15_2.packets;
import us.myles.ViaVersion.api.entities.Entity1_16Types;
import us.myles.ViaVersion.api.protocol.Protocol;
import us.myles.ViaVersion.api.type.types.version.Types1_14;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.Protocol1_16To1_15_2;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.metadata.MetadataRewriter1_16To1_15_2;
public class EntityPackets {
public static void register(Protocol protocol) {
MetadataRewriter1_16To1_15_2 metadataRewriter = protocol.get(MetadataRewriter1_16To1_15_2.class);
// Spawn entity
metadataRewriter.registerSpawnTrackerWithData(0x00, 0x00, Entity1_16Types.EntityType.FALLING_BLOCK, Protocol1_16To1_15_2::getNewBlockStateId);
// Spawn mob packet
metadataRewriter.registerTracker(0x03, 0x03);
// Spawn player packet
metadataRewriter.registerTracker(0x05, 0x05, Entity1_16Types.EntityType.PLAYER);
// Metadata
metadataRewriter.registerMetadataRewriter(0x44, 0x44, Types1_14.METADATA_LIST);
// Entity Destroy
metadataRewriter.registerEntityDestroy(0x38, 0x38);
// Respawn
metadataRewriter.registerRespawn(0x3B, 0x3B);
// Join Game
metadataRewriter.registerJoinGame(0x26, 0x26, Entity1_16Types.EntityType.PLAYER);
}
}

View File

@ -0,0 +1,152 @@
package us.myles.ViaVersion.protocols.protocol1_16to1_15_2.packets;
import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.api.minecraft.item.Item;
import us.myles.ViaVersion.api.protocol.Protocol;
import us.myles.ViaVersion.api.remapper.PacketRemapper;
import us.myles.ViaVersion.api.rewriters.ItemRewriter;
import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.packets.State;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.data.MappingData;
public class InventoryPackets {
public static void register(Protocol protocol) {
ItemRewriter itemRewriter = new ItemRewriter(protocol, InventoryPackets::toClient, InventoryPackets::toServer);
// Window items packet
itemRewriter.registerWindowItems(Type.FLAT_VAR_INT_ITEM_ARRAY, 0x15, 0x15);
// Trade list packet
protocol.registerOutgoing(State.PLAY, 0x28, 0x28, new PacketRemapper() {
@Override
public void registerMap() {
handler(wrapper -> {
wrapper.passthrough(Type.VAR_INT);
int size = wrapper.passthrough(Type.UNSIGNED_BYTE);
for (int i = 0; i < size; i++) {
Item input = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM);
toClient(input);
Item output = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM);
toClient(output);
if (wrapper.passthrough(Type.BOOLEAN)) { // Has second item
// Second Item
toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM));
}
wrapper.passthrough(Type.BOOLEAN); // Trade disabled
wrapper.passthrough(Type.INT); // Number of tools uses
wrapper.passthrough(Type.INT); // Maximum number of trade uses
wrapper.passthrough(Type.INT);
wrapper.passthrough(Type.INT);
wrapper.passthrough(Type.FLOAT);
wrapper.passthrough(Type.INT);
}
wrapper.passthrough(Type.VAR_INT);
wrapper.passthrough(Type.VAR_INT);
wrapper.passthrough(Type.BOOLEAN);
});
}
});
// Set slot packet
itemRewriter.registerSetSlot(Type.FLAT_VAR_INT_ITEM, 0x17, 0x17);
// Entity Equipment Packet
itemRewriter.registerEntityEquipment(Type.FLAT_VAR_INT_ITEM, 0x47, 0x47);
// Declare Recipes
protocol.registerOutgoing(State.PLAY, 0x5B, 0x5B, new PacketRemapper() {
@Override
public void registerMap() {
handler(wrapper -> {
int size = wrapper.passthrough(Type.VAR_INT);
for (int i = 0; i < size; i++) {
String type = wrapper.passthrough(Type.STRING).replace("minecraft:", "");
String id = wrapper.passthrough(Type.STRING);
switch (type) {
case "crafting_shapeless": {
wrapper.passthrough(Type.STRING); // Group
int ingredientsNo = wrapper.passthrough(Type.VAR_INT);
for (int j = 0; j < ingredientsNo; j++) {
Item[] items = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT); // Ingredients
for (Item item : items) toClient(item);
}
toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); // Result
break;
}
case "crafting_shaped": {
int ingredientsNo = wrapper.passthrough(Type.VAR_INT) * wrapper.passthrough(Type.VAR_INT);
wrapper.passthrough(Type.STRING); // Group
for (int j = 0; j < ingredientsNo; j++) {
Item[] items = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT); // Ingredients
for (Item item : items) toClient(item);
}
toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); // Result
break;
}
case "blasting":
case "smoking":
case "campfire_cooking":
case "smelting": {
wrapper.passthrough(Type.STRING); // Group
Item[] items = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT); // Ingredients
for (Item item : items) toClient(item);
toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM));
wrapper.passthrough(Type.FLOAT); // EXP
wrapper.passthrough(Type.VAR_INT); // Cooking time
break;
}
case "stonecutting": {
wrapper.passthrough(Type.STRING);
Item[] items = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT); // Ingredients
for (Item item : items) toClient(item);
toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM));
break;
}
}
}
});
}
});
// Click window packet
itemRewriter.registerClickWindow(Type.FLAT_VAR_INT_ITEM, 0x09, 0x09);
// Creative Inventory Action
itemRewriter.registerCreativeInvAction(Type.FLAT_VAR_INT_ITEM, 0x26, 0x26);
}
public static void toClient(Item item) {
if (item == null) return;
item.setIdentifier(getNewItemId(item.getIdentifier()));
}
public static void toServer(Item item) {
if (item == null) return;
item.setIdentifier(getOldItemId(item.getIdentifier()));
}
public static int getNewItemId(int id) {
Integer newId = MappingData.oldToNewItems.get(id);
if (newId == null) {
Via.getPlatform().getLogger().warning("Missing 1.16 item for 1.15.2 item " + id);
return 1;
}
return newId;
}
public static int getOldItemId(int id) {
Integer oldId = MappingData.oldToNewItems.inverse().get(id);
return oldId != null ? oldId : 1;
}
}

View File

@ -0,0 +1,57 @@
package us.myles.ViaVersion.protocols.protocol1_16to1_15_2.packets;
import us.myles.ViaVersion.api.minecraft.chunks.Chunk;
import us.myles.ViaVersion.api.minecraft.chunks.ChunkSection;
import us.myles.ViaVersion.api.protocol.Protocol;
import us.myles.ViaVersion.api.remapper.PacketRemapper;
import us.myles.ViaVersion.api.rewriters.BlockRewriter;
import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.packets.State;
import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.types.Chunk1_15Type;
import us.myles.ViaVersion.protocols.protocol1_16to1_15_2.Protocol1_16To1_15_2;
import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
public class WorldPackets {
public static void register(Protocol protocol) {
BlockRewriter blockRewriter = new BlockRewriter(protocol, Type.POSITION1_14, Protocol1_16To1_15_2::getNewBlockStateId, Protocol1_16To1_15_2::getNewBlockId);
// Block action
blockRewriter.registerBlockAction(0x0B, 0x0B);
// Block Change
blockRewriter.registerBlockChange(0x0C, 0x0C);
// Multi Block Change
blockRewriter.registerMultiBlockChange(0x10, 0x10);
// Acknowledge player digging
blockRewriter.registerAcknowledgePlayerDigging(0x08, 0x08);
// Chunk Data
protocol.registerOutgoing(State.PLAY, 0x22, 0x22, new PacketRemapper() {
@Override
public void registerMap() {
handler(wrapper -> {
ClientWorld clientWorld = wrapper.user().get(ClientWorld.class);
Chunk chunk = wrapper.passthrough(new Chunk1_15Type(clientWorld));
for (int s = 0; s < 16; s++) {
ChunkSection section = chunk.getSections()[s];
if (section == null) continue;
for (int i = 0; i < section.getPaletteSize(); i++) {
int old = section.getPaletteEntry(i);
section.setPaletteEntry(i, Protocol1_16To1_15_2.getNewBlockStateId(old));
}
}
});
}
});
// Effect
blockRewriter.registerEffect(0x23, 0x23, 1010, 2001, InventoryPackets::getNewItemId);
// Spawn Particle
blockRewriter.registerSpawnParticle(Type.DOUBLE, 0x24, 0x24, 3, 23, 32,
Protocol1_16To1_15_2::getNewBlockStateId, InventoryPackets::toClient, Type.FLAT_VAR_INT_ITEM);
}
}

View File

@ -0,0 +1,12 @@
package us.myles.ViaVersion.protocols.protocol1_16to1_15_2.storage;
import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.entities.Entity1_15Types.EntityType;
import us.myles.ViaVersion.api.storage.EntityTracker;
public class EntityTracker1_16 extends EntityTracker {
public EntityTracker1_16(UserConnection user) {
super(user, EntityType.PLAYER);
}
}

File diff suppressed because it is too large Load Diff

View File

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