From 5b0e0264801d928de0a56e7183a1c9ee38f9d0ab Mon Sep 17 00:00:00 2001 From: jzitnik-dev Date: Wed, 24 Dec 2025 11:18:32 +0100 Subject: [PATCH] fix: Moving while terminal too small --- .../cz/jzitnik/events/handlers/FullRoomDrawHandler.java | 3 +++ .../jzitnik/events/handlers/MouseActionEventHandler.java | 4 ++++ .../jzitnik/events/handlers/PlayerMoveEventHandler.java | 8 ++++++++ src/main/java/cz/jzitnik/game/GameState.java | 5 +++++ 4 files changed, 20 insertions(+) diff --git a/src/main/java/cz/jzitnik/events/handlers/FullRoomDrawHandler.java b/src/main/java/cz/jzitnik/events/handlers/FullRoomDrawHandler.java index 7d938c3..4dfb578 100644 --- a/src/main/java/cz/jzitnik/events/handlers/FullRoomDrawHandler.java +++ b/src/main/java/cz/jzitnik/events/handlers/FullRoomDrawHandler.java @@ -120,9 +120,12 @@ public class FullRoomDrawHandler extends AbstractEventHandler { } else { eventManager.emitEvent(new RerenderScreen(partsToRerender.toArray(RerenderScreen.ScreenPart[]::new))); } + + gameState.setTerminalTooSmall(false); } catch (ArrayIndexOutOfBoundsException e) { // Screen too small to fit the room eventManager.emitEvent(new TerminalTooSmallEvent()); + gameState.setTerminalTooSmall(true); } } } diff --git a/src/main/java/cz/jzitnik/events/handlers/MouseActionEventHandler.java b/src/main/java/cz/jzitnik/events/handlers/MouseActionEventHandler.java index c53c2a2..0fc6b4b 100644 --- a/src/main/java/cz/jzitnik/events/handlers/MouseActionEventHandler.java +++ b/src/main/java/cz/jzitnik/events/handlers/MouseActionEventHandler.java @@ -37,6 +37,10 @@ public class MouseActionEventHandler extends AbstractEventHandler { return; } + if (gameState.isTerminalTooSmall()) { + return; + } + switch (event.getActionType()) { case MOVE -> eventManager.emitEvent(new MouseMoveEvent(event)); case CLICK_RELEASE -> { diff --git a/src/main/java/cz/jzitnik/events/handlers/PlayerMoveEventHandler.java b/src/main/java/cz/jzitnik/events/handlers/PlayerMoveEventHandler.java index 8a0df17..c9e6ccc 100644 --- a/src/main/java/cz/jzitnik/events/handlers/PlayerMoveEventHandler.java +++ b/src/main/java/cz/jzitnik/events/handlers/PlayerMoveEventHandler.java @@ -52,6 +52,10 @@ public class PlayerMoveEventHandler extends AbstractEventHandler { if (originalPlayerX <= 30) { @@ -79,6 +84,7 @@ public class PlayerMoveEventHandler extends AbstractEventHandler { if (originalPlayerY >= 110) { @@ -88,6 +94,7 @@ public class PlayerMoveEventHandler extends AbstractEventHandler { if (originalPlayerX >= 155) { @@ -97,6 +104,7 @@ public class PlayerMoveEventHandler extends AbstractEventHandler