From b37df1c347a653b9c991ba1b89da7ce6dfa17152 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 8 Mar 2023 17:05:40 +0700 Subject: [PATCH] Opening pattern or task frames now block inputs to main panel --- .../client/screen/matter/MatterPanelScreen.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/matter/MatterPanelScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/matter/MatterPanelScreen.kt index baabc38e2..b0d37957b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/matter/MatterPanelScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/matter/MatterPanelScreen.kt @@ -172,9 +172,13 @@ class MatterPanelScreen( override fun mouseClickedInner(x: Double, y: Double, button: Int): Boolean { if (isPatternView) { if (minecraft?.player?.isSpectator != true) - menu.patternsFiltered.getOrNull(index)?.let(this@MatterPanelScreen::openPattern) + menu.patternsFiltered.getOrNull(index)?.let(this@MatterPanelScreen::openPattern)?.let { + frame.blockingWindow = it + } } else { - menu.tasksFiltered.getOrNull(index)?.let(this@MatterPanelScreen::openTask) + menu.tasksFiltered.getOrNull(index)?.let(this@MatterPanelScreen::openTask)?.let { + frame.blockingWindow = it + } } return true @@ -190,7 +194,7 @@ class MatterPanelScreen( return frame } - private fun openTask(task: IReplicationTask<*>) { + private fun openTask(task: IReplicationTask<*>): FramePanel { val frame = FramePanel.padded(this, null, 170f, 20f, TranslatableComponent("otm.gui.matter_panel.task")) frame.closeOnEscape = true @@ -232,9 +236,11 @@ class MatterPanelScreen( popup(frame) frame.toScreenCenter() + + return frame } - private fun openPattern(pattern: IPatternState) { + private fun openPattern(pattern: IPatternState): FramePanel { val frame = FramePanel.padded(this, null, 213f, (ButtonPanel.HEIGHT + 3f) * 4f + 38f, TranslatableComponent("otm.gui.matter_panel.task")) frame.closeOnEscape = true @@ -418,6 +424,8 @@ class MatterPanelScreen( } frame.toScreenCenter() + + return frame } companion object {