From bcef0b6c1e151fc46ba3641cb29060c0a4c6ecb7 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 25 Nov 2025 15:51:07 +0800 Subject: Update to 1.21.9 --- .../me/shedaniel/rei/REIModMenuEntryPoint.java | 3 +- .../me/shedaniel/rei/RoughlyEnoughItemsCore.java | 3 +- .../rei/RoughlyEnoughItemsCoreClient.java | 28 +++---- .../shedaniel/rei/RoughlyEnoughItemsNetwork.java | 8 +- .../config/entries/ConfigureCategoriesScreen.java | 7 +- .../config/entries/FilteringRulesScreen.java | 7 +- .../client/config/entries/FilteringScreen.java | 57 +++++++------- .../DelegatingFavoriteEntryProviderImpl.java | 5 +- .../rei/impl/client/gui/ScreenOverlayImpl.java | 89 +++++++++++----------- .../impl/client/gui/config/REIConfigScreen.java | 70 +++++++++-------- .../gui/config/components/ConfigSearchWidget.java | 5 +- .../configure/PanelBoundariesConfiguration.java | 21 ++--- .../client/gui/credits/CreditsEntryListWidget.java | 5 +- .../rei/impl/client/gui/credits/CreditsScreen.java | 7 +- .../client/gui/dragging/CurrentDraggingStack.java | 17 +++-- .../client/gui/error/ErrorsEntryListWidget.java | 31 ++++---- .../rei/impl/client/gui/error/ErrorsScreen.java | 7 +- .../client/gui/hints/ImportantWarningsWidget.java | 5 +- .../impl/client/gui/modules/AbstractMenuEntry.java | 9 ++- .../rei/impl/client/gui/modules/Menu.java | 13 ++-- .../performance/entry/SubCategoryListEntry.java | 5 +- .../gui/screen/AbstractDisplayViewingScreen.java | 39 +++++----- .../gui/screen/CompositeDisplayViewingScreen.java | 51 +++++++------ .../client/gui/screen/ConfigReloadingScreen.java | 2 +- .../gui/screen/DefaultDisplayViewingScreen.java | 54 ++++++------- .../rei/impl/client/gui/screen/ScreenWithMenu.java | 19 ++--- .../gui/screen/UncertainDisplayViewingScreen.java | 14 ++-- .../client/gui/screen/WarningAndErrorScreen.java | 5 +- .../collapsible/CollapsibleEntriesScreen.java | 19 ++--- .../CustomCollapsibleEntrySelectionScreen.java | 57 +++++++------- .../gui/screen/generic/OptionEntriesScreen.java | 5 +- .../impl/client/gui/widget/ConfigButtonWidget.java | 2 +- .../gui/widget/DefaultDisplayChoosePageWidget.java | 12 +-- .../gui/widget/DelegateWidgetWithTranslate.java | 33 ++++---- .../client/gui/widget/DisplayCompositeWidget.java | 16 ++-- .../client/gui/widget/DisplayedEntryWidget.java | 21 ++--- .../impl/client/gui/widget/DraggableWidget.java | 13 ++-- .../widget/DynamicErrorFreeEntryListWidget.java | 54 +++++++------ .../rei/impl/client/gui/widget/EntryWidget.java | 39 +++++----- .../impl/client/gui/widget/InternalWidgets.java | 21 ++--- .../rei/impl/client/gui/widget/ListWidget.java | 7 +- .../rei/impl/client/gui/widget/MergedWidget.java | 23 +++--- .../client/gui/widget/MergedWidgetWithBounds.java | 23 +++--- .../rei/impl/client/gui/widget/OverflowWidget.java | 21 ++--- .../impl/client/gui/widget/ScissoredWidget.java | 5 +- .../client/gui/widget/ScrollableViewWidget.java | 13 ++-- .../rei/impl/client/gui/widget/TabWidget.java | 5 +- .../gui/widget/basewidgets/ButtonWidget.java | 10 ++- .../client/gui/widget/basewidgets/LabelWidget.java | 10 ++- .../gui/widget/basewidgets/TextFieldWidget.java | 48 ++++++------ .../gui/widget/entrylist/EntryListStackEntry.java | 14 ++-- .../gui/widget/entrylist/EntryListWidget.java | 20 ++--- .../widget/entrylist/PaginatedEntryListWidget.java | 6 +- .../widget/entrylist/ScrolledEntryListWidget.java | 16 ++-- .../gui/widget/favorites/FavoritesListWidget.java | 27 ++++--- .../gui/widget/favorites/history/DisplayEntry.java | 27 +++---- .../favorites/history/DisplayHistoryWidget.java | 24 +++--- .../panel/FadingFavoritesPanelButton.java | 9 ++- .../panel/rows/FavoritesPanelEntriesRow.java | 13 ++-- .../impl/client/gui/widget/hint/HintWidget.java | 7 +- .../gui/widget/region/EntryStacksRegionWidget.java | 18 +++-- .../gui/widget/region/RegionEntryWidget.java | 5 +- .../gui/widget/region/RegionRenderingDebugger.java | 2 +- .../gui/widget/search/OverlaySearchField.java | 41 +++++----- .../screen/DefaultScreenOverlayRenderer.java | 4 +- .../displays/ServerDisplayRegistryImpl.java | 8 +- .../plugin/client/entry/FluidEntryDefinition.java | 10 ++- .../client/runtime/DefaultClientRuntimePlugin.java | 9 ++- 68 files changed, 702 insertions(+), 601 deletions(-) (limited to 'runtime/src/main/java') diff --git a/runtime/src/main/java/me/shedaniel/rei/REIModMenuEntryPoint.java b/runtime/src/main/java/me/shedaniel/rei/REIModMenuEntryPoint.java index 39a855848..19eac34bb 100644 --- a/runtime/src/main/java/me/shedaniel/rei/REIModMenuEntryPoint.java +++ b/runtime/src/main/java/me/shedaniel/rei/REIModMenuEntryPoint.java @@ -24,10 +24,11 @@ package me.shedaniel.rei; import dev.architectury.platform.Platform; +import dev.architectury.platform.client.ConfigurationScreenRegistry; import me.shedaniel.rei.api.client.config.ConfigManager; public class REIModMenuEntryPoint { public void onInitializeClient() { - Platform.getMod("roughlyenoughitems").registerConfigurationScreen(ConfigManager.getInstance()::getConfigScreen); + ConfigurationScreenRegistry.register(Platform.getMod("roughlyenoughitems"), ConfigManager.getInstance()::getConfigScreen); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 05758d3b2..ac3f38bd0 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -64,7 +64,6 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.PackType; import net.minecraft.util.Unit; import net.minecraft.world.item.crafting.Ingredient; -import org.apache.commons.lang3.mutable.MutableLong; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.jetbrains.annotations.ApiStatus; @@ -156,7 +155,7 @@ public class RoughlyEnoughItemsCore { LifecycleEvent.SERVER_STARTED.register(server -> { ReloadManagerImpl.reloadPlugins(null, ReloadInterruptionContext.ofNever()); }); - ReloadListenerRegistry.register(PackType.SERVER_DATA, (preparationBarrier, resourceManager, executor, executor2) -> { + ReloadListenerRegistry.register(PackType.SERVER_DATA, (sharedState, executor, preparationBarrier, executor2) -> { return preparationBarrier.wait(Unit.INSTANCE).thenRunAsync(() -> { if (GameInstance.getServer() == null) return; ReloadManagerImpl.reloadPlugins(null, ReloadInterruptionContext.ofNever()); diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java index 107522bc4..1540673af 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java @@ -376,13 +376,13 @@ public class RoughlyEnoughItemsCoreClient { screen.children().removeIf(widget -> widget instanceof ImageButton button && button.sprites.enabled().equals(recipeButtonTex)); } }); - ClientScreenInputEvent.MOUSE_CLICKED_PRE.register((minecraftClient, screen, mouseX, mouseY, button) -> { + ClientScreenInputEvent.MOUSE_CLICKED_PRE.register((minecraftClient, screen, event, doubleClick) -> { isLeftMousePressed = true; if (shouldReturn(screen) || screen instanceof DisplayScreen) return EventResult.pass(); resetFocused(screen); - if (getOverlay().mouseClicked(mouseX, mouseY, button)) { - if (button == 0) { + if (getOverlay().mouseClicked(event, doubleClick)) { + if (event.button() == 0) { screen.setDragging(true); } resetFocused(screen); @@ -390,12 +390,12 @@ public class RoughlyEnoughItemsCoreClient { } return EventResult.pass(); }); - ClientScreenInputEvent.MOUSE_RELEASED_PRE.register((minecraftClient, screen, mouseX, mouseY, button) -> { + ClientScreenInputEvent.MOUSE_RELEASED_PRE.register((minecraftClient, screen, event) -> { isLeftMousePressed = false; if (shouldReturn(screen) || screen instanceof DisplayScreen) return EventResult.pass(); resetFocused(screen); - if (REIRuntime.getInstance().isOverlayVisible() && getOverlay().mouseReleased(mouseX, mouseY, button) + if (REIRuntime.getInstance().isOverlayVisible() && getOverlay().mouseReleased(event) && resetFocused(screen)) { return EventResult.interruptFalse(); } @@ -410,7 +410,7 @@ public class RoughlyEnoughItemsCoreClient { return EventResult.interruptFalse(); return EventResult.pass(); }); - ClientScreenInputEvent.CHAR_TYPED_PRE.register((minecraftClient, screen, character, keyCode) -> { + ClientScreenInputEvent.CHAR_TYPED_PRE.register((minecraftClient, screen, event) -> { if (shouldReturn(screen) || screen instanceof DisplayScreen) return EventResult.pass(); if (!REIRuntimeImpl.getSearchField().isFocused()) { @@ -421,25 +421,25 @@ public class RoughlyEnoughItemsCoreClient { } } resetFocused(screen); - if (getOverlay().charTyped(character, keyCode) + if (getOverlay().charTyped(event) && resetFocused(screen)) return EventResult.interruptFalse(); return EventResult.pass(); }); - ClientScreenInputEvent.MOUSE_DRAGGED_PRE.register((minecraftClient, screen, mouseX1, mouseY1, button, mouseX2, mouseY2) -> { + ClientScreenInputEvent.MOUSE_DRAGGED_PRE.register((minecraftClient, screen, event, mouseX2, mouseY2) -> { if (shouldReturn(screen) || screen instanceof DisplayScreen) return EventResult.pass(); resetFocused(screen); - if (getOverlay().mouseDragged(mouseX1, mouseY1, button, mouseX2, mouseY2) + if (getOverlay().mouseDragged(event, mouseX2, mouseY2) && resetFocused(screen)) return EventResult.interruptFalse(); return EventResult.pass(); }); - ClientScreenInputEvent.KEY_PRESSED_PRE.register((minecraftClient, screen, i, i1, i2) -> { + ClientScreenInputEvent.KEY_PRESSED_PRE.register((minecraftClient, screen, event) -> { if (shouldReturn(screen) || screen instanceof DisplayScreen) return EventResult.pass(); if (screen instanceof AbstractContainerScreen && ConfigObject.getInstance().doesDisableRecipeBook() && ConfigObject.getInstance().doesFixTabCloseContainer()) { - if (i == 258 && minecraftClient.options.keyInventory.matches(i, i1)) { + if (event.key() == 258 && minecraftClient.options.keyInventory.matches(event)) { minecraftClient.player.closeContainer(); return EventResult.interruptFalse(); } @@ -452,12 +452,12 @@ public class RoughlyEnoughItemsCoreClient { } } resetFocused(screen); - if (getOverlay().keyPressed(i, i1, i2) + if (getOverlay().keyPressed(event) && resetFocused(screen)) return EventResult.interruptFalse(); return EventResult.pass(); }); - ClientScreenInputEvent.KEY_RELEASED_PRE.register((minecraftClient, screen, i, i1, i2) -> { + ClientScreenInputEvent.KEY_RELEASED_PRE.register((minecraftClient, screen, event) -> { if (shouldReturn(screen) || screen instanceof DisplayScreen) return EventResult.pass(); if (!REIRuntimeImpl.getSearchField().isFocused()) { @@ -468,7 +468,7 @@ public class RoughlyEnoughItemsCoreClient { } } resetFocused(screen); - if (getOverlay().keyReleased(i, i1, i2) + if (getOverlay().keyReleased(event) && resetFocused(screen)) return EventResult.interruptFalse(); return EventResult.pass(); diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java index 99fd2cfca..f3c429e0b 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java @@ -74,7 +74,7 @@ public class RoughlyEnoughItemsNetwork { public static void onInitialize() { NetworkManager.registerReceiver(NetworkManager.c2s(), DELETE_ITEMS_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { ServerPlayer player = (ServerPlayer) context.getPlayer(); - if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { + if (player.getPermissionLevel() < player.level().getServer().operatorUserPermissionLevel()) { player.displayClientMessage(Component.translatable("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); return; } @@ -86,7 +86,7 @@ public class RoughlyEnoughItemsNetwork { }); NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { ServerPlayer player = (ServerPlayer) context.getPlayer(); - if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { + if (player.getPermissionLevel() < player.level().getServer().operatorUserPermissionLevel()) { player.displayClientMessage(Component.translatable("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); return; } @@ -102,7 +102,7 @@ public class RoughlyEnoughItemsNetwork { }); NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_GRAB_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { ServerPlayer player = (ServerPlayer) context.getPlayer(); - if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { + if (player.getPermissionLevel() < player.level().getServer().operatorUserPermissionLevel()) { player.displayClientMessage(Component.translatable("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); return; } @@ -124,7 +124,7 @@ public class RoughlyEnoughItemsNetwork { }); NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_HOTBAR_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { ServerPlayer player = (ServerPlayer) context.getPlayer(); - if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { + if (player.getPermissionLevel() < player.level().getServer().operatorUserPermissionLevel()) { player.displayClientMessage(Component.translatable("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); return; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ConfigureCategoriesScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ConfigureCategoriesScreen.java index cefe6d493..bc907f86a 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ConfigureCategoriesScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/ConfigureCategoriesScreen.java @@ -37,6 +37,7 @@ import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.narration.NarratableEntry; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.locale.Language; import net.minecraft.network.chat.Component; @@ -141,10 +142,10 @@ public class ConfigureCategoriesScreen extends Screen { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (super.mouseClicked(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { + if (super.mouseClicked(event, doubleClick)) return true; - ListEntry item = getItemAtPosition(mouseX, mouseY); + ListEntry item = getItemAtPosition(event.x(), event.y()); if (item != null) { client.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); selectItem(item); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java index 62e52d7f7..1a4e90e6a 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringRulesScreen.java @@ -45,6 +45,7 @@ import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.narration.NarratableEntry; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.locale.Language; @@ -133,10 +134,10 @@ public class FilteringRulesScreen extends Screen { } @Override - public boolean mouseClicked(double double_1, double double_2, int int_1) { - if (super.mouseClicked(double_1, double_2, int_1)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { + if (super.mouseClicked(event, doubleClick)) return true; - RuleEntry item = getItemAtPosition(double_1, double_2); + RuleEntry item = getItemAtPosition(event.x(), event.y()); if (item != null) { client.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); selectItem(item); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java index c6da89b94..c2fb5d6b5 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringScreen.java @@ -49,6 +49,9 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; import net.minecraft.world.item.Item; @@ -290,10 +293,10 @@ public class FilteringScreen extends Screen { } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double dx, double dy) { - if (scrolling.mouseDragged(mouseX, mouseY, button, dx, dy)) + public boolean mouseDragged(MouseButtonEvent event, double dx, double dy) { + if (scrolling.mouseDragged(event.x(), event.y(), event.button(), dx, dy)) return true; - return super.mouseDragged(mouseX, mouseY, button, dx, dy); + return super.mouseDragged(event, dx, dy); } private void updatePosition(float delta) { @@ -347,65 +350,65 @@ public class FilteringScreen extends Screen { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { + if (scrolling.updateDraggingState(event.x(), event.y(), event.button())) return true; - if (getBounds().contains(mouseX, mouseY)) { - if (searchField.mouseClicked(mouseX, mouseY, button)) { + if (getBounds().contains(event.x(), event.y())) { + if (searchField.mouseClicked(event, doubleClick)) { this.points.clear(); return true; - } else if (selectAllButton.mouseClicked(mouseX, mouseY, button)) { + } else if (selectAllButton.mouseClicked(event, doubleClick)) { return true; - } else if (selectNoneButton.mouseClicked(mouseX, mouseY, button)) { + } else if (selectNoneButton.mouseClicked(event, doubleClick)) { return true; - } else if (hideButton.mouseClicked(mouseX, mouseY, button)) { + } else if (hideButton.mouseClicked(event, doubleClick)) { return true; - } else if (showButton.mouseClicked(mouseX, mouseY, button)) { + } else if (showButton.mouseClicked(event, doubleClick)) { return true; - } else if (button == 0) { - if (!Screen.hasShiftDown()) { + } else if (event.button() == 0) { + if (!Minecraft.getInstance().hasShiftDown()) { this.points.clear(); } - this.points.add(new PointPair(new Point(mouseX, mouseY + scrolling.scrollAmount()), null)); + this.points.add(new PointPair(new Point(event.x(), event.y() + scrolling.scrollAmount()), null)); return true; } } - return backButton.mouseClicked(mouseX, mouseY, button); + return backButton.mouseClicked(event, doubleClick); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (button == 0 && !points.isEmpty()) { + public boolean mouseReleased(MouseButtonEvent event) { + if (event.button() == 0 && !points.isEmpty()) { PointPair pair = this.points.get(points.size() - 1); if (pair.secondPoint() == null) { - this.points.set(points.size() - 1, new PointPair(pair.firstPoint(), new Point(mouseX, mouseY + scrolling.scrollAmount()))); + this.points.set(points.size() - 1, new PointPair(pair.firstPoint(), new Point(event.x(), event.y() + scrolling.scrollAmount()))); return true; } } - return super.mouseReleased(mouseX, mouseY, button); + return super.mouseReleased(event); } @Override - public boolean charTyped(char chr, int keyCode) { + public boolean charTyped(CharacterEvent event) { for (GuiEventListener element : children()) - if (element.charTyped(chr, keyCode)) + if (element.charTyped(event)) return true; - return super.charTyped(chr, keyCode); + return super.charTyped(event); } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { for (GuiEventListener element : children()) - if (element.keyPressed(keyCode, scanCode, modifiers)) + if (element.keyPressed(event)) return true; - if (Screen.isSelectAll(keyCode)) { + if (event.isSelectAll()) { this.points.clear(); this.points.add(new PointPair(new Point(-Integer.MAX_VALUE / 2, -Integer.MAX_VALUE / 2), new Point(Integer.MAX_VALUE / 2, Integer.MAX_VALUE / 2))); return true; } - if (keyCode == 256 && this.shouldCloseOnEsc()) { - this.backButton.onPress(); + if (event.key() == 256 && this.shouldCloseOnEsc()) { + this.backButton.onPress(event); return true; } return false; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/favorites/DelegatingFavoriteEntryProviderImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/favorites/DelegatingFavoriteEntryProviderImpl.java index b03176147..9d568680f 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/favorites/DelegatingFavoriteEntryProviderImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/favorites/DelegatingFavoriteEntryProviderImpl.java @@ -29,6 +29,7 @@ import me.shedaniel.rei.api.client.favorites.FavoriteMenuEntry; import me.shedaniel.rei.api.client.gui.Renderer; import me.shedaniel.rei.api.client.gui.drag.component.DraggableComponent; import me.shedaniel.rei.api.client.gui.widgets.Slot; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.Nullable; @@ -80,8 +81,8 @@ public class DelegatingFavoriteEntryProviderImpl extends FavoriteEntry { } @Override - public boolean doAction(int button) { - return getUnwrapped().doAction(button); + public boolean doAction(MouseButtonEvent event) { + return getUnwrapped().doAction(event); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java index 99e5d2dc6..b0ebdc349 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java @@ -65,6 +65,9 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionResult; import org.jetbrains.annotations.ApiStatus; @@ -317,7 +320,7 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { if (REIRuntime.getInstance().isOverlayVisible()) { menuHolder.afterRender(); } - graphics.renderDeferredTooltip(); + graphics.renderDeferredElements(); } public void renderTooltip(GuiGraphics graphics, Tooltip tooltip) { @@ -369,33 +372,33 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { if (!hasSpace()) return false; if (REIRuntime.getInstance().isOverlayVisible()) { - if (keyCode == 256 && choosePageWidget != null) { + if (event.isEscape() && choosePageWidget != null) { choosePageWidget = null; return true; } if (choosePageWidget != null) - return choosePageWidget.keyPressed(keyCode, scanCode, modifiers); - if (REIRuntimeImpl.getSearchField().keyPressed(keyCode, scanCode, modifiers)) + return choosePageWidget.keyPressed(event); + if (REIRuntimeImpl.getSearchField().keyPressed(event)) return true; for (GuiEventListener listener : widgets) - if (listener != REIRuntimeImpl.getSearchField() && listener.keyPressed(keyCode, scanCode, modifiers)) + if (listener != REIRuntimeImpl.getSearchField() && listener.keyPressed(event)) return true; } - if (ConfigObject.getInstance().getHideKeybind().matchesKey(keyCode, scanCode)) { + if (ConfigObject.getInstance().getHideKeybind().matchesKey(event.key(), event.scancode())) { REIRuntime.getInstance().toggleOverlayVisible(); return true; } EntryStack stack = ScreenRegistry.getInstance().getFocusedStack(Minecraft.getInstance().screen, PointHelper.ofMouse()); if (stack != null && !stack.isEmpty()) { stack = stack.copy(); - if (ConfigObject.getInstance().getRecipeKeybind().matchesKey(keyCode, scanCode)) { + if (ConfigObject.getInstance().getRecipeKeybind().matchesKey(event.key(), event.scancode())) { return ViewSearchBuilder.builder().addRecipesFor(stack).open(); - } else if (ConfigObject.getInstance().getUsageKeybind().matchesKey(keyCode, scanCode)) { + } else if (ConfigObject.getInstance().getUsageKeybind().matchesKey(event.key(), event.scancode())) { return ViewSearchBuilder.builder().addUsagesFor(stack).open(); - } else if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(keyCode, scanCode)) { + } else if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(event.key(), event.scancode())) { FavoriteEntry favoriteEntry = FavoriteEntry.fromEntryStack(stack); ConfigObject.getInstance().getFavoriteEntries().add(favoriteEntry); return true; @@ -403,25 +406,25 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { } if (!REIRuntime.getInstance().isOverlayVisible()) return false; - if (ConfigObject.getInstance().getFocusSearchFieldKeybind().matchesKey(keyCode, scanCode)) { + if (ConfigObject.getInstance().getFocusSearchFieldKeybind().matchesKey(event.key(), event.scancode())) { REIRuntimeImpl.getSearchField().setFocused(true); setFocused(REIRuntimeImpl.getSearchField()); REIRuntimeImpl.getSearchField().keybindFocusTime = System.currentTimeMillis(); - REIRuntimeImpl.getSearchField().keybindFocusKey = keyCode; + REIRuntimeImpl.getSearchField().keybindFocusKey = event.key(); return true; } return false; } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { + public boolean keyReleased(KeyEvent event) { if (!hasSpace()) return false; if (REIRuntime.getInstance().isOverlayVisible()) { if (choosePageWidget == null) { - if (REIRuntimeImpl.getSearchField().keyReleased(keyCode, scanCode, modifiers)) + if (REIRuntimeImpl.getSearchField().keyReleased(event)) return true; for (GuiEventListener listener : widgets) - if (listener != REIRuntimeImpl.getSearchField() && listener == getFocused() && listener.keyPressed(keyCode, scanCode, modifiers)) + if (listener != REIRuntimeImpl.getSearchField() && listener == getFocused() && listener.keyReleased(event)) return true; } } @@ -429,17 +432,17 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { } @Override - public boolean charTyped(char character, int modifiers) { + public boolean charTyped(CharacterEvent event) { if (!REIRuntime.getInstance().isOverlayVisible()) return false; if (!hasSpace()) return false; if (choosePageWidget != null) { - return choosePageWidget.charTyped(character, modifiers); + return choosePageWidget.charTyped(event); } - if (REIRuntimeImpl.getSearchField().charTyped(character, modifiers)) + if (REIRuntimeImpl.getSearchField().charTyped(event)) return true; for (GuiEventListener listener : widgets) - if (listener != REIRuntimeImpl.getSearchField() && listener.charTyped(character, modifiers)) + if (listener != REIRuntimeImpl.getSearchField() && listener.charTyped(event)) return true; return false; } @@ -450,11 +453,11 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { boolean visible = REIRuntime.getInstance().isOverlayVisible(); if (choosePageWidget != null) { - if (choosePageWidget.containsMouse(mouseX, mouseY)) { - return choosePageWidget.mouseClicked(mouseX, mouseY, button); + if (choosePageWidget.containsMouse(event.x(), event.y())) { + return choosePageWidget.mouseClicked(event, doubleClick); } else { choosePageWidget = null; init(); @@ -462,24 +465,24 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { } } if (!hasSpace()) return false; - if (visible && configButton.mouseClicked(mouseX, mouseY, button)) { + if (visible && configButton.mouseClicked(event, doubleClick)) { this.setFocused(configButton); - if (button == 0) + if (event.button() == 0) this.setDragging(true); return true; } - if (ConfigObject.getInstance().getHideKeybind().matchesMouse(button)) { + if (ConfigObject.getInstance().getHideKeybind().matchesMouse(event.button())) { REIRuntime.getInstance().toggleOverlayVisible(); return REIRuntime.getInstance().isOverlayVisible(); } EntryStack stack = ScreenRegistry.getInstance().getFocusedStack(Minecraft.getInstance().screen, PointHelper.ofMouse()); if (stack != null && !stack.isEmpty()) { stack = stack.copy(); - if (ConfigObject.getInstance().getRecipeKeybind().matchesMouse(button)) { + if (ConfigObject.getInstance().getRecipeKeybind().matchesMouse(event.button())) { return ViewSearchBuilder.builder().addRecipesFor(stack).open(); - } else if (ConfigObject.getInstance().getUsageKeybind().matchesMouse(button)) { + } else if (ConfigObject.getInstance().getUsageKeybind().matchesMouse(event.button())) { return ViewSearchBuilder.builder().addUsagesFor(stack).open(); - } else if (visible && ConfigObject.getInstance().getFavoriteKeyCode().matchesMouse(button)) { + } else if (visible && ConfigObject.getInstance().getFavoriteKeyCode().matchesMouse(event.button())) { FavoriteEntry favoriteEntry = FavoriteEntry.fromEntryStack(stack); ConfigObject.getInstance().getFavoriteEntries().add(favoriteEntry); return true; @@ -487,16 +490,16 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { } if (visible) { Widget menuWidget = menuHolder.widget(); - if (menuWidget != null && menuWidget.mouseClicked(mouseX, mouseY, button)) { + if (menuWidget != null && menuWidget.mouseClicked(event, doubleClick)) { this.setFocused(menuWidget); - if (button == 0) + if (event.button() == 0) this.setDragging(true); REIRuntimeImpl.getSearchField().setFocused(false); return true; } - if (hintsWidget.mouseClicked(mouseX, mouseY, button)) { + if (hintsWidget.mouseClicked(event, doubleClick)) { this.setFocused(hintsWidget); - if (button == 0) + if (event.button() == 0) this.setDragging(true); REIRuntimeImpl.getSearchField().setFocused(false); return true; @@ -504,7 +507,7 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { } if (ConfigObject.getInstance().areClickableRecipeArrowsEnabled()) { Screen screen = Minecraft.getInstance().screen; - ClickArea.ClickAreaContext context = createClickAreaContext(mouseX, mouseY, screen); + ClickArea.ClickAreaContext context = createClickAreaContext(event.x(), event.y(), screen); if (ScreenRegistry.getInstance().executeClickArea((Class) screen.getClass(), context)) { return true; } @@ -513,19 +516,19 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { return false; } if (draggingStack != null) { - draggingStack.mouseClicked(mouseX, mouseY, button); + draggingStack.mouseClicked(event, doubleClick); } for (GuiEventListener element : widgets) { - if (element != configButton && element != menuHolder.widget() && element != hintsWidget && element != draggingStack && element.mouseClicked(mouseX, mouseY, button)) { + if (element != configButton && element != menuHolder.widget() && element != hintsWidget && element != draggingStack && element.mouseClicked(event, doubleClick)) { this.setFocused(element); - if (button == 0) + if (event.button() == 0) this.setDragging(true); if (!(element instanceof OverlaySearchField)) REIRuntimeImpl.getSearchField().setFocused(false); return true; } } - if (ConfigObject.getInstance().getFocusSearchFieldKeybind().matchesMouse(button)) { + if (ConfigObject.getInstance().getFocusSearchFieldKeybind().matchesMouse(event.button())) { REIRuntimeImpl.getSearchField().setFocused(true); setFocused(REIRuntimeImpl.getSearchField()); REIRuntimeImpl.getSearchField().keybindFocusTime = -1; @@ -536,23 +539,23 @@ public abstract class ScreenOverlayImpl extends ScreenOverlay { } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { if (!REIRuntime.getInstance().isOverlayVisible()) return false; if (!hasSpace()) return false; if (choosePageWidget != null) { - return choosePageWidget.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return choosePageWidget.mouseDragged(event, deltaX, deltaY); } - return (this.getFocused() != null && this.isDragging() && button == 0) && this.getFocused().mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return (this.getFocused() != null && this.isDragging() && event.button() == 0) && this.getFocused().mouseDragged(event, deltaX, deltaY); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { if (draggingStack != null) { - draggingStack.mouseReleased(mouseX, mouseY, button); + draggingStack.mouseReleased(event); } - return super.mouseReleased(mouseX, mouseY, button); + return super.mouseReleased(event); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/REIConfigScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/REIConfigScreen.java index a845ea440..e29d087b8 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/REIConfigScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/REIConfigScreen.java @@ -52,10 +52,14 @@ import me.shedaniel.rei.impl.client.gui.modules.Menu; import me.shedaniel.rei.impl.client.gui.widget.HoleWidget; import me.shedaniel.rei.impl.client.gui.widget.basewidgets.TextFieldWidget; import net.minecraft.ChatFormatting; +import net.minecraft.Util; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; import org.apache.commons.lang3.mutable.Mutable; @@ -245,54 +249,54 @@ public class REIConfigScreen extends Screen implements ConfigAccess { } @Override - public boolean charTyped(char character, int modifiers) { - if (menu != null && menu.charTyped(character, modifiers)) + public boolean charTyped(CharacterEvent event) { + if (menu != null && menu.charTyped(event)) return true; for (GuiEventListener listener : children()) - if (listener.charTyped(character, modifiers)) + if (listener.charTyped(event)) return true; - return super.charTyped(character, modifiers); + return super.charTyped(event); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (menu != null && menu.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (menu != null && menu.mouseDragged(event, deltaX, deltaY)) return true; for (GuiEventListener entry : children()) - if (entry.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + if (entry.mouseDragged(event, deltaX, deltaY)) return true; - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return super.mouseDragged(event, deltaX, deltaY); } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { if (menu != null) { - if (!menu.mouseClicked(mouseX, mouseY, button)) + if (!menu.mouseClicked(event, doubleClick)) closeMenu(); return true; } if (this.focusedKeycodeOption != null && this.partialKeycode != null) { if (this.partialKeycode.isUnknown()) { - this.partialKeycode.setKeyCode(InputConstants.Type.MOUSE.getOrCreate(button)); + this.partialKeycode.setKeyCode(InputConstants.Type.MOUSE.getOrCreate(event.button())); } else if (this.partialKeycode.getType() == InputConstants.Type.KEYSYM) { Modifier modifier = this.partialKeycode.getModifier(); int code = this.partialKeycode.getKeyCode().getValue(); - if (Minecraft.ON_OSX ? code == 343 || code == 347 : code == 341 || code == 345) { + if (Util.getPlatform() == Util.OS.OSX ? code == 343 || code == 347 : code == 341 || code == 345) { this.partialKeycode.setModifier(Modifier.of(modifier.hasAlt(), true, modifier.hasShift())); - this.partialKeycode.setKeyCode(InputConstants.Type.MOUSE.getOrCreate(button)); + this.partialKeycode.setKeyCode(InputConstants.Type.MOUSE.getOrCreate(event.button())); return true; } if (code == 344 || code == 340) { this.partialKeycode.setModifier(Modifier.of(modifier.hasAlt(), modifier.hasControl(), true)); - this.partialKeycode.setKeyCode(InputConstants.Type.MOUSE.getOrCreate(button)); + this.partialKeycode.setKeyCode(InputConstants.Type.MOUSE.getOrCreate(event.button())); return true; } if (code == 342 || code == 346) { this.partialKeycode.setModifier(Modifier.of(true, modifier.hasControl(), modifier.hasShift())); - this.partialKeycode.setKeyCode(InputConstants.Type.MOUSE.getOrCreate(button)); + this.partialKeycode.setKeyCode(InputConstants.Type.MOUSE.getOrCreate(event.button())); return true; } } @@ -300,7 +304,7 @@ public class REIConfigScreen extends Screen implements ConfigAccess { return true; } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubleClick); } @Override @@ -323,8 +327,8 @@ public class REIConfigScreen extends Screen implements ConfigAccess { } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (menu != null && menu.mouseReleased(mouseX, mouseY, button)) + public boolean mouseReleased(MouseButtonEvent event) { + if (menu != null && menu.mouseReleased(event)) return true; if (this.focusedKeycodeOption != null && this.partialKeycode != null && !this.partialKeycode.isUnknown()) { this.set(this.focusedKeycodeOption, this.partialKeycode); @@ -332,9 +336,9 @@ public class REIConfigScreen extends Screen implements ConfigAccess { return true; } for (GuiEventListener entry : children()) - if (entry.mouseReleased(mouseX, mouseY, button)) + if (entry.mouseReleased(event)) return true; - return super.mouseReleased(mouseX, mouseY, button); + return super.mouseReleased(event); } @Override @@ -348,45 +352,45 @@ public class REIConfigScreen extends Screen implements ConfigAccess { } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { if (this.focusedKeycodeOption != null) { - if (keyCode != 256) { + if (event.key() != 256) { if (this.partialKeycode.isUnknown()) { - this.partialKeycode.setKeyCode(InputConstants.getKey(keyCode, scanCode)); + this.partialKeycode.setKeyCode(InputConstants.getKey(event)); } else { Modifier modifier = this.partialKeycode.getModifier(); if (this.partialKeycode.getType() == InputConstants.Type.KEYSYM) { int code = this.partialKeycode.getKeyCode().getValue(); - if (Minecraft.ON_OSX ? code == 343 || code == 347 : code == 341 || code == 345) { + if (Util.getPlatform() == Util.OS.OSX ? code == 343 || code == 347 : code == 341 || code == 345) { this.partialKeycode.setModifier(Modifier.of(modifier.hasAlt(), true, modifier.hasShift())); - this.partialKeycode.setKeyCode(InputConstants.getKey(keyCode, scanCode)); + this.partialKeycode.setKeyCode(InputConstants.getKey(event)); return true; } if (code == 344 || code == 340) { this.partialKeycode.setModifier(Modifier.of(modifier.hasAlt(), modifier.hasControl(), true)); - this.partialKeycode.setKeyCode(InputConstants.getKey(keyCode, scanCode)); + this.partialKeycode.setKeyCode(InputConstants.getKey(event)); return true; } if (code == 342 || code == 346) { this.partialKeycode.setModifier(Modifier.of(true, modifier.hasControl(), modifier.hasShift())); - this.partialKeycode.setKeyCode(InputConstants.getKey(keyCode, scanCode)); + this.partialKeycode.setKeyCode(InputConstants.getKey(event)); return true; } } - if (Minecraft.ON_OSX ? keyCode == 343 || keyCode == 347 : keyCode == 341 || keyCode == 345) { + if (event.hasControlDown()) { this.partialKeycode.setModifier(Modifier.of(modifier.hasAlt(), true, modifier.hasShift())); return true; } - if (keyCode == 344 || keyCode == 340) { + if (event.hasShiftDown()) { this.partialKeycode.setModifier(Modifier.of(modifier.hasAlt(), modifier.hasControl(), true)); return true; } - if (keyCode == 342 || keyCode == 346) { + if (event.hasAltDown()) { this.partialKeycode.setModifier(Modifier.of(true, modifier.hasControl(), modifier.hasShift())); return true; } @@ -399,18 +403,18 @@ public class REIConfigScreen extends Screen implements ConfigAccess { return true; } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { + public boolean keyReleased(KeyEvent event) { if (this.focusedKeycodeOption != null && this.partialKeycode != null) { this.set(this.focusedKeycodeOption, this.partialKeycode); this.focusKeycode(null); return true; } - return super.keyReleased(keyCode, scanCode, modifiers); + return super.keyReleased(event); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/components/ConfigSearchWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/components/ConfigSearchWidget.java index 5d31a6206..e7dc4435e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/components/ConfigSearchWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/components/ConfigSearchWidget.java @@ -37,6 +37,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.resources.ResourceLocation; import java.util.*; @@ -73,7 +74,7 @@ public class ConfigSearchWidget { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { Widgets.produceClickSound(); ((REIConfigScreen) Minecraft.getInstance().screen).setSearching(true); return true; @@ -115,7 +116,7 @@ public class ConfigSearchWidget { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { Widgets.produceClickSound(); ((REIConfigScreen) Minecraft.getInstance().screen).setSearching(true); return true; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/configure/PanelBoundariesConfiguration.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/configure/PanelBoundariesConfiguration.java index b90ca9a37..1f3d3cab5 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/configure/PanelBoundariesConfiguration.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/configure/PanelBoundariesConfiguration.java @@ -41,6 +41,7 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.AbstractSliderButton; import net.minecraft.client.gui.components.Checkbox; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.KeyEvent; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; @@ -105,16 +106,16 @@ public enum PanelBoundariesConfiguration implements OptionValueEntry.Configurato } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (horizontalUsePercentage) return super.keyPressed(keyCode, scanCode, modifiers); - boolean leftArrow = keyCode == 263; + public boolean keyPressed(KeyEvent event) { + if (horizontalUsePercentage) return super.keyPressed(event); + boolean leftArrow = event.key() == 263; double newValue; if (leftArrow) { newValue = Mth.clamp((valueToLimit(value, 50) - 1) / 50.0, 0, 1); - } else if (keyCode == 262) { + } else if (event.key() == 262) { newValue = Mth.clamp((valueToLimit(value, 50) + 1) / 50.0, 0, 1); } else { - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } if (newValue != value) { @@ -167,16 +168,16 @@ public enum PanelBoundariesConfiguration implements OptionValueEntry.Configurato } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (verticalUsePercentage) return super.keyPressed(keyCode, scanCode, modifiers); - boolean leftArrow = keyCode == 263; + public boolean keyPressed(KeyEvent event) { + if (verticalUsePercentage) return super.keyPressed(event); + boolean leftArrow = event.key() == 263; double newValue; if (leftArrow) { newValue = Mth.clamp((valueToLimit(value, 1000) - 1) / 1000.0, 0, 1); - } else if (keyCode == 262) { + } else if (event.key() == 262) { newValue = Mth.clamp((valueToLimit(value, 1000) + 1) / 1000.0, 0, 1); } else { - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } if (newValue != value) { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java index b198b0b25..020b7aa9f 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsEntryListWidget.java @@ -30,6 +30,7 @@ import net.minecraft.Util; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.narration.NarratableEntry; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvents; @@ -176,8 +177,8 @@ public class CreditsEntryListWidget extends UpdatedListWidget hoveredStack = provider.getHovered(this, mouseX, mouseY); + DraggableComponent hoveredStack = provider.getHovered(this, event.x(), event.y()); if (hoveredStack != null) { - entry = new DraggableEntry(hoveredStack, new Point(mouseX, mouseY)); + entry = new DraggableEntry(hoveredStack, new Point(event.x(), event.y())); } return false; } @Override - public boolean mouseReleased(double d, double e, int i) { - if (i != 0) { + public boolean mouseReleased(MouseButtonEvent event) { + if (event.button() != 0) { return false; } drop(); @@ -167,8 +168,8 @@ public class CurrentDraggingStack extends Widget implements LateRenderable, Drag } @Override - public boolean mouseDragged(double mouseX1, double mouseY1, int button, double mouseX2, double mouseY2) { - return button == 0 && entry != null && entry.dragging; + public boolean mouseDragged(MouseButtonEvent event, double mouseX2, double mouseY2) { + return event.button() == 0 && entry != null && entry.dragging; } public boolean drop() { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsEntryListWidget.java index 3cf51dce1..ead3b9bc2 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsEntryListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsEntryListWidget.java @@ -35,6 +35,7 @@ import net.minecraft.client.gui.components.events.ContainerEventHandler; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.narration.NarratableEntry; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.renderer.texture.DynamicTexture; import net.minecraft.client.resources.sounds.SimpleSoundInstance; @@ -234,21 +235,21 @@ public class ErrorsEntryListWidget extends DynamicSmoothScrollingEntryListWidget } @Override - public boolean mouseClicked(double d, double e, int i) { - Vector3f mouse = transformMouse(d, e); - return super.mouseClicked(mouse.x(), mouse.y(), i); + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { + Vector3f mouse = transformMouse(event.x(), event.y()); + return super.mouseClicked(new MouseButtonEvent(mouse.x(), mouse.y(), event.buttonInfo()), doubleClick); } @Override - public boolean mouseReleased(double d, double e, int i) { - Vector3f mouse = transformMouse(d, e); - return super.mouseReleased(mouse.x(), mouse.y(), i); + public boolean mouseReleased(MouseButtonEvent event) { + Vector3f mouse = transformMouse(event.x(), event.y()); + return super.mouseReleased(new MouseButtonEvent(mouse.x(), mouse.y(), event.buttonInfo())); } @Override - public boolean mouseDragged(double d, double e, int i, double f, double g) { - Vector3f mouse = transformMouse(d, e); - return super.mouseDragged(mouse.x(), mouse.y(), i, f, g); + public boolean mouseDragged(MouseButtonEvent event, double f, double g) { + Vector3f mouse = transformMouse(event.x(), event.y()); + return super.mouseDragged(new MouseButtonEvent(mouse.x(), mouse.y(), event.buttonInfo()), f, g); } @Override @@ -328,16 +329,16 @@ public class ErrorsEntryListWidget extends DynamicSmoothScrollingEntryListWidget } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (button == 0) { - Style style = this.getTextAt(mouseX, mouseY); + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { + if (event.button() == 0) { + Style style = this.getTextAt(event.x(), event.y()); if (style != null && style.getClickEvent() != null) { Minecraft.getInstance().screen.handleComponentClicked(style); return true; } } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubleClick); } @Nullable @@ -449,8 +450,8 @@ public class ErrorsEntryListWidget extends DynamicSmoothScrollingEntryListWidget } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (contains && button == 0) { + public boolean mouseClicked(MouseButtonEvent event, boolea