static void init() { ChestConnectionHandler connectionHandler = new ChestConnectionHandler(); for (Map.Entry<String, Integer> blockState : ConnectionData.keyToId.entrySet()) { String key = blockState.getKey().split("\\[")[0]; if (!key.equals("minecraft:chest") && !key.equals("minecraft:trapped_chest")) continue; WrappedBlockData blockData = WrappedBlockData.fromString(blockState.getKey()); if (blockData.getValue("waterlogged").equals("true")) continue; chestFacings.put(blockState.getValue(), BlockFace.valueOf(blockData.getValue("facing").toUpperCase())); if (key.equalsIgnoreCase("minecraft:trapped_chest")) trappedChests.add(blockState.getValue()); connectedStates.put(getStates(blockData), blockState.getValue()); ConnectionData.connectionHandlerMap.put(blockState.getValue(), connectionHandler); } }
public AbstractStempConnectionHandler(String baseStateId, String blockId, String toKey) { this.baseStateId = ConnectionData.getId(baseStateId); for (Map.Entry<String, Integer> entry : ConnectionData.keyToId.entrySet()) { String key = entry.getKey().split("\\[")[0]; if (entry.getValue() == this.baseStateId || blockId.equals(key)) { if (entry.getValue() != this.baseStateId) { this.blockId.add(entry.getValue()); } ConnectionData.connectionHandlerMap.put(entry.getValue(), this); } if (key.equals(toKey)) { WrappedBlockData data = WrappedBlockData.fromString(entry.getKey()); String facing = data.getValue("facing").toUpperCase(); stemps.put(BlockFace.valueOf(facing), entry.getValue()); } } }
private static Byte getStates(WrappedBlockData blockData) { byte states = 0; String type = blockData.getValue("type"); if (type.equals("left")) states |= 1; if (type.equals("right")) states |= 2; states |= (BlockFace.valueOf(blockData.getValue("facing").toUpperCase()).ordinal() << 2); if (blockData.getMinecraftKey().equals("minecraft:trapped_chest")) states |= 16; return states; }
static void init() { TripwireConnectionHandler connectionHandler = new TripwireConnectionHandler(); for (Map.Entry<String, Integer> blockState : ConnectionData.keyToId.entrySet()) { String key = blockState.getKey().split("\\[")[0]; if (key.equals("minecraft:tripwire_hook")) { WrappedBlockData blockData = WrappedBlockData.fromString(blockState.getKey()); tripwireHooks.put(blockState.getValue(), BlockFace.valueOf(blockData.getValue("facing").toUpperCase())); } else if (key.equals("minecraft:tripwire")) { WrappedBlockData blockData = WrappedBlockData.fromString(blockState.getKey()); TripwireData tripwireData = new TripwireData( blockData.getValue("attached").equals("true"), blockData.getValue("disarmed").equals("true"), blockData.getValue("powered").equals("true") ); tripwireDataMap.put(blockState.getValue(), tripwireData); connectedBlocks.put(getStates(blockData), blockState.getValue()); ConnectionData.connectionHandlerMap.put(blockState.getValue(), connectionHandler); } } }
blockData.getValue("half").equals("bottom"), shape, (byte) type, BlockFace.valueOf(blockData.getValue("facing").toUpperCase()) );
static void init() { List<String> baseDoors = new LinkedList<>(); baseDoors.add("minecraft:oak_door"); baseDoors.add("minecraft:birch_door"); baseDoors.add("minecraft:jungle_door"); baseDoors.add("minecraft:dark_oak_door"); baseDoors.add("minecraft:acacia_door"); baseDoors.add("minecraft:spruce_door"); baseDoors.add("minecraft:iron_door"); DoorConnectionHandler connectionHandler = new DoorConnectionHandler(); for (Map.Entry<String, Integer> blockState : ConnectionData.keyToId.entrySet()) { String key = blockState.getKey().split("\\[")[0]; int type = baseDoors.indexOf(key); if (type == -1) continue; WrappedBlockData blockData = WrappedBlockData.fromString(blockState.getKey()); int id = blockState.getValue(); DoorData doorData = new DoorData( blockData.getValue("half").equals("lower"), blockData.getValue("hinge").equals("right"), blockData.getValue("powered").equals("true"), blockData.getValue("open").equals("true"), BlockFace.valueOf(blockData.getValue("facing").toUpperCase()), type ); doorDataMap.put(id, doorData); connectedStates.put(getStates(doorData), id); ConnectionData.connectionHandlerMap.put(id, connectionHandler); } }