From e467d0087722781bd642c6d60c43aef6808468ea Mon Sep 17 00:00:00 2001 From: OLEGSHA Date: Thu, 7 Jan 2021 16:51:34 +0300 Subject: [PATCH] Probably fixed that GUI freeze that WarGreg reported --- .../ru/windcorp/progressia/test/TestContent.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/windcorp/progressia/test/TestContent.java b/src/main/java/ru/windcorp/progressia/test/TestContent.java index d3f0573..ab81b96 100644 --- a/src/main/java/ru/windcorp/progressia/test/TestContent.java +++ b/src/main/java/ru/windcorp/progressia/test/TestContent.java @@ -151,7 +151,7 @@ public class TestContent { KeyEvent.class, TestContent::onBlockBreakTrigger, KeyMatcher.of(GLFW.GLFW_MOUSE_BUTTON_LEFT).matcher(), - i -> getSelection().exists() + i -> isAnythingSelected() )); logic.register(ControlLogic.of("Test:BreakBlock", TestContent::onBlockBreakReceived)); @@ -161,7 +161,7 @@ public class TestContent { KeyEvent.class, TestContent::onBlockPlaceTrigger, KeyMatcher.of(GLFW.GLFW_MOUSE_BUTTON_RIGHT).matcher(), - i -> getSelection().exists() && TestPlayerControls.getInstance().isBlockSelected() + i -> isAnythingSelected() && TestPlayerControls.getInstance().isBlockSelected() )); logic.register(ControlLogic.of("Test:PlaceBlock", TestContent::onBlockPlaceReceived)); @@ -171,7 +171,7 @@ public class TestContent { KeyEvent.class, TestContent::onTilePlaceTrigger, KeyMatcher.of(GLFW.GLFW_MOUSE_BUTTON_RIGHT).matcher(), - i -> getSelection().exists() && !TestPlayerControls.getInstance().isBlockSelected() + i -> isAnythingSelected() && !TestPlayerControls.getInstance().isBlockSelected() )); logic.register(ControlLogic.of("Test:PlaceTile", TestContent::onTilePlaceReceived)); } @@ -236,6 +236,13 @@ public class TestContent { return client.getLocalPlayer().getSelection(); } + private static boolean isAnythingSelected() { + ru.windcorp.progressia.client.Client client = ClientState.getInstance(); + if (client == null || !client.isReady()) return false; + + return client.getLocalPlayer().getSelection().exists(); + } + private static void onBlockBreakTrigger(ControlData control) { ((ControlBreakBlockData) control).setBlockInWorld(getSelection().getBlock()); SoundEffect sfx = new SoundEffect("Progressia:BlockDestroy");