From af9d75e764235f5431e48958a972e09baaecc951 Mon Sep 17 00:00:00 2001 From: bixilon Date: Mon, 15 Jun 2020 21:36:39 +0200 Subject: [PATCH] refactor Block to Blocks, sign support --- .../blocks/{Block.java => Blocks.java} | 36 +++++++++--- .../entities/meta/EndermanMetaData.java | 8 +-- .../entities/meta/MinecartMetaData.java | 8 +-- .../entities/objects/FallingBlock.java | 8 +-- .../minosoft/game/datatypes/world/Chunk.java | 23 ++++++-- .../game/datatypes/world/ChunkNibble.java | 25 +++++--- .../minosoft/game/datatypes/world/World.java | 17 ++++-- .../clientbound/play/PacketBlockChange.java | 8 +-- .../play/PacketMultiBlockChange.java | 9 ++- .../clientbound/play/PacketUpdateSign.java | 57 +++++++++++++++++++ .../protocol/protocol/PacketHandler.java | 4 ++ .../minosoft/protocol/protocol/Protocol.java | 1 + .../de/bixilon/minosoft/util/ChunkUtil.java | 8 +-- 13 files changed, 162 insertions(+), 50 deletions(-) rename src/main/java/de/bixilon/minosoft/game/datatypes/blocks/{Block.java => Blocks.java} (72%) create mode 100644 src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketUpdateSign.java diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/blocks/Block.java b/src/main/java/de/bixilon/minosoft/game/datatypes/blocks/Blocks.java similarity index 72% rename from src/main/java/de/bixilon/minosoft/game/datatypes/blocks/Block.java rename to src/main/java/de/bixilon/minosoft/game/datatypes/blocks/Blocks.java index a9196f8fb..563cbcc78 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/blocks/Block.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/blocks/Blocks.java @@ -16,7 +16,7 @@ package de.bixilon.minosoft.game.datatypes.blocks; import de.bixilon.minosoft.game.datatypes.Color; import de.bixilon.minosoft.game.datatypes.Identifier; -public enum Block { +public enum Blocks { UNKNOWN(null, -1), // the buggy pink black block AIR(new Identifier("air"), 0), STONE(new Identifier("stone"), 1), @@ -52,6 +52,26 @@ public enum Block { RED_WOOL(new Identifier("wool", "red_wool"), 35, Color.RED.getColor()), BLACK_WOOL(new Identifier("wool", "black_wool"), 35, Color.BLACK.getColor()), TNT(new Identifier("tnt"), 46), + STANDING_SIGN_SOUTH(new Identifier("standing_sign"), 63, 0), + STANDING_SIGN_SOUTH_SOUTH_WEST(new Identifier("standing_sign"), 63, 1), + STANDING_SIGN_SOUTH_WEST(new Identifier("standing_sign"), 63, 2), + STANDING_SIGN_WEST_SOUTH_WEST(new Identifier("standing_sign"), 63, 3), + STANDING_SIGN_WEST(new Identifier("standing_sign"), 63, 4), + STANDING_SIGN_WEST_NORTH_WEST(new Identifier("standing_sign"), 63, 5), + STANDING_SIGN_NORTH_WEST(new Identifier("standing_sign"), 63, 6), + STANDING_SIGN_NORTH_NORTH_WEST(new Identifier("standing_sign"), 63, 7), + STANDING_SIGN_NORTH(new Identifier("standing_sign"), 63, 8), + STANDING_SIGN_NORTH_NORTH_EAST(new Identifier("standing_sign"), 63, 9), + STANDING_SIGN_NORTH_EAST(new Identifier("standing_sign"), 63, 10), + STANDING_SIGN_EAST_NORTH_EAST(new Identifier("standing_sign"), 63, 11), + STANDING_SIGN_EAST(new Identifier("standing_sign"), 63, 12), + STANDING_SIGN_EAST_SOUTH_EAST(new Identifier("standing_sign"), 63, 13), + STANDING_SIGN_SOUTH_EAST(new Identifier("standing_sign"), 63, 14), + STANDING_SIGN_SOUTH_SOUTH_EAST(new Identifier("standing_sign"), 63, 15), + WALL_SIGN_EAST(new Identifier("wall_sign"), 68, 0), + WALL_SIGN_NORTH(new Identifier("wall_sign"), 68, 1), + WALL_SIGN_SOUTH(new Identifier("wall_sign"), 68, 2), + WALL_SIGN_WEST(new Identifier("wall_sign"), 68, 3), DROPPER_DOWN(new Identifier("dropper"), 158, 0), DROPPER_EAST(new Identifier("dropper"), 158, 1), DROPPER_NORTH(new Identifier("dropper"), 158, 2), @@ -66,19 +86,19 @@ public enum Block { final int legacyId; int legacyData; - Block(Identifier identifier, int legacyId, int legacyData) { + Blocks(Identifier identifier, int legacyId, int legacyData) { this.identifier = identifier; this.legacyId = legacyId; this.legacyData = legacyData; } - Block(Identifier identifier, int legacyId) { + Blocks(Identifier identifier, int legacyId) { this.identifier = identifier; this.legacyId = legacyId; } - public static Block byIdentifier(Identifier identifier) { - for (Block b : values()) { + public static Blocks byIdentifier(Identifier identifier) { + for (Blocks b : values()) { if (b.getIdentifier().equals(identifier)) { return b; } @@ -86,8 +106,8 @@ public enum Block { return UNKNOWN; } - public static Block byLegacy(int id, int data) { - for (Block b : values()) { + public static Blocks byLegacy(int id, int data) { + for (Blocks b : values()) { if (b.getLegacyId() == id && b.getLegacyData() == data) { return b; } @@ -95,7 +115,7 @@ public enum Block { return UNKNOWN; } - public static Block byLegacy(int id) { + public static Blocks byLegacy(int id) { return byLegacy(id, 0); } diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/EndermanMetaData.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/EndermanMetaData.java index 601292d7e..9f203542f 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/EndermanMetaData.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/EndermanMetaData.java @@ -13,7 +13,7 @@ package de.bixilon.minosoft.game.datatypes.entities.meta; -import de.bixilon.minosoft.game.datatypes.blocks.Block; +import de.bixilon.minosoft.game.datatypes.blocks.Blocks; import de.bixilon.minosoft.protocol.protocol.InByteBuffer; import de.bixilon.minosoft.protocol.protocol.ProtocolVersion; @@ -24,12 +24,12 @@ public class EndermanMetaData extends MobMetaData { } - public Block getCarriedBlock() { + public Blocks getCarriedBlock() { switch (version) { case VERSION_1_7_10: - return Block.byLegacy((short) sets.get(16).getData(), (byte) sets.get(17).getData()); + return Blocks.byLegacy((short) sets.get(16).getData(), (byte) sets.get(17).getData()); } - return Block.AIR; + return Blocks.AIR; } public boolean isScreaming() { diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/MinecartMetaData.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/MinecartMetaData.java index b3afe1efa..76d7d437d 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/MinecartMetaData.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/MinecartMetaData.java @@ -13,7 +13,7 @@ package de.bixilon.minosoft.game.datatypes.entities.meta; -import de.bixilon.minosoft.game.datatypes.blocks.Block; +import de.bixilon.minosoft.game.datatypes.blocks.Blocks; import de.bixilon.minosoft.protocol.protocol.InByteBuffer; import de.bixilon.minosoft.protocol.protocol.ProtocolVersion; @@ -47,12 +47,12 @@ public class MinecartMetaData extends EntityMetaData { return 0; } - public Block getBlock() { + public Blocks getBlock() { switch (version) { case VERSION_1_7_10: - return Block.byLegacy((int) sets.get(20).getData() & 0xFF, (int) sets.get(20).getData() & 0xFF00); + return Blocks.byLegacy((int) sets.get(20).getData() & 0xFF, (int) sets.get(20).getData() & 0xFF00); } - return Block.AIR; + return Blocks.AIR; } } diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FallingBlock.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FallingBlock.java index 6dc8d712f..3362fb0fa 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FallingBlock.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/objects/FallingBlock.java @@ -13,7 +13,7 @@ package de.bixilon.minosoft.game.datatypes.entities.objects; -import de.bixilon.minosoft.game.datatypes.blocks.Block; +import de.bixilon.minosoft.game.datatypes.blocks.Blocks; import de.bixilon.minosoft.game.datatypes.entities.EntityObject; import de.bixilon.minosoft.game.datatypes.entities.Location; import de.bixilon.minosoft.game.datatypes.entities.ObjectInterface; @@ -23,13 +23,13 @@ import de.bixilon.minosoft.protocol.protocol.ProtocolVersion; public class FallingBlock extends EntityObject implements ObjectInterface { EntityMetaData metaData; - Block block; + Blocks block; public FallingBlock(int id, Location location, int yaw, int pitch, int additionalInt, ProtocolVersion v) { super(id, location, yaw, pitch, null); // objects do not spawn with metadata... reading additional info from the following int // tnt does not have any additional info - block = Block.byLegacy(additionalInt & 0xFFF, additionalInt >> 12); + block = Blocks.byLegacy(additionalInt & 0xFFF, additionalInt >> 12); } @Override @@ -62,7 +62,7 @@ public class FallingBlock extends EntityObject implements ObjectInterface { return EntityMetaData.class; } - public Block getBlock() { + public Blocks getBlock() { return block; } } diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/world/Chunk.java b/src/main/java/de/bixilon/minosoft/game/datatypes/world/Chunk.java index 56821a88b..b5f495bfd 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/world/Chunk.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/world/Chunk.java @@ -13,7 +13,7 @@ package de.bixilon.minosoft.game.datatypes.world; -import de.bixilon.minosoft.game.datatypes.blocks.Block; +import de.bixilon.minosoft.game.datatypes.blocks.Blocks; import java.util.HashMap; import java.util.Map; @@ -28,7 +28,7 @@ public class Chunk { this.nibbles = chunks; } - public Block getBlock(int x, int y, int z) { + public Blocks getBlock(int x, int y, int z) { if (x > 16 || y > 255 || z > 16 || x < 0 || y < 0 || z < 0) { throw new IllegalArgumentException(String.format("Invalid chunk location %s %s %s", x, y, z)); } @@ -36,13 +36,13 @@ public class Chunk { return nibbles.get(section).getBlock(x, y % 16, z); } - public void setBlock(int x, int y, int z, Block block) { + public void setBlock(int x, int y, int z, Blocks block) { byte section = (byte) (y / 16); createSection(section); nibbles.get(section).setBlock(x, y % 16, z, block); } - public void setBlock(InChunkLocation location, Block block) { + public void setBlock(InChunkLocation location, Blocks block) { byte section = (byte) (location.getY() / 16); createSection(section); nibbles.get(section).setBlock(location.getChunkNibbleLocation(), block); @@ -55,9 +55,20 @@ public class Chunk { } } - public void setBlocks(HashMap blocks) { - for (Map.Entry set : blocks.entrySet()) { + public void setBlocks(HashMap blocks) { + for (Map.Entry set : blocks.entrySet()) { setBlock(set.getKey(), set.getValue()); } } + + public void updateSign(BlockPosition position, String[] lines) { + ChunkNibble nibble = nibbles.get((byte) (position.getY() / 16)); + nibble.updateSign(new ChunkNibbleLocation(position.getX() % 16, position.getY() % 16, position.getZ() % 16), lines); + } + + public String[] getSignText(BlockPosition position) { + ChunkNibble nibble = nibbles.get((byte) (position.getY() / 16)); + return nibble.getSignText(new ChunkNibbleLocation(position.getX() % 16, position.getY() / 16, position.getZ() % 16)); + + } } diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/world/ChunkNibble.java b/src/main/java/de/bixilon/minosoft/game/datatypes/world/ChunkNibble.java index 69a6f5b98..fc5b8c36e 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/world/ChunkNibble.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/world/ChunkNibble.java @@ -13,7 +13,7 @@ package de.bixilon.minosoft.game.datatypes.world; -import de.bixilon.minosoft.game.datatypes.blocks.Block; +import de.bixilon.minosoft.game.datatypes.blocks.Blocks; import java.util.HashMap; @@ -21,30 +21,41 @@ import java.util.HashMap; * Collection of 16x16x16 blocks */ public class ChunkNibble { - private final HashMap blocks; + private final HashMap blocks; + private final HashMap signs; - public ChunkNibble(HashMap blocks) { + public ChunkNibble(HashMap blocks) { this.blocks = blocks; + this.signs = new HashMap<>(); } public ChunkNibble() { // empty this.blocks = new HashMap<>(); + this.signs = new HashMap<>(); } - public Block getBlock(ChunkNibbleLocation loc) { + public Blocks getBlock(ChunkNibbleLocation loc) { return blocks.get(loc); } - public Block getBlock(int x, int y, int z) { + public Blocks getBlock(int x, int y, int z) { return getBlock(new ChunkNibbleLocation(x, y, z)); } - public void setBlock(int x, int y, int z, Block block) { + public void setBlock(int x, int y, int z, Blocks block) { blocks.put(new ChunkNibbleLocation(x, y, z), block); } - public void setBlock(ChunkNibbleLocation location, Block block) { + public void setBlock(ChunkNibbleLocation location, Blocks block) { blocks.put(location, block); } + + public void updateSign(ChunkNibbleLocation location, String[] lines) { + signs.put(location, lines); + } + + public String[] getSignText(ChunkNibbleLocation location) { + return signs.get(location); + } } diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/world/World.java b/src/main/java/de/bixilon/minosoft/game/datatypes/world/World.java index 61cd401aa..3bde2f0bf 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/world/World.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/world/World.java @@ -14,7 +14,7 @@ package de.bixilon.minosoft.game.datatypes.world; import de.bixilon.minosoft.game.datatypes.Dimension; -import de.bixilon.minosoft.game.datatypes.blocks.Block; +import de.bixilon.minosoft.game.datatypes.blocks.Blocks; import de.bixilon.minosoft.game.datatypes.entities.Entity; import java.util.HashMap; @@ -49,15 +49,15 @@ public class World { return chunks; } - public Block getBlock(BlockPosition pos) { + public Blocks getBlock(BlockPosition pos) { ChunkLocation loc = pos.getChunkLocation(); if (getChunk(loc) != null) { return getChunk(loc).getBlock(pos.getX() % 16, pos.getY(), pos.getZ() % 16); } - return Block.AIR; + return Blocks.AIR; } - public void setBlock(BlockPosition pos, Block block) { + public void setBlock(BlockPosition pos, Blocks block) { if (getChunk(pos.getChunkLocation()) != null) { getChunk(pos.getChunkLocation()).setBlock(pos.getX() % 16, pos.getY(), pos.getZ() % 16, block); } @@ -117,4 +117,13 @@ public class World { public void setDimension(Dimension dimension) { this.dimension = dimension; } + + public void updateSign(BlockPosition position, String[] lines) { + //ToDo check if block is really a sign + getChunk(position.getChunkLocation()).updateSign(position, lines); + } + + public String[] getSignText(BlockPosition position) { + return getChunk(position.getChunkLocation()).getSignText(position); + } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketBlockChange.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketBlockChange.java index b44b9744a..7fc84f80a 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketBlockChange.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketBlockChange.java @@ -13,8 +13,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play; +import de.bixilon.minosoft.game.datatypes.blocks.Blocks; import de.bixilon.minosoft.game.datatypes.world.BlockPosition; -import de.bixilon.minosoft.game.datatypes.blocks.Block; import de.bixilon.minosoft.logging.Log; import de.bixilon.minosoft.protocol.packets.ClientboundPacket; import de.bixilon.minosoft.protocol.protocol.InPacketBuffer; @@ -24,7 +24,7 @@ import de.bixilon.minosoft.util.BitByte; public class PacketBlockChange implements ClientboundPacket { BlockPosition position; - Block block; + Blocks block; @Override @@ -32,7 +32,7 @@ public class PacketBlockChange implements ClientboundPacket { switch (v) { case VERSION_1_7_10: position = new BlockPosition(buffer.readInteger(), BitByte.byteToUShort(buffer.readByte()), buffer.readInteger()); - block = Block.byLegacy(buffer.readVarInt(), buffer.readByte()); + block = Blocks.byLegacy(buffer.readVarInt(), buffer.readByte()); break; } } @@ -51,7 +51,7 @@ public class PacketBlockChange implements ClientboundPacket { return position; } - public Block getBlock() { + public Blocks getBlock() { return block; } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketMultiBlockChange.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketMultiBlockChange.java index 3ad990561..24b3d321d 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketMultiBlockChange.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketMultiBlockChange.java @@ -13,13 +13,12 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play; -import de.bixilon.minosoft.game.datatypes.blocks.Block; +import de.bixilon.minosoft.game.datatypes.blocks.Blocks; import de.bixilon.minosoft.game.datatypes.world.ChunkLocation; import de.bixilon.minosoft.game.datatypes.world.InChunkLocation; import de.bixilon.minosoft.logging.Log; import de.bixilon.minosoft.protocol.packets.ClientboundPacket; import de.bixilon.minosoft.protocol.protocol.InPacketBuffer; -import de.bixilon.minosoft.protocol.protocol.PacketDataException; import de.bixilon.minosoft.protocol.protocol.PacketHandler; import de.bixilon.minosoft.protocol.protocol.ProtocolVersion; @@ -27,7 +26,7 @@ import java.util.HashMap; public class PacketMultiBlockChange implements ClientboundPacket { ChunkLocation location; - final HashMap blocks = new HashMap<>(); + final HashMap blocks = new HashMap<>(); @Override @@ -47,7 +46,7 @@ public class PacketMultiBlockChange implements ClientboundPacket { byte y = (byte) ((raw & 0xFF_00_00) >> 16); byte z = (byte) ((raw & 0x0F_00_00_00) >> 24); byte x = (byte) (Math.abs((raw & 0xF0_00_00_00) >> 28)); - blocks.put(new InChunkLocation(x, y, z), Block.byLegacy(blockId, meta)); + blocks.put(new InChunkLocation(x, y, z), Blocks.byLegacy(blockId, meta)); } break; @@ -68,7 +67,7 @@ public class PacketMultiBlockChange implements ClientboundPacket { return location; } - public HashMap getBlocks() { + public HashMap getBlocks() { return blocks; } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketUpdateSign.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketUpdateSign.java new file mode 100644 index 000000000..1dfaf8df8 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketUpdateSign.java @@ -0,0 +1,57 @@ +/* + * Codename Minosoft + * Copyright (C) 2020 Moritz Zwerger + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. If not, see . + * + * This software is not affiliated with Mojang AB, the original developer of Minecraft. + */ + +package de.bixilon.minosoft.protocol.packets.clientbound.play; + +import de.bixilon.minosoft.game.datatypes.world.BlockPosition; +import de.bixilon.minosoft.logging.Log; +import de.bixilon.minosoft.protocol.packets.ClientboundPacket; +import de.bixilon.minosoft.protocol.protocol.InPacketBuffer; +import de.bixilon.minosoft.protocol.protocol.PacketHandler; +import de.bixilon.minosoft.protocol.protocol.ProtocolVersion; + +public class PacketUpdateSign implements ClientboundPacket { + BlockPosition position; + String[] lines = new String[4]; + + + @Override + public void read(InPacketBuffer buffer, ProtocolVersion v) { + switch (v) { + case VERSION_1_7_10: + position = new BlockPosition(buffer.readInteger(), buffer.readShort(), buffer.readInteger()); + for (byte i = 0; i < 4; i++) { + lines[i] = buffer.readString(); + } + break; + } + } + + @Override + public void log() { + Log.game(String.format("Sign data received at: %s", position.toString())); + } + + @Override + public void handle(PacketHandler h) { + h.handle(this); + } + + public BlockPosition getPosition() { + return position; + } + + public String[] getLines() { + return lines; + } +} diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketHandler.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketHandler.java index 51c786504..b0b6e661d 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketHandler.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketHandler.java @@ -251,4 +251,8 @@ public class PacketHandler { public void handle(PacketRemoveEntityEffect pkg) { connection.getPlayer().getWorld().getEntity(pkg.getEntityId()).removeEffect(pkg.getEffect()); } + + public void handle(PacketUpdateSign pkg) { + connection.getPlayer().getWorld().updateSign(pkg.getPosition(), pkg.getLines()); + } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/Protocol.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/Protocol.java index 6dc1355a5..e4a6f0fce 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/Protocol.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/Protocol.java @@ -76,6 +76,7 @@ public interface Protocol { packetClassMapping.put(Packets.Clientbound.PLAY_CHUNK_DATA, PacketChunkData.class); packetClassMapping.put(Packets.Clientbound.PLAY_ENTITY_EFFECT, PacketEntityEffect.class); packetClassMapping.put(Packets.Clientbound.PLAY_REMOVE_ENTITY_EFFECT, PacketRemoveEntityEffect.class); + packetClassMapping.put(Packets.Clientbound.PLAY_UPDATE_SIGN, PacketUpdateSign.class); } int getProtocolVersion(); diff --git a/src/main/java/de/bixilon/minosoft/util/ChunkUtil.java b/src/main/java/de/bixilon/minosoft/util/ChunkUtil.java index bdec887a4..1f4cea1a1 100644 --- a/src/main/java/de/bixilon/minosoft/util/ChunkUtil.java +++ b/src/main/java/de/bixilon/minosoft/util/ChunkUtil.java @@ -13,7 +13,7 @@ package de.bixilon.minosoft.util; -import de.bixilon.minosoft.game.datatypes.blocks.Block; +import de.bixilon.minosoft.game.datatypes.blocks.Blocks; import de.bixilon.minosoft.game.datatypes.world.Chunk; import de.bixilon.minosoft.game.datatypes.world.ChunkNibble; import de.bixilon.minosoft.game.datatypes.world.ChunkNibbleLocation; @@ -50,7 +50,7 @@ public class ChunkUtil { for (byte c = 0; c < 16; c++) { // max sections per chunks in chunk column if (BitByte.isBitSet(sectionBitMask, c)) { - HashMap blockMap = new HashMap<>(); + HashMap blockMap = new HashMap<>(); for (int nibbleY = 0; nibbleY < 16; nibbleY++) { for (int nibbleZ = 0; nibbleZ < 16; nibbleZ++) { @@ -76,8 +76,8 @@ public class ChunkUtil { // ToDo light, biome - Block block = Block.byLegacy(singeBlockId, singleMeta); - if (block == Block.AIR) { + Blocks block = Blocks.byLegacy(singeBlockId, singleMeta); + if (block == Blocks.AIR) { continue; } blockMap.put(new ChunkNibbleLocation(nibbleX, nibbleY, nibbleZ), block);