diff --git a/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenAspectSettings.java b/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenAspectSettings.java index a4bc0c8f528..acc98f3e825 100644 --- a/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenAspectSettings.java +++ b/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenAspectSettings.java @@ -214,11 +214,19 @@ public boolean keyPressed(int typedChar, int keyCode, int modifiers) { return false; } } else { - saveSetting(); - return super.keyPressed(typedChar, keyCode, modifiers); + // Don't close all GUIs, but go back to the part's aspect overview GUI. + exitToPartGui(); + return true; } } + /** + * Save the current setting and go back to the aspect overview GUI of the part. + */ + protected void exitToPartGui() { + buttonExit.onPress(); + } + @Override public boolean mouseClicked(double mouseX, double mouseY, int mouseButton) { return subGuiHolder.mouseClicked(mouseX, mouseY, mouseButton) diff --git a/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenPartOffset.java b/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenPartOffset.java index 373759eb616..baca8314645 100644 --- a/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenPartOffset.java +++ b/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenPartOffset.java @@ -36,6 +36,7 @@ public class ContainerScreenPartOffset extends Co private WidgetNumberField numberFieldX = null; private WidgetNumberField numberFieldY = null; private WidgetNumberField numberFieldZ = null; + private ButtonText buttonSave = null; public ContainerScreenPartOffset(T container, Inventory inventory, Component title) { super(container, inventory, title); @@ -86,7 +87,7 @@ public void init() { numberFieldZ.setCanLoseFocus(true); MutableComponent save = Component.translatable("gui.integrateddynamics.button.save"); - addRenderableWidget(new ButtonText(this.leftPos + 178, this.topPos + 6, font.width(save.getVisualOrderText()) + 6, 16, save, save, + addRenderableWidget(buttonSave = new ButtonText(this.leftPos + 178, this.topPos + 6, font.width(save.getVisualOrderText()) + 6, 16, save, save, createServerPressable(ContainerPartOffset.BUTTON_SAVE, b -> onSave()), true)); this.refreshValues(); @@ -122,10 +123,19 @@ public boolean keyPressed(int typedChar, int keyCode, int modifiers) { } return true; } else { - return super.keyPressed(typedChar, keyCode, modifiers); + // Don't close all GUIs, but go back to the part's GUI. + exitToPartGui(); + return true; } } + /** + * Save the current offsets and go back to the GUI of the part. + */ + protected void exitToPartGui() { + buttonSave.onPress(); + } + @Override public boolean mouseClicked(double mouseX, double mouseY, int mouseButton) { if (this.numberFieldX.mouseClicked(mouseX, mouseY, mouseButton) diff --git a/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenPartSettings.java b/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenPartSettings.java index cc4ba8dc68c..03504a68a65 100644 --- a/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenPartSettings.java +++ b/src/main/java/org/cyclops/integrateddynamics/core/client/gui/container/ContainerScreenPartSettings.java @@ -42,6 +42,7 @@ public class ContainerScreenPartSettings extend private WidgetNumberField numberFieldChannel = null; private WidgetTextFieldDropdown dropdownFieldSide = null; private List dropdownEntries; + private ButtonText buttonSave = null; public ContainerScreenPartSettings(T container, Inventory inventory, Component title) { super(container, inventory, title); @@ -134,7 +135,7 @@ public void init() { } MutableComponent save = Component.translatable("gui.integrateddynamics.button.save"); - addRenderableWidget(new ButtonText(this.leftPos + 178, this.topPos + 8, font.width(save.getVisualOrderText()) + 6, 16, save, save, + addRenderableWidget(buttonSave = new ButtonText(this.leftPos + 178, this.topPos + 8, font.width(save.getVisualOrderText()) + 6, 16, save, save, createServerPressable(ContainerPartSettings.BUTTON_SAVE, b -> onSave()), true)); this.refreshValues(); @@ -216,10 +217,19 @@ public boolean keyPressed(int typedChar, int keyCode, int modifiers) { } return true; } else { - return super.keyPressed(typedChar, keyCode, modifiers); + // Don't close all GUIs, but go back to the part's GUI. + exitToPartGui(); + return true; } } + /** + * Save the current settings and go back to the GUI of the part. + */ + protected void exitToPartGui() { + buttonSave.onPress(); + } + @Override public boolean mouseClicked(double mouseX, double mouseY, int mouseButton) { if (isFieldSideEnabled()) {