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