diff --git a/src/main/java/cz/jzitnik/game/Game.java b/src/main/java/cz/jzitnik/game/Game.java index ccf6288..ee903f3 100644 --- a/src/main/java/cz/jzitnik/game/Game.java +++ b/src/main/java/cz/jzitnik/game/Game.java @@ -178,10 +178,11 @@ public class Game implements Serializable { } Block breakingBlock = new Block("breaking", SpriteLoader.SPRITES.BREAKING); + breakingBlock.setGhost(true); world[y][x].add(breakingBlock); screenRenderer.render(this); - double hardness = world[y][x].stream().filter(block -> !block.isGhost()).toList().getFirst() + double hardness = world[y][x].stream().filter(block -> !block.getBlockId().equals("air")).toList().getFirst() .calculateHardness(inventory); this.mining = true; diff --git a/src/main/java/cz/jzitnik/game/SpriteLoader.java b/src/main/java/cz/jzitnik/game/SpriteLoader.java index 423f04c..fbc0c19 100644 --- a/src/main/java/cz/jzitnik/game/SpriteLoader.java +++ b/src/main/java/cz/jzitnik/game/SpriteLoader.java @@ -12,62 +12,141 @@ public class SpriteLoader { // BLOCKS // Blocks - AIR, WATER, LAVA, DIRT, GRASS, STONE, BEDROCK, COBBLESTONE, WOOL, OAK_LOG, OAK_LEAF, OAK_PLANKS, OAK_DOOR, OBSIDIAN, - + AIR, + WATER, + LAVA, + DIRT, + GRASS, + STONE, + BEDROCK, + COBBLESTONE, + WOOL, + OAK_LOG, + OAK_LEAF, + OAK_PLANKS, + OAK_DOOR, + OBSIDIAN, + // Flowers etc GRASS_BUSH, // Ores - COAL_ORE, IRON_ORE, GOLD_ORE, DIAMOND_ORE, - - COAL_BLOCK, IRON_BLOCK, GOLD_BLOCK, DIAMOND_BLOCK, + COAL_ORE, + IRON_ORE, + GOLD_ORE, + DIAMOND_ORE, + + COAL_BLOCK, + IRON_BLOCK, + GOLD_BLOCK, + DIAMOND_BLOCK, // Work - FURNACE, CHEST, CRAFTING_TABLE, BED, + FURNACE, + CHEST, + CRAFTING_TABLE, + BED, // Saplings OAK_SAPLING, // ENTITIES - STEVE, PIG, SHEEP, COW, + STEVE, + PIG, + SHEEP, + COW, // UI - BREAKING, HEART, HUNGER, + BREAKING, + HEART, + HUNGER, // ITEMS // Items - ITEM_STICK, ITEM_LEATHER, + ITEM_STICK, + ITEM_LEATHER, // Block Items - ITEM_DIRT, ITEM_GRASS, ITEM_OAK_LOG, ITEM_OAK_LEAF, ITEM_OAK_PLANKS, ITEM_COBBLESTONE, ITEM_STONE, ITEM_OAK_DOOR, ITEM_WOOL, ITEM_OBSIDIAN, + ITEM_DIRT, + ITEM_GRASS, + ITEM_OAK_LOG, + ITEM_OAK_LEAF, + ITEM_OAK_PLANKS, + ITEM_COBBLESTONE, + ITEM_STONE, + ITEM_OAK_DOOR, + ITEM_WOOL, + ITEM_OBSIDIAN, // Ore Items - ITEM_COAL_ORE, ITEM_IRON_ORE, ITEM_GOLD_ORE, ITEM_DIAMOND_ORE, + ITEM_COAL_ORE, + ITEM_IRON_ORE, + ITEM_GOLD_ORE, + ITEM_DIAMOND_ORE, - ITEM_COAL_BLOCK, ITEM_IRON_BLOCK, ITEM_GOLD_BLOCK, ITEM_DIAMOND_BLOCK, - - COAL, ITEM_IRON_INGOT, ITEM_GOLD_INGOT, DIAMOND, + ITEM_COAL_BLOCK, + ITEM_IRON_BLOCK, + ITEM_GOLD_BLOCK, + ITEM_DIAMOND_BLOCK, + COAL, + ITEM_IRON_INGOT, + ITEM_GOLD_INGOT, + DIAMOND, + // Work Items - ITEM_CRAFTING_TABLE, ITEM_CHEST, ITEM_FURNACE, ITEM_BED, + ITEM_CRAFTING_TABLE, + ITEM_CHEST, + ITEM_FURNACE, + ITEM_BED, // Tools - WOODEN_SWORD, WOODEN_PICKAXE, WOODEN_AXE, WOODEN_SHOVEL, WOODEN_HOE, + WOODEN_SWORD, + WOODEN_PICKAXE, + WOODEN_AXE, + WOODEN_SHOVEL, + WOODEN_HOE, - STONE_SWORD, STONE_PICKAXE, STONE_AXE, STONE_SHOVEL, STONE_HOE, + STONE_SWORD, + STONE_PICKAXE, + STONE_AXE, + STONE_SHOVEL, + STONE_HOE, - IRON_SWORD, IRON_PICKAXE, IRON_AXE, IRON_SHOVEL, IRON_HOE, + IRON_SWORD, + IRON_PICKAXE, + IRON_AXE, + IRON_SHOVEL, + IRON_HOE, - GOLDEN_SWORD, GOLDEN_PICKAXE, GOLDEN_AXE, GOLDEN_SHOVEL, GOLDEN_HOE, + GOLDEN_SWORD, + GOLDEN_PICKAXE, + GOLDEN_AXE, + GOLDEN_SHOVEL, + GOLDEN_HOE, - DIAMOND_SWORD, DIAMOND_PICKAXE, DIAMOND_AXE, DIAMOND_SHOVEL, DIAMOND_HOE, + DIAMOND_SWORD, + DIAMOND_PICKAXE, + DIAMOND_AXE, + DIAMOND_SHOVEL, + DIAMOND_HOE, SHEARS, - BUCKET, WATER_BUCKET, LAVA_BUCKET, MILK_BUCKET, + BUCKET, + WATER_BUCKET, + LAVA_BUCKET, + MILK_BUCKET, + // Food - ITEM_PORKCHOP, ITEM_COOKED_PORKCHOP, ITEM_MUTTON, ITEM_COOKED_MUTTON, ITEM_BEEF, ITEM_STEAK, ITEM_APPLE, + ITEM_PORKCHOP, + ITEM_COOKED_PORKCHOP, + ITEM_MUTTON, + ITEM_COOKED_MUTTON, + ITEM_BEEF, + ITEM_STEAK, + ITEM_APPLE, // Seeds ITEM_WHEAT_SEEDS, diff --git a/src/main/java/cz/jzitnik/game/entities/Block.java b/src/main/java/cz/jzitnik/game/entities/Block.java index a5f9046..a9c04ce 100644 --- a/src/main/java/cz/jzitnik/game/entities/Block.java +++ b/src/main/java/cz/jzitnik/game/entities/Block.java @@ -11,7 +11,6 @@ import lombok.Setter; import java.io.Serializable; import java.util.ArrayList; import java.util.List; -import java.util.Optional; @Getter @Setter diff --git a/src/main/java/cz/jzitnik/game/generation/Generation.java b/src/main/java/cz/jzitnik/game/generation/Generation.java index 085ab97..ea45ac0 100644 --- a/src/main/java/cz/jzitnik/game/generation/Generation.java +++ b/src/main/java/cz/jzitnik/game/generation/Generation.java @@ -34,7 +34,7 @@ public class Generation { world[terrainHeight[256] - 1][256].add(steveBlock2); world[terrainHeight[256] - 2][256].add(steveBlock); - game.getInventory().addItem(ItemBlockSupplier.getItem("diamond_pickaxe")); + game.getInventory().addItem(ItemBlockSupplier.getItem("shears")); } private static void initializeWorld(List[][] world) { diff --git a/src/main/java/cz/jzitnik/game/handlers/place/handlers/BedPlaceHandler.java b/src/main/java/cz/jzitnik/game/handlers/place/handlers/BedPlaceHandler.java index 02bc3c0..a9c3bbf 100644 --- a/src/main/java/cz/jzitnik/game/handlers/place/handlers/BedPlaceHandler.java +++ b/src/main/java/cz/jzitnik/game/handlers/place/handlers/BedPlaceHandler.java @@ -53,15 +53,15 @@ public class BedPlaceHandler implements CustomPlaceHandler { if (block.getSpriteState().get() == Bed.BedState.LEFT) { var blocks2 = game.getWorld()[y][x + 1]; - blocks2.removeAll(blocks2.stream().filter(i -> !i.getBlockId().equals("air")).toList()); + blocks2.removeAll(blocks2.stream().filter(i -> i.getBlockId().equals("bed") || i.getBlockId().equals("breaking")).toList()); } if (block.getSpriteState().get() == Bed.BedState.RIGHT) { var blocks2 = game.getWorld()[y][x - 1]; - blocks2.removeAll(blocks2.stream().filter(i -> !i.getBlockId().equals("air")).toList()); + blocks2.removeAll(blocks2.stream().filter(i -> i.getBlockId().equals("bed") || i.getBlockId().equals("breaking")).toList()); } - blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air")).toList()); + blocks.removeAll(blocks.stream().filter(i -> i.getBlockId().equals("bed") || i.getBlockId().equals("breaking")).toList()); return true; } diff --git a/src/main/java/cz/jzitnik/game/mobs/services/sheep/SheepLogic.java b/src/main/java/cz/jzitnik/game/mobs/services/sheep/SheepLogic.java index 5da134a..b3df3b5 100644 --- a/src/main/java/cz/jzitnik/game/mobs/services/sheep/SheepLogic.java +++ b/src/main/java/cz/jzitnik/game/mobs/services/sheep/SheepLogic.java @@ -118,7 +118,7 @@ public class SheepLogic @Override public void spawn(int playerX, int playerY, Game game, Terminal terminal) { - // Cordinates where player can see + // Coordinates where player can see int[] data = ScreenMovingCalculationProvider.calculate(playerX, playerY, terminal.getHeight(), terminal.getWidth(), game.getWorld()[0].length, game.getWorld().length); var world = game.getWorld(); diff --git a/src/main/java/cz/jzitnik/tui/MouseHandler.java b/src/main/java/cz/jzitnik/tui/MouseHandler.java index 824519f..97a70de 100644 --- a/src/main/java/cz/jzitnik/tui/MouseHandler.java +++ b/src/main/java/cz/jzitnik/tui/MouseHandler.java @@ -1,7 +1,6 @@ package cz.jzitnik.tui; import cz.jzitnik.game.Game; -import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.ui.Window; import lombok.AllArgsConstructor; import org.jline.terminal.MouseEvent;