diff --git a/src/main/java/cz/jzitnik/game/GameSaver.java b/src/main/java/cz/jzitnik/game/GameSaver.java index 80e6945..a0ddd2b 100644 --- a/src/main/java/cz/jzitnik/game/GameSaver.java +++ b/src/main/java/cz/jzitnik/game/GameSaver.java @@ -6,7 +6,6 @@ public class GameSaver { public void save(Game game) { try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("world.ser"))) { out.writeObject(game); - System.out.println("Inner class saved!"); } catch (IOException e) { e.printStackTrace(); } diff --git a/src/main/java/cz/jzitnik/game/blocks/Chest.java b/src/main/java/cz/jzitnik/game/blocks/Chest.java index 319793b..f57d4a5 100644 --- a/src/main/java/cz/jzitnik/game/blocks/Chest.java +++ b/src/main/java/cz/jzitnik/game/blocks/Chest.java @@ -11,11 +11,12 @@ import cz.jzitnik.tui.SpriteList; import org.jline.terminal.MouseEvent; import org.jline.terminal.Terminal; +import java.io.Serializable; import java.util.List; import java.util.Optional; @RightClickLogic -public class Chest implements RightClickHandler { +public class Chest implements RightClickHandler, Serializable { private static final int ROW_AMOUNT = 4; private static final int COLUMN_AMOUNT = 6; private static final int CELL_WIDTH = 50; diff --git a/src/main/java/cz/jzitnik/game/blocks/Furnace.java b/src/main/java/cz/jzitnik/game/blocks/Furnace.java index bab4b93..9fd2caa 100644 --- a/src/main/java/cz/jzitnik/game/blocks/Furnace.java +++ b/src/main/java/cz/jzitnik/game/blocks/Furnace.java @@ -16,11 +16,12 @@ import cz.jzitnik.tui.utils.SpriteCombiner; import org.jline.terminal.MouseEvent; import org.jline.terminal.Terminal; +import java.io.Serializable; import java.util.List; import java.util.Optional; @RightClickLogic -public class Furnace implements RightClickHandler { +public class Furnace implements RightClickHandler, Serializable { private final Block block; private final InventoryItem[] items = new InventoryItem[2]; private InventoryItem outputItem; diff --git a/src/main/java/cz/jzitnik/game/blocks/OakDoorData.java b/src/main/java/cz/jzitnik/game/blocks/OakDoorData.java index b58a9ae..617d001 100644 --- a/src/main/java/cz/jzitnik/game/blocks/OakDoorData.java +++ b/src/main/java/cz/jzitnik/game/blocks/OakDoorData.java @@ -8,8 +8,10 @@ import cz.jzitnik.game.sprites.OakDoor; import cz.jzitnik.tui.ScreenRenderer; +import java.io.Serializable; + @RightClickLogic -public class OakDoorData implements RightClickHandler { +public class OakDoorData implements RightClickHandler, Serializable { private void change(Block door) { door.setSpriteState(switch (door.getSpriteState().get()) { case OakDoor.OakDoorState.TOP -> OakDoor.OakDoorState.TOPCLOSED; diff --git a/src/main/java/cz/jzitnik/game/handlers/place/DefaultPlaceHandler.java b/src/main/java/cz/jzitnik/game/handlers/place/DefaultPlaceHandler.java index a9c6cd7..a641bb2 100644 --- a/src/main/java/cz/jzitnik/game/handlers/place/DefaultPlaceHandler.java +++ b/src/main/java/cz/jzitnik/game/handlers/place/DefaultPlaceHandler.java @@ -21,7 +21,7 @@ public class DefaultPlaceHandler implements CustomPlaceHandler { public boolean mine(Game game, int x, int y) { var blocks = game.getWorld()[y][x]; - blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air")).toList()); + blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air") && !i.isMob()).toList()); return true; } diff --git a/src/main/java/cz/jzitnik/game/handlers/place/handlers/DoorPlaceHandler.java b/src/main/java/cz/jzitnik/game/handlers/place/handlers/DoorPlaceHandler.java index f72bb36..a3faff6 100644 --- a/src/main/java/cz/jzitnik/game/handlers/place/handlers/DoorPlaceHandler.java +++ b/src/main/java/cz/jzitnik/game/handlers/place/handlers/DoorPlaceHandler.java @@ -43,16 +43,16 @@ public class DoorPlaceHandler implements CustomPlaceHandler { if (block.getSpriteState().get() == OakDoor.OakDoorState.BOTTOM || block.getSpriteState().get() == OakDoor.OakDoorState.BOTTOMCLOSED) { var blocks2 = game.getWorld()[y - 1][x]; - blocks2.removeAll(blocks2.stream().filter(i -> !i.getBlockId().equals("air")).toList()); + blocks2.removeAll(blocks2.stream().filter(i -> !i.getBlockId().equals("air") && !i.isMob()).toList()); } if (block.getSpriteState().get() == OakDoor.OakDoorState.TOP || block.getSpriteState().get() == OakDoor.OakDoorState.TOPCLOSED) { var blocks2 = game.getWorld()[y + 1][x]; - blocks2.removeAll(blocks2.stream().filter(i -> !i.getBlockId().equals("air")).toList()); + blocks2.removeAll(blocks2.stream().filter(i -> !i.getBlockId().equals("air") && !i.isMob()).toList()); } - blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air")).toList()); + blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air") && !i.isMob()).toList()); return true; } diff --git a/src/main/java/cz/jzitnik/game/handlers/place/handlers/OakLeavesMineHandler.java b/src/main/java/cz/jzitnik/game/handlers/place/handlers/OakLeavesMineHandler.java index 6920d27..8847dc7 100644 --- a/src/main/java/cz/jzitnik/game/handlers/place/handlers/OakLeavesMineHandler.java +++ b/src/main/java/cz/jzitnik/game/handlers/place/handlers/OakLeavesMineHandler.java @@ -29,7 +29,7 @@ public class OakLeavesMineHandler implements CustomPlaceHandler { public boolean mine(Game game, int x, int y) { var blocks = game.getWorld()[y][x]; - blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air")).toList()); + blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air") && !i.isMob()).toList()); Random random = new Random(); int percentage = random.nextInt(100);