From 6eec658180eec13ec8d340002d10a2aa846bd57e Mon Sep 17 00:00:00 2001 From: Ghzdude <44148655+ghzdude@users.noreply.github.com> Date: Fri, 7 Feb 2025 15:22:03 -0700 Subject: [PATCH 1/4] add parameter for deleting cached panel do not delete cached panel for filter popups --- src/main/java/gregtech/api/mui/GTGuis.java | 28 +++++++++++++------ .../covers/ender/CoverAbstractEnderLink.java | 4 +-- .../filter/OreDictionaryItemFilter.java | 2 +- .../covers/filter/SimpleFluidFilter.java | 2 +- .../covers/filter/SimpleItemFilter.java | 2 +- .../common/covers/filter/SmartItemFilter.java | 2 +- 6 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/main/java/gregtech/api/mui/GTGuis.java b/src/main/java/gregtech/api/mui/GTGuis.java index 568f925cb6f..83306bff404 100644 --- a/src/main/java/gregtech/api/mui/GTGuis.java +++ b/src/main/java/gregtech/api/mui/GTGuis.java @@ -73,21 +73,20 @@ public static ModularPanel defaultPanel(MetaItem.MetaValueItem valueItem) { } public static ModularPanel createPopupPanel(String name, int width, int height) { - return createPopupPanel(name, width, height, false, false); + return new PopupPanel(name, width, height); } - public static ModularPanel createPopupPanel(String name, int width, int height, boolean disableBelow, - boolean closeOnOutsideClick) { - return new PopupPanel(name, width, height, disableBelow, closeOnOutsideClick); + public static ModularPanel createPopupPanel(String name, int width, int height, boolean deleteCachedPanel) { + return new PopupPanel(name, width, height, false, false, deleteCachedPanel); } public static ModularPanel defaultPopupPanel(String name) { - return defaultPopupPanel(name, false, false); + return new PopupPanel(name); } public static ModularPanel defaultPopupPanel(String name, boolean disableBelow, - boolean closeOnOutsideClick) { - return new PopupPanel(name, DEFAULT_WIDTH, DEFAULT_HIEGHT, disableBelow, closeOnOutsideClick); + boolean closeOnOutsideClick, boolean deleteCachedPanel) { + return new PopupPanel(name, DEFAULT_WIDTH, DEFAULT_HIEGHT, disableBelow, closeOnOutsideClick, deleteCachedPanel); } private static class PopupPanel extends ModularPanel { @@ -95,8 +94,21 @@ private static class PopupPanel extends ModularPanel { private final boolean disableBelow; private final boolean closeOnOutsideClick; + public PopupPanel(@NotNull String name) { + this(name, DEFAULT_WIDTH, DEFAULT_HIEGHT); + } + + public PopupPanel(@NotNull String name, int width, int height) { + this(name, width, height, false, false); + } + public PopupPanel(@NotNull String name, int width, int height, boolean disableBelow, boolean closeOnOutsideClick) { + this(name, width, height, disableBelow, closeOnOutsideClick, false); + } + + public PopupPanel(@NotNull String name, int width, int height, boolean disableBelow, + boolean closeOnOutsideClick, boolean deleteCachedPanel) { super(name); size(width, height).align(Alignment.Center); background(GTGuiTextures.BACKGROUND_POPUP); @@ -104,7 +116,7 @@ public PopupPanel(@NotNull String name, int width, int height, boolean disableBe .onMousePressed(mouseButton -> { if (mouseButton == 0 || mouseButton == 1) { this.closeIfOpen(true); - if (isSynced() && getSyncHandler() instanceof IPanelHandler handler) { + if (deleteCachedPanel && isSynced() && getSyncHandler() instanceof IPanelHandler handler) { handler.deleteCachedPanel(); } return true; diff --git a/src/main/java/gregtech/common/covers/ender/CoverAbstractEnderLink.java b/src/main/java/gregtech/common/covers/ender/CoverAbstractEnderLink.java index 552c6bb4075..3bde5ee79d9 100644 --- a/src/main/java/gregtech/common/covers/ender/CoverAbstractEnderLink.java +++ b/src/main/java/gregtech/common/covers/ender/CoverAbstractEnderLink.java @@ -288,7 +288,7 @@ protected PanelSyncHandler.IPanelBuilder entrySelector(EntryTypes type) { for (String name : VirtualEnderRegistry.getEntryNames(getOwner(), type)) { rows.add(createRow(name, syncManager, type)); } - return GTGuis.createPopupPanel("entry_selector", 168, 112) + return GTGuis.createPopupPanel("entry_selector", 168, 112, true) .child(IKey.lang("cover.generic.ender.known_channels") .color(UI_TITLE_COLOR) .asWidget() @@ -310,7 +310,7 @@ protected PanelSyncHandler.IPanelBuilder entrySelector(EntryTypes type) { protected PanelSyncHandler.IPanelBuilder entryDescription(String key, T entry) { return (syncManager, syncHandler) -> { var sync = new StringSyncValue(entry::getDescription, entry::setDescription); - return GTGuis.createPopupPanel(key, 168, 36 + 6) + return GTGuis.createPopupPanel(key, 168, 36 + 6, true) .child(IKey.lang("cover.generic.ender.set_description.title", entry.getColorStr()) .color(UI_TITLE_COLOR) .asWidget() diff --git a/src/main/java/gregtech/common/covers/filter/OreDictionaryItemFilter.java b/src/main/java/gregtech/common/covers/filter/OreDictionaryItemFilter.java index 0d91fd97cf8..d12a346724a 100644 --- a/src/main/java/gregtech/common/covers/filter/OreDictionaryItemFilter.java +++ b/src/main/java/gregtech/common/covers/filter/OreDictionaryItemFilter.java @@ -75,7 +75,7 @@ public void initUI(Consumer widgetGroup) {} @Override public @NotNull ModularPanel createPopupPanel(PanelSyncManager syncManager) { - return GTGuis.createPopupPanel("ore_dict_filter", 188, 76) + return GTGuis.createPopupPanel("ore_dict_filter", 188, 76, false) .padding(7) .child(CoverWithUI.createTitleRow(getContainerStack())) .child(createWidgets(syncManager).top(22)); diff --git a/src/main/java/gregtech/common/covers/filter/SimpleFluidFilter.java b/src/main/java/gregtech/common/covers/filter/SimpleFluidFilter.java index b36acc61283..f91d5105799 100644 --- a/src/main/java/gregtech/common/covers/filter/SimpleFluidFilter.java +++ b/src/main/java/gregtech/common/covers/filter/SimpleFluidFilter.java @@ -39,7 +39,7 @@ public void configureFilterTanks(int amount) { @Override public @NotNull ModularPanel createPopupPanel(PanelSyncManager syncManager) { - return GTGuis.createPopupPanel("simple_fluid_filter", 98, 81) + return GTGuis.createPopupPanel("simple_fluid_filter", 98, 81, false) .padding(4) .child(CoverWithUI.createTitleRow(getContainerStack())) .child(createWidgets(syncManager).top(22)); diff --git a/src/main/java/gregtech/common/covers/filter/SimpleItemFilter.java b/src/main/java/gregtech/common/covers/filter/SimpleItemFilter.java index d69e6de7649..dbeabae9c0b 100644 --- a/src/main/java/gregtech/common/covers/filter/SimpleItemFilter.java +++ b/src/main/java/gregtech/common/covers/filter/SimpleItemFilter.java @@ -94,7 +94,7 @@ public void initUI(Consumer widgetGroup) { @Override public @NotNull ModularPanel createPopupPanel(PanelSyncManager syncManager) { - return GTGuis.createPopupPanel("simple_item_filter", 98, 81) + return GTGuis.createPopupPanel("simple_item_filter", 98, 81, false) .child(CoverWithUI.createTitleRow(getContainerStack())) .child(createWidgets(syncManager).top(22).left(4)); } diff --git a/src/main/java/gregtech/common/covers/filter/SmartItemFilter.java b/src/main/java/gregtech/common/covers/filter/SmartItemFilter.java index d7cbf29c463..b86f37b0cde 100644 --- a/src/main/java/gregtech/common/covers/filter/SmartItemFilter.java +++ b/src/main/java/gregtech/common/covers/filter/SmartItemFilter.java @@ -98,7 +98,7 @@ public void initUI(Consumer widgetGroup) { @Override public @NotNull ModularPanel createPopupPanel(PanelSyncManager syncManager) { - return GTGuis.createPopupPanel("smart_item_filter", 98 + 27, 81) + return GTGuis.createPopupPanel("smart_item_filter", 98 + 27, 81, false) .child(CoverWithUI.createTitleRow(getContainerStack())) .child(createWidgets(syncManager).top(22).left(4)); } From 5c5567d9761d934b94f096c5004d7c1b15298084 Mon Sep 17 00:00:00 2001 From: Ghzdude <44148655+ghzdude@users.noreply.github.com> Date: Fri, 7 Feb 2025 15:38:41 -0700 Subject: [PATCH 2/4] move delete to better method --- src/main/java/gregtech/api/mui/GTGuis.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/gregtech/api/mui/GTGuis.java b/src/main/java/gregtech/api/mui/GTGuis.java index 83306bff404..8d96ef0655a 100644 --- a/src/main/java/gregtech/api/mui/GTGuis.java +++ b/src/main/java/gregtech/api/mui/GTGuis.java @@ -86,13 +86,15 @@ public static ModularPanel defaultPopupPanel(String name) { public static ModularPanel defaultPopupPanel(String name, boolean disableBelow, boolean closeOnOutsideClick, boolean deleteCachedPanel) { - return new PopupPanel(name, DEFAULT_WIDTH, DEFAULT_HIEGHT, disableBelow, closeOnOutsideClick, deleteCachedPanel); + return new PopupPanel(name, DEFAULT_WIDTH, DEFAULT_HIEGHT, disableBelow, closeOnOutsideClick, + deleteCachedPanel); } private static class PopupPanel extends ModularPanel { private final boolean disableBelow; private final boolean closeOnOutsideClick; + private final boolean deleteCachedPanel; public PopupPanel(@NotNull String name) { this(name, DEFAULT_WIDTH, DEFAULT_HIEGHT); @@ -116,15 +118,21 @@ public PopupPanel(@NotNull String name, int width, int height, boolean disableBe .onMousePressed(mouseButton -> { if (mouseButton == 0 || mouseButton == 1) { this.closeIfOpen(true); - if (deleteCachedPanel && isSynced() && getSyncHandler() instanceof IPanelHandler handler) { - handler.deleteCachedPanel(); - } return true; } return false; })); this.disableBelow = disableBelow; this.closeOnOutsideClick = closeOnOutsideClick; + this.deleteCachedPanel = deleteCachedPanel; + } + + @Override + public void onClose() { + super.onClose(); + if (deleteCachedPanel && isSynced() && getSyncHandler() instanceof IPanelHandler handler) { + handler.deleteCachedPanel(); + } } @Override From 35e9c64a0f054a7fa510f7a3b261abab9a6948db Mon Sep 17 00:00:00 2001 From: Ghzdude <44148655+ghzdude@users.noreply.github.com> Date: Fri, 7 Feb 2025 15:54:47 -0700 Subject: [PATCH 3/4] make popup panel class public make fields not final and set in builder methods --- src/main/java/gregtech/api/mui/GTGuis.java | 78 +++++++++++++--------- 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/src/main/java/gregtech/api/mui/GTGuis.java b/src/main/java/gregtech/api/mui/GTGuis.java index 8d96ef0655a..1adc23b571e 100644 --- a/src/main/java/gregtech/api/mui/GTGuis.java +++ b/src/main/java/gregtech/api/mui/GTGuis.java @@ -72,47 +72,37 @@ public static ModularPanel defaultPanel(MetaItem.MetaValueItem valueItem) { return createPanel(valueItem.unlocalizedName); } - public static ModularPanel createPopupPanel(String name, int width, int height) { - return new PopupPanel(name, width, height); + public static PopupPanel createPopupPanel(String name, int width, int height) { + return defaultPopupPanel(name) + .size(width, height); } - public static ModularPanel createPopupPanel(String name, int width, int height, boolean deleteCachedPanel) { - return new PopupPanel(name, width, height, false, false, deleteCachedPanel); + public static PopupPanel createPopupPanel(String name, int width, int height, boolean deleteCachedPanel) { + return createPopupPanel(name, width, height) + .deleteCachedPanel(deleteCachedPanel); } - public static ModularPanel defaultPopupPanel(String name) { + public static PopupPanel defaultPopupPanel(String name) { return new PopupPanel(name); } - public static ModularPanel defaultPopupPanel(String name, boolean disableBelow, - boolean closeOnOutsideClick, boolean deleteCachedPanel) { - return new PopupPanel(name, DEFAULT_WIDTH, DEFAULT_HIEGHT, disableBelow, closeOnOutsideClick, - deleteCachedPanel); + public static PopupPanel defaultPopupPanel(String name, boolean disableBelow, + boolean closeOnOutsideClick, boolean deleteCachedPanel) { + return defaultPopupPanel(name) + .disablePanelsBelow(disableBelow) + .closeOnOutOfBoundsClick(closeOnOutsideClick) + .deleteCachedPanel(deleteCachedPanel); } - private static class PopupPanel extends ModularPanel { + public static class PopupPanel extends ModularPanel { - private final boolean disableBelow; - private final boolean closeOnOutsideClick; - private final boolean deleteCachedPanel; + private boolean disableBelow; + private boolean closeOnOutsideClick; + private boolean deleteCachedPanel; - public PopupPanel(@NotNull String name) { - this(name, DEFAULT_WIDTH, DEFAULT_HIEGHT); - } - - public PopupPanel(@NotNull String name, int width, int height) { - this(name, width, height, false, false); - } - - public PopupPanel(@NotNull String name, int width, int height, boolean disableBelow, - boolean closeOnOutsideClick) { - this(name, width, height, disableBelow, closeOnOutsideClick, false); - } - - public PopupPanel(@NotNull String name, int width, int height, boolean disableBelow, - boolean closeOnOutsideClick, boolean deleteCachedPanel) { + private PopupPanel(@NotNull String name) { super(name); - size(width, height).align(Alignment.Center); + align(Alignment.Center); background(GTGuiTextures.BACKGROUND_POPUP); child(ButtonWidget.panelCloseButton().top(5).right(5) .onMousePressed(mouseButton -> { @@ -122,9 +112,6 @@ public PopupPanel(@NotNull String name, int width, int height, boolean disableBe } return false; })); - this.disableBelow = disableBelow; - this.closeOnOutsideClick = closeOnOutsideClick; - this.deleteCachedPanel = deleteCachedPanel; } @Override @@ -135,6 +122,33 @@ public void onClose() { } } + public PopupPanel disablePanelsBelow(boolean disableBelow) { + this.disableBelow = disableBelow; + return this; + } + + public PopupPanel closeOnOutOfBoundsClick(boolean closeOnOutsideClick) { + this.closeOnOutsideClick = closeOnOutsideClick; + return this; + } + + public PopupPanel deleteCachedPanel(boolean deleteCachedPanel) { + this.deleteCachedPanel = deleteCachedPanel; + return this; + } + + @Override + public PopupPanel size(int w, int h) { + super.size(w, h); + return this; + } + + @Override + public PopupPanel size(int val) { + super.size(val); + return this; + } + @Override public boolean disablePanelsBelow() { return disableBelow; From 4aa4f424a68e15a2a131b825647f7f5744d8411b Mon Sep 17 00:00:00 2001 From: Ghzdude <44148655+ghzdude@users.noreply.github.com> Date: Sat, 8 Feb 2025 21:11:54 -0700 Subject: [PATCH 4/4] actually set default size --- src/main/java/gregtech/api/mui/GTGuis.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/gregtech/api/mui/GTGuis.java b/src/main/java/gregtech/api/mui/GTGuis.java index 1adc23b571e..f955cd922f8 100644 --- a/src/main/java/gregtech/api/mui/GTGuis.java +++ b/src/main/java/gregtech/api/mui/GTGuis.java @@ -83,7 +83,8 @@ public static PopupPanel createPopupPanel(String name, int width, int height, bo } public static PopupPanel defaultPopupPanel(String name) { - return new PopupPanel(name); + return new PopupPanel(name) + .size(DEFAULT_WIDTH, DEFAULT_HIEGHT); } public static PopupPanel defaultPopupPanel(String name, boolean disableBelow,