From 7859f5ebd6746bfdfca3f930e9ce24686db5e5df Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 13 Feb 2019 16:02:58 -0200 Subject: [PATCH] Cleanup ConnectionData#update and fix doors --- .../ViaVersion/api/minecraft/BlockFace.java | 7 +++- .../blockconnections/ConnectionData.java | 34 +++++++++---------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/api/minecraft/BlockFace.java b/common/src/main/java/us/myles/ViaVersion/api/minecraft/BlockFace.java index b63ea78b8..a17129550 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/minecraft/BlockFace.java +++ b/common/src/main/java/us/myles/ViaVersion/api/minecraft/BlockFace.java @@ -9,7 +9,12 @@ import java.util.Map; @Getter @AllArgsConstructor public enum BlockFace { - NORTH(0, 0, -1, EnumAxis.Z), SOUTH(0, 0, 1, EnumAxis.Z), EAST(1, 0, 0, EnumAxis.X), WEST(-1, 0, 0, EnumAxis.X), TOP(0, 1, 0, EnumAxis.Y), BOTTOM(0, -1, 0, EnumAxis.Y); + NORTH(0, 0, -1, EnumAxis.Z), + SOUTH(0, 0, 1, EnumAxis.Z), + EAST(1, 0, 0, EnumAxis.X), + WEST(-1, 0, 0, EnumAxis.X), + TOP(0, 1, 0, EnumAxis.Y), + BOTTOM(0, -1, 0, EnumAxis.Y); private static Map opposites = new HashMap<>(); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java index aa2e7cc1b..b900ebc94 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java @@ -27,25 +27,23 @@ public class ConnectionData { static Set occludingStates = new HashSet<>(); public static void update(UserConnection user, Position position) { - for (int x = -1; x <= 1; x++) { - for (int z = -1; z <= 1; z++) { - for (int y = -1; y <= 1; y++) { - if (Math.abs(x) + Math.abs(y) + Math.abs(z) != 1) continue; - Position pos = new Position(position.getX() + x, position.getY() + y, position.getZ() + z); - int blockState = Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockdata(user, pos); - if (!connects(blockState)) continue; - int newBlockState = connect(user, pos, blockState); - if (newBlockState == blockState) continue; + for (BlockFace face : BlockFace.values()) { + Position pos = new Position( + position.getX() + face.getModX(), + position.getY() + face.getModY(), + position.getZ() + face.getModZ() + ); + int blockState = Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockdata(user, pos); + if (!connects(blockState)) continue; + int newBlockState = connect(user, pos, blockState); - PacketWrapper blockUpdatePacket = new PacketWrapper(0x0B, null, user); - blockUpdatePacket.write(Type.POSITION, pos); - blockUpdatePacket.write(Type.VAR_INT, newBlockState); - try { - blockUpdatePacket.send(Protocol1_13To1_12_2.class, true, false); - } catch (Exception ex) { - ex.printStackTrace(); - } - } + PacketWrapper blockUpdatePacket = new PacketWrapper(0x0B, null, user); + blockUpdatePacket.write(Type.POSITION, pos); + blockUpdatePacket.write(Type.VAR_INT, newBlockState); + try { + blockUpdatePacket.send(Protocol1_13To1_12_2.class, true, false); + } catch (Exception ex) { + ex.printStackTrace(); } } }