diff --git a/core/src/main/java/mc/core/block/AbstractBlock.java b/core/src/main/java/mc/core/block/AbstractBlock.java new file mode 100644 index 0000000..7b17761 --- /dev/null +++ b/core/src/main/java/mc/core/block/AbstractBlock.java @@ -0,0 +1,23 @@ +package mc.core.block; + +import lombok.Getter; +import lombok.Setter; +import mc.core.Location; + +public abstract class AbstractBlock implements Block { + @Getter@Setter + private Location location; + @Getter@Setter + private int meta; + @Getter + private final BlockType blockType; + + protected AbstractBlock(BlockType type) { + this.blockType = type; + } + + @Override + public int getId() { + return blockType.getId(); + } +} diff --git a/core/src/main/java/mc/core/block/Block.java b/core/src/main/java/mc/core/block/Block.java new file mode 100644 index 0000000..a34f328 --- /dev/null +++ b/core/src/main/java/mc/core/block/Block.java @@ -0,0 +1,46 @@ +package mc.core.block; + +import mc.core.Location; + +/** + * Serialize info about block + * + * +------------+--------+------------+ + * | param | range | bits | + * +------------+--------+------------+ + * | id | 0-255 | 8 | + * +------------+--------+------------+ + * | meta | 0-15 | 4 | + * +------------+--------+------------+ + * | x | 0-15 | 4 | + * +------------+--------+------------+ + * | y | 0-15 | 4 | + * +------------+--------+------------+ + * | z | 0-15 | 4 | + * +------------+--------+------------+ + * + * Total: 24 bits per block (3 bytes) + * + */ + +public interface Block { + + /** Block id */ + int getId(); + + /** + * Addition in 0-15 + * F.e. 35:0 - white wool + * 35:15 - black wool + */ + int getMeta(); + + /** + * Getting block type + */ + BlockType getBlockType(); + + /** Block location */ + Location getLocation(); + +} diff --git a/core/src/main/java/mc/core/block/BlockType.java b/core/src/main/java/mc/core/block/BlockType.java new file mode 100644 index 0000000..cf6cc1a --- /dev/null +++ b/core/src/main/java/mc/core/block/BlockType.java @@ -0,0 +1,20 @@ +package mc.core.block; + +import lombok.Getter; + +public enum BlockType { + DIRT(1, "Dirt"), + GRASS(2, "Grass"), + BEDROCK(7, "Bedrock"); + + @Getter + private final int id; + @Getter + private final String name; + + BlockType(int id, String name) { + this.id = id; + this.name = name; + } + +} diff --git a/core/src/main/java/mc/core/world/WorldType.java b/core/src/main/java/mc/core/world/WorldType.java index 59b42a4..73533fa 100644 --- a/core/src/main/java/mc/core/world/WorldType.java +++ b/core/src/main/java/mc/core/world/WorldType.java @@ -1,7 +1,7 @@ package mc.core.world; public enum WorldType implements IWorldType { - GENERAl ("Standard world type"), + GENERAL("Standard world type"), NETHER ("Nether world type"), END ("End world type"); diff --git a/flat_world/src/main/java/mc/world/flat/FlatWorld.java b/flat_world/src/main/java/mc/world/flat/FlatWorld.java index 7595550..d12b034 100644 --- a/flat_world/src/main/java/mc/world/flat/FlatWorld.java +++ b/flat_world/src/main/java/mc/world/flat/FlatWorld.java @@ -26,7 +26,7 @@ public class FlatWorld implements World { @Override public IWorldType getWorldType() { - return WorldType.GENERAl; + return WorldType.GENERAL; } @Override