diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..cb3eaeca4 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,2 @@ +[*.java] +ij_java_keep_indents_on_empty_lines = true diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java index e0e12524c..4ace71982 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/DelegateWidget.java @@ -26,6 +26,10 @@ import me.shedaniel.math.Rectangle; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; +import net.minecraft.network.chat.ClickEvent; import org.jetbrains.annotations.Nullable; import java.util.Collections; @@ -88,31 +92,31 @@ public boolean isDragging() { public boolean mouseScrolled(double mouseX, double mouseY, double amountX, double amountY) { return delegate().mouseScrolled(mouseX, mouseY, amountX, amountY); } - + @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - return delegate().keyPressed(keyCode, scanCode, modifiers); + public boolean keyPressed(KeyEvent keyEvent) { + return delegate().keyPressed(keyEvent); } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { - return delegate().keyReleased(keyCode, scanCode, modifiers); + public boolean keyReleased(KeyEvent keyEvent) { + return delegate().keyReleased(keyEvent); } @Override - public boolean charTyped(char character, int modifiers) { - return delegate().charTyped(character, modifiers); + public boolean charTyped(CharacterEvent characterEvent) { + return delegate().charTyped(characterEvent); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - return delegate().mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + return delegate().mouseDragged(event, deltaX, deltaY); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { this.setDragging(false); - return delegate().mouseReleased(mouseX, mouseY, button); + return delegate().mouseReleased(event); } @Override diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widget.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widget.java index 8a3c01f77..944a10130 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widget.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Widget.java @@ -34,6 +34,7 @@ import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Renderable; +import net.minecraft.client.input.MouseButtonEvent; import org.jetbrains.annotations.ApiStatus; import org.joml.Matrix3x2f; import org.joml.Vector3f; @@ -81,6 +82,10 @@ public static Point translateMouse(Matrix3x2f pose) { return pushMouse(new Point(mouseVec.x(), mouseVec.y())); } + public boolean containsMouse(MouseButtonEvent event) { + return containsMouse(event.x(), event.y()); + } + public boolean containsMouse(double mouseX, double mouseY) { return false; } diff --git a/build.gradle b/build.gradle index da3e9d952..7a5e0c97e 100755 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id("architectury-plugin") version("3.4-SNAPSHOT") - id("dev.architectury.loom") version("1.10-SNAPSHOT") apply false + id("dev.architectury.loom") version("1.11-SNAPSHOT") apply false id("org.cadixdev.licenser") version("0.6.1") id("me.shedaniel.unified-publishing") version("0.1.+") id("maven-publish") diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java index 78bc3e856..4f588ee53 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java @@ -44,6 +44,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; @@ -154,17 +155,17 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (scrolling.updateDraggingState(event.x(), event.y(), event.button())) return true; - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (scrolling.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (scrolling.mouseDragged(event.x(), event.y(), event.button(), deltaX, deltaY)) return true; - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return super.mouseDragged(event, deltaX, deltaY); } @Override diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconBaseCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconBaseCategory.java index 7479fe72c..f6a3155d1 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconBaseCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconBaseCategory.java @@ -41,6 +41,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; +import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; import net.minecraft.world.level.block.Blocks; @@ -136,17 +138,17 @@ public Rectangle getBounds() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (scrolling.updateDraggingState(event.x(), event.y(), event.button())) return true; - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (scrolling.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (scrolling.mouseDragged(event.x(), event.y(), event.button(), deltaX, deltaY)) return true; - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return super.mouseDragged(event, deltaX, deltaY); } @Override diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconPaymentCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconPaymentCategory.java index ca88e7667..887f5c8f8 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconPaymentCategory.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/beacon/DefaultBeaconPaymentCategory.java @@ -41,6 +41,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; import net.minecraft.world.level.block.Blocks; @@ -136,17 +137,17 @@ public Rectangle getBounds() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (scrolling.updateDraggingState(event.x(), event.y(), event.button())) return true; - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (scrolling.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (scrolling.mouseDragged(event.x(), event.y(), event.button(), deltaX, deltaY)) return true; - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return super.mouseDragged(event, deltaX, deltaY); } @Override diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/TagTreeWidget.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/TagTreeWidget.java index 6a3c25514..a4005f254 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/TagTreeWidget.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/TagTreeWidget.java @@ -30,6 +30,8 @@ import me.shedaniel.rei.plugin.common.displays.tag.TagNode; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.core.Holder; import java.util.ArrayList; @@ -104,22 +106,22 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - return super.mouseClicked(mouseX, mouseY, button); + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + return super.mouseClicked(event, doubled); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { for (GuiEventListener element : children()) - if (element.mouseReleased(mouseX, mouseY, button)) + if (element.mouseReleased(event)) return true; return false; } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent keyEvent) { for (GuiEventListener element : children()) - if (element.keyPressed(keyCode, scanCode, modifiers)) + if (element.keyPressed(keyEvent)) return true; return false; } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/ValueTagNodeWidget.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/ValueTagNodeWidget.java index d5537063c..44edbad60 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/ValueTagNodeWidget.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/tag/ValueTagNodeWidget.java @@ -32,6 +32,8 @@ import me.shedaniel.rei.plugin.common.displays.tag.TagNode; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; import org.joml.Matrix3x2f; @@ -103,17 +105,17 @@ public List children() { } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { for (GuiEventListener element : children()) - if (element.mouseReleased(mouseX, mouseY, button)) + if (element.mouseReleased(event)) return true; return false; } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent keyEvent) { for (GuiEventListener element : children()) - if (element.keyPressed(keyCode, scanCode, modifiers)) + if (element.keyPressed(keyEvent)) return true; return false; } diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java index 161b3deda..d0be194a8 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/GameModeFavoriteEntry.java @@ -41,11 +41,13 @@ 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.client.resources.sounds.SimpleSoundInstance; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.CommonColors; import net.minecraft.world.level.GameType; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.Nullable; @@ -270,11 +272,11 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { if (disabled) { s = ChatFormatting.STRIKETHROUGH + s; } - graphics.drawString(font, s, x + 2, y + 2, selected && !disabled ? 16777215 : 8947848, false); + graphics.drawString(font, s, x + 2, y + 2, selected && !disabled ? CommonColors.WHITE : 0xFF888888, false); } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { Minecraft.getInstance().player.connection.sendCommand(StringUtils.removeStart(ConfigObject.getInstance().getGamemodeCommand().replaceAll("\\{gamemode}", gameMode.name().toLowerCase(Locale.ROOT)), "/")); minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); closeMenu(); diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/TimeFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/TimeFavoriteEntry.java index ef2fcdec6..e009bdc90 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/TimeFavoriteEntry.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/TimeFavoriteEntry.java @@ -39,6 +39,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.resources.language.I18n; @@ -47,6 +48,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.CommonColors; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.Nullable; @@ -295,11 +297,11 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { if (selected && containsMouse) { REIRuntime.getInstance().queueTooltip(Tooltip.create(Component.translatable("text.rei.time_button.tooltip.entry", text))); } - graphics.drawString(font, text, x + 2, y + 2, selected ? 16777215 : 8947848, false); + graphics.drawString(font, text, x + 2, y + 2, selected ? CommonColors.WHITE : 0xFF888888, false); } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { Minecraft.getInstance().player.connection.sendCommand(StringUtils.removeStart(ConfigObject.getInstance().getTimeCommand().replaceAll("\\{time}", time.getPart().toLowerCase(Locale.ROOT)), "/")); minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); closeMenu(); diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java index d20ea2939..47e8ec914 100644 --- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java +++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/favorites/WeatherFavoriteEntry.java @@ -39,6 +39,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.resources.language.I18n; @@ -47,6 +48,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.CommonColors; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -304,11 +306,11 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { if (selected && containsMouse) { REIRuntime.getInstance().queueTooltip(Tooltip.create(Component.translatable("text.rei.weather_button.tooltip.entry", text))); } - graphics.drawString(font, text, x + 2, y + 2, selected ? 16777215 : 8947848, false); + graphics.drawString(font, text, x + 2, y + 2, selected ? CommonColors.WHITE : 0xFF888888, false); } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { Minecraft.getInstance().player.connection.sendCommand(StringUtils.removeStart(ConfigObject.getInstance().getWeatherCommand().replaceAll("\\{weather}", weather.name().toLowerCase(Locale.ROOT)), "/")); minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); closeMenu(); diff --git a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinInputConstants.java b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinInputConstants.java index a32dbe0f4..24432a156 100644 --- a/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinInputConstants.java +++ b/fabric/src/main/java/me/shedaniel/rei/mixin/fabric/MixinInputConstants.java @@ -24,6 +24,7 @@ package me.shedaniel.rei.mixin.fabric; import com.mojang.blaze3d.platform.InputConstants; +import com.mojang.blaze3d.platform.Window; import com.mojang.blaze3d.systems.RenderSystem; import me.shedaniel.rei.api.client.config.ConfigObject; import org.spongepowered.asm.mixin.Mixin; @@ -35,7 +36,7 @@ @Mixin(InputConstants.class) public class MixinInputConstants { @Inject(method = "isKeyDown", at = @At("HEAD"), cancellable = true) - private static void isKeyDown(long windowId, int key, CallbackInfoReturnable cir) { + private static void isKeyDown(Window window, int i, CallbackInfoReturnable cir) { if (isPatchingAsyncThreadCrash() && !RenderSystem.isOnRenderThread()) { cir.setReturnValue(false); } diff --git a/fabric/src/main/resources/error_notifier.json b/fabric/src/main/resources/error_notifier.json index 4c0867265..f22e66eec 100644 --- a/fabric/src/main/resources/error_notifier.json +++ b/fabric/src/main/resources/error_notifier.json @@ -12,14 +12,14 @@ "type": "depends", "modId": "architectury", "modName": "Architectury API", - "versions": ">=17.0.0 <18.0.0", + "versions": ">=18.0.0 <19.0.0", "url": "https://www.curseforge.com/minecraft/mc-mods/architectury-api/" }, { "type": "depends", "modId": "cloth-config2", "modName": "Cloth Config", - "versions": ">=19.0.0 <20.0.0", + "versions": ">=20.0.0 <21.0.0", "url": "https://www.curseforge.com/minecraft/mc-mods/cloth-config/" } ] diff --git a/fabric/src/main/resources/roughlyenoughitems.accessWidener b/fabric/src/main/resources/roughlyenoughitems.accessWidener index 5dcf72cba..fe916005a 100644 --- a/fabric/src/main/resources/roughlyenoughitems.accessWidener +++ b/fabric/src/main/resources/roughlyenoughitems.accessWidener @@ -17,7 +17,7 @@ accessible field net/minecraft/world/item/alchemy/PotionBrewing containerMixes L accessible field net/minecraft/world/item/alchemy/PotionBrewing potionMixes Ljava/util/List; accessible method net/minecraft/client/gui/screens/Screen init ()V accessible method net/minecraft/client/gui/screens/Screen insertText (Ljava/lang/String;Z)V -accessible method net/minecraft/client/gui/screens/Screen isValidCharacterForName (Ljava/lang/String;CI)Z +#accessible method net/minecraft/client/gui/screens/Screen isValidCharacterForName (Ljava/lang/String;CI)Z accessible field net/minecraft/client/gui/screens/inventory/AbstractContainerScreen draggingItem Lnet/minecraft/world/item/ItemStack; mutable field net/minecraft/client/gui/screens/inventory/AbstractContainerScreen draggingItem Lnet/minecraft/world/item/ItemStack; extendable method net/minecraft/client/gui/screens/Screen init (Lnet/minecraft/client/Minecraft;II)V diff --git a/gradle.properties b/gradle.properties index 8daa9affd..d405c7a8a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,16 +1,16 @@ org.gradle.jvmargs=-Xmx6G -base_version=20.0 +base_version=21.0 unstable=false -supported_version=1.21.6/7 -minecraft_version=1.21.6 +supported_version=1.21.9/10 +minecraft_version=1.21.9 platforms=fabric,neoforge forge_version=49.1.10 -neoforge_version=21.6.19-beta +neoforge_version=21.9.0-beta neoforge_pr= -fabricloader_version=0.16.14 -cloth_config_version=19.0.147 +fabricloader_version=0.17.3 +cloth_config_version=20.0.148 modmenu_version=15.0.0-beta.3 -fabric_api=0.128.1+1.21.6 -architectury_version=17.0.6 +fabric_api=0.134.0+1.21.9 +architectury_version=18.0.5 api_exculde= #api_include=me.shedaniel.cloth:cloth-events,me.shedaniel.cloth:config-2,me.sargunvohra.mcmods:autoconfig1u,org.jetbrains:annotations,net.fabricmc.fabric-api:fabric diff --git a/runtime/src/main/java/me/shedaniel/rei/REIModMenuEntryPoint.java b/runtime/src/main/java/me/shedaniel/rei/REIModMenuEntryPoint.java index 39a855848..a645d7ef9 100644 --- a/runtime/src/main/java/me/shedaniel/rei/REIModMenuEntryPoint.java +++ b/runtime/src/main/java/me/shedaniel/rei/REIModMenuEntryPoint.java @@ -28,6 +28,7 @@ public class REIModMenuEntryPoint { public void onInitializeClient() { - Platform.getMod("roughlyenoughitems").registerConfigurationScreen(ConfigManager.getInstance()::getConfigScreen); + // TODO - 1.21.9 fix +// Platform.getMod("roughlyenoughitems").registerConfigurationScreen(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..06c12e670 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -156,12 +156,13 @@ public void onInitialize() { LifecycleEvent.SERVER_STARTED.register(server -> { ReloadManagerImpl.reloadPlugins(null, ReloadInterruptionContext.ofNever()); }); - ReloadListenerRegistry.register(PackType.SERVER_DATA, (preparationBarrier, resourceManager, executor, executor2) -> { - return preparationBarrier.wait(Unit.INSTANCE).thenRunAsync(() -> { - if (GameInstance.getServer() == null) return; - ReloadManagerImpl.reloadPlugins(null, ReloadInterruptionContext.ofNever()); - }, executor2); - }, ResourceLocation.fromNamespaceAndPath("roughlyenoughitems", "reload_plugins")); + // TODO: 1.21.9 - fix +// ReloadListenerRegistry.register(PackType.SERVER_DATA, (preparationBarrier, resourceManager, executor, executor2) -> { +// return preparationBarrier.wait(Unit.INSTANCE).thenRunAsync(() -> { +// if (GameInstance.getServer() == null) return; +// ReloadManagerImpl.reloadPlugins(null, ReloadInterruptionContext.ofNever()); +// }, executor2); +// }, ResourceLocation.fromNamespaceAndPath("roughlyenoughitems", "reload_plugins")); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java index 107522bc4..081c15128 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 @@ private void registerEvents() { 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, doubled) -> { 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, doubled)) { + if (event.button() == 0) { screen.setDragging(true); } resetFocused(screen); @@ -390,12 +390,12 @@ private void registerEvents() { } 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 @@ && resetFocused(screen)) 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 @@ && resetFocused(screen)) } } 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, dx, dy) -> { if (shouldReturn(screen) || screen instanceof DisplayScreen) return EventResult.pass(); resetFocused(screen); - if (getOverlay().mouseDragged(mouseX1, mouseY1, button, mouseX2, mouseY2) + if (getOverlay().mouseDragged(event, dx, dy) && 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 @@ && resetFocused(screen)) } } 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 @@ && resetFocused(screen)) } } 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..6a08366e2 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java @@ -27,6 +27,7 @@ import dev.architectury.networking.transformers.SplitPacketTransformer; import dev.architectury.platform.Platform; import dev.architectury.utils.Env; +import dev.architectury.utils.GameInstance; import io.netty.buffer.Unpooled; import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.display.Display; @@ -48,6 +49,7 @@ import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.Mth; import net.minecraft.world.Container; @@ -74,7 +76,9 @@ 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()) { + MinecraftServer server = GameInstance.getServer(); + assert server != null; + if (player.getPermissionLevel() < server.operatorUserPermissionLevel()) { player.displayClientMessage(Component.translatable("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); return; } @@ -86,7 +90,9 @@ public static void onInitialize() { }); 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()) { + MinecraftServer server = GameInstance.getServer(); + assert server != null; + if (player.getPermissionLevel() < server.operatorUserPermissionLevel()) { player.displayClientMessage(Component.translatable("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); return; } @@ -102,7 +108,9 @@ public static void onInitialize() { }); 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()) { + MinecraftServer server = GameInstance.getServer(); + assert server != null; + if (player.getPermissionLevel() < server.operatorUserPermissionLevel()) { player.displayClientMessage(Component.translatable("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); return; } @@ -124,7 +132,9 @@ public static void onInitialize() { }); 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()) { + MinecraftServer server = GameInstance.getServer(); + assert server != null; + if (player.getPermissionLevel() < server.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/addon/ConfigAddonsScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java index 2bc1e1f5a..0bd480d7a 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/addon/ConfigAddonsScreen.java @@ -39,6 +39,7 @@ import net.minecraft.locale.Language; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; +import net.minecraft.util.CommonColors; import org.jetbrains.annotations.Nullable; import java.util.Collections; @@ -74,7 +75,7 @@ public void init() { public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { this.rulesList.render(graphics, mouseX, mouseY, delta); super.render(graphics, mouseX, mouseY, delta); - graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1); + graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, CommonColors.WHITE); } public static class AddonsList extends UpdatedListWidget { @@ -143,9 +144,9 @@ public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth int i = client.font.width(title); if (i > entryWidth - 28) { FormattedText titleTrimmed = FormattedText.composite(client.font.substrByWidth(title, entryWidth - 28 - client.font.width("...")), FormattedText.of("...")); - graphics.drawString(client.font, Language.getInstance().getVisualOrder(titleTrimmed), x + 2, y + 1, 16777215); + graphics.drawString(client.font, Language.getInstance().getVisualOrder(titleTrimmed), x + 2, y + 1, CommonColors.WHITE); } else { - graphics.drawString(client.font, title.getVisualOrderText(), x + 2, y + 1, 16777215); + graphics.drawString(client.font, title.getVisualOrderText(), x + 2, y + 1, CommonColors.WHITE); } } { @@ -153,9 +154,9 @@ public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth int i = client.font.width(subtitle); if (i > entryWidth - 28) { FormattedText subtitleTrimmed = FormattedText.composite(client.font.substrByWidth(subtitle, entryWidth - 28 - client.font.width("...")), FormattedText.of("...")); - graphics.drawString(client.font, Language.getInstance().getVisualOrder(subtitleTrimmed), x + 2, y + 12, 8421504); + graphics.drawString(client.font, Language.getInstance().getVisualOrder(subtitleTrimmed), x + 2, y + 12, CommonColors.GRAY); } else { - graphics.drawString(client.font, subtitle.getVisualOrderText(), x + 2, y + 12, 8421504); + graphics.drawString(client.font, subtitle.getVisualOrderText(), x + 2, y + 12, CommonColors.GRAY); } } configureButton.setX(x + entryWidth - 25); 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..70869413d 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,11 +37,13 @@ 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; import net.minecraft.network.chat.FormattedText; import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.CommonColors; import java.util.*; import java.util.function.Supplier; @@ -110,7 +112,7 @@ public void resetListEntries() { public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { super.render(graphics, mouseX, mouseY, delta); this.listWidget.render(graphics, mouseX, mouseY, delta); - graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1); + graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, CommonColors.WHITE); } @Override @@ -141,10 +143,10 @@ protected int addItem(ListEntry item) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (super.mouseClicked(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (super.mouseClicked(event, doubled)) 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); @@ -249,16 +251,16 @@ public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth } Minecraft client = Minecraft.getInstance(); - configuration.getCategory().getIcon().render(graphics, new Rectangle(x + 2, y, 16, 16), mouseY, mouseY, delta); + configuration.getCategory().getIcon().render(graphics, new Rectangle(x + 2, y, 16, 16), mouseX, mouseY, delta); int xPos = x + 22; { Component title = configuration.getCategory().getTitle(); int i = client.font.width(title); if (i > entryWidth - 28) { FormattedText titleTrimmed = FormattedText.composite(client.font.substrByWidth(title, entryWidth - 28 - client.font.width("...")), FormattedText.of("...")); - graphics.drawString(client.font, Language.getInstance().getVisualOrder(titleTrimmed), x + 2, y + 1, 16777215); + graphics.drawString(client.font, Language.getInstance().getVisualOrder(titleTrimmed), x + 2, y + 1, CommonColors.WHITE); } else { - graphics.drawString(client.font, title.getVisualOrderText(), xPos, y + 1, 16777215); + graphics.drawString(client.font, title.getVisualOrderText(), xPos, y + 1, CommonColors.WHITE); } } { @@ -267,16 +269,16 @@ public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth int i = client.font.width(id); if (i > entryWidth - 28) { FormattedText idTrimmed = FormattedText.composite(client.font.substrByWidth(id, entryWidth - 28 - client.font.width("...")), FormattedText.of("...")); - graphics.drawString(client.font, Language.getInstance().getVisualOrder(idTrimmed), x + 2, y + 12, 8421504); + graphics.drawString(client.font, Language.getInstance().getVisualOrder(idTrimmed), x + 2, y + 12, CommonColors.GRAY); } else { - graphics.drawString(client.font, id.getVisualOrderText(), xPos, y + 12, 8421504); + graphics.drawString(client.font, id.getVisualOrderText(), xPos, y + 12, CommonColors.GRAY); } } boolean shown = !hiddenCategories.contains(configuration.getCategoryIdentifier()); { Component subtitle = Component.translatable("config.roughlyenoughitems.configureCategories.visibility." + shown) .withStyle(shown ? ChatFormatting.GREEN : ChatFormatting.RED); - graphics.drawString(client.font, subtitle, xPos, y + 22, 8421504); + graphics.drawString(client.font, subtitle, xPos, y + 22, CommonColors.GRAY); int i = xPos + client.font.width(subtitle); visibilityToggleButton.getPoint().setLocation(i + 3, y + 22); visibilityToggleButton.render(graphics, mouseX, mouseY, delta); @@ -284,7 +286,7 @@ public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth if (shown) { Component subtitle = Component.translatable("config.roughlyenoughitems.filtering.filteringQuickCraftCategories.configure." + filteringQuickCraftCategories.getOrDefault(configuration.getCategoryIdentifier(), configuration.isQuickCraftingEnabledByDefault())) .withStyle(ChatFormatting.GRAY); - graphics.drawString(client.font, subtitle, xPos, y + 32, 8421504); + graphics.drawString(client.font, subtitle, xPos, y + 32, CommonColors.GRAY); int i = xPos + client.font.width(subtitle); quickCraftToggleButton.getPoint().setLocation(i + 3, y + 32); quickCraftToggleButton.render(graphics, mouseX, mouseY, delta); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java index 809aa2d17..37b0bec46 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/entries/FilteringAddRuleScreen.java @@ -36,6 +36,7 @@ import net.minecraft.locale.Language; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; +import net.minecraft.util.CommonColors; import java.util.Collections; import java.util.List; @@ -76,7 +77,7 @@ public void init() { public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { super.render(graphics, mouseX, mouseY, delta); this.rulesList.render(graphics, mouseX, mouseY, delta); - graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1); + graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, CommonColors.WHITE); } @Override @@ -152,9 +153,9 @@ public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth int i = client.font.width(title); if (i > entryWidth - 28) { FormattedText titleTrimmed = FormattedText.composite(client.font.substrByWidth(title, entryWidth - 28 - client.font.width("...")), FormattedText.of("...")); - graphics.drawString(client.font, Language.getInstance().getVisualOrder(titleTrimmed), x + 2, y + 1, 16777215); + graphics.drawString(client.font, Language.getInstance().getVisualOrder(titleTrimmed), x + 2, y + 1, CommonColors.WHITE); } else { - graphics.drawString(client.font, title.getVisualOrderText(), x + 2, y + 1, 16777215); + graphics.drawString(client.font, title.getVisualOrderText(), x + 2, y + 1, CommonColors.WHITE); } } { @@ -162,9 +163,9 @@ public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth int i = client.font.width(subtitle); if (i > entryWidth - 28) { FormattedText subtitleTrimmed = FormattedText.composite(client.font.substrByWidth(subtitle, entryWidth - 28 - client.font.width("...")), FormattedText.of("...")); - graphics.drawString(client.font, Language.getInstance().getVisualOrder(subtitleTrimmed), x + 2, y + 12, 8421504); + graphics.drawString(client.font, Language.getInstance().getVisualOrder(subtitleTrimmed), x + 2, y + 12, CommonColors.GRAY); } else { - graphics.drawString(client.font, subtitle.getVisualOrderText(), x + 2, y + 12, 8421504); + graphics.drawString(client.font, subtitle.getVisualOrderText(), x + 2, y + 12, CommonColors.GRAY); } } addButton.setX(x + entryWidth - 25); 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..923cff157 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,12 +45,14 @@ 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; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.CommonColors; import java.util.*; import java.util.function.Consumer; @@ -107,7 +109,7 @@ public void init() { public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { super.render(graphics, mouseX, mouseY, delta); this.rulesList.render(graphics, mouseX, mouseY, delta); - graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1); + graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, CommonColors.WHITE); } @Override @@ -133,10 +135,10 @@ protected int addItem(RuleEntry item) { } @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 doubled) { + if (super.mouseClicked(event, doubled)) 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); @@ -213,9 +215,9 @@ public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth int i = client.font.width(title); if (i > entryWidth - 28) { FormattedText titleTrimmed = FormattedText.composite(client.font.substrByWidth(title, entryWidth - 28 - client.font.width("...")), FormattedText.of("...")); - graphics.drawString(client.font, Language.getInstance().getVisualOrder(titleTrimmed), x + 2, y + 1, 16777215); + graphics.drawString(client.font, Language.getInstance().getVisualOrder(titleTrimmed), x + 2, y + 1, CommonColors.WHITE); } else { - graphics.drawString(client.font, title.getVisualOrderText(), x + 2, y + 1, 16777215); + graphics.drawString(client.font, title.getVisualOrderText(), x + 2, y + 1, CommonColors.WHITE); } } { @@ -223,9 +225,9 @@ public void render(GuiGraphics graphics, int index, int y, int x, int entryWidth int i = client.font.width(subtitle); if (i > entryWidth - 28) { FormattedText subtitleTrimmed = FormattedText.composite(client.font.substrByWidth(subtitle, entryWidth - 28 - client.font.width("...")), FormattedText.of("...")); - graphics.drawString(client.font, Language.getInstance().getVisualOrder(subtitleTrimmed), x + 2, y + 12, 8421504); + graphics.drawString(client.font, Language.getInstance().getVisualOrder(subtitleTrimmed), x + 2, y + 12, CommonColors.GRAY); } else { - graphics.drawString(client.font, subtitle.getVisualOrderText(), x + 2, y + 12, 8421504); + graphics.drawString(client.font, subtitle.getVisualOrderText(), x + 2, y + 12, CommonColors.GRAY); } } configureButton.setX(x + entryWidth - 25); 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..bede38802 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,7 +49,11 @@ 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.CommonColors; import net.minecraft.util.Mth; import net.minecraft.world.item.Item; import org.jetbrains.annotations.ApiStatus; @@ -257,9 +261,9 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { ((ScreenOverlayImpl) REIRuntime.getInstance().getOverlay().get()).renderTooltip(graphics, tooltip); } - graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, -1); + graphics.drawString(this.font, this.title.getVisualOrderText(), (int) (this.width / 2.0F - this.font.width(this.title) / 2.0F), 12, CommonColors.WHITE); Component hint = Component.translatable("config.roughlyenoughitems.filteringRulesScreen.hint").withStyle(ChatFormatting.YELLOW); - graphics.drawString(this.font, hint, this.width - this.font.width(hint) - 15, 12, -1); + graphics.drawString(this.font, hint, this.width - this.font.width(hint) - 15, 12, CommonColors.WHITE); } private Predicate getSelection() { @@ -290,10 +294,10 @@ private void updateSelectionCache() { } @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 +351,65 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + 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, doubled)) { this.points.clear(); return true; - } else if (selectAllButton.mouseClicked(mouseX, mouseY, button)) { + } else if (selectAllButton.mouseClicked(event, doubled)) { return true; - } else if (selectNoneButton.mouseClicked(mouseX, mouseY, button)) { + } else if (selectNoneButton.mouseClicked(event, doubled)) { return true; - } else if (hideButton.mouseClicked(mouseX, mouseY, button)) { + } else if (hideButton.mouseClicked(event, doubled)) { return true; - } else if (showButton.mouseClicked(mouseX, mouseY, button)) { + } else if (showButton.mouseClicked(event, doubled)) { return true; - } else if (button == 0) { - if (!Screen.hasShiftDown()) { + } else if (event.button() == 0) { + if (!minecraft.hasControlDown()) { 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, doubled); } @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 characterEvent) { for (GuiEventListener element : children()) - if (element.charTyped(chr, keyCode)) + if (element.charTyped(characterEvent)) return true; - return super.charTyped(chr, keyCode); + return super.charTyped(characterEvent); } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent keyEvent) { for (GuiEventListener element : children()) - if (element.keyPressed(keyCode, scanCode, modifiers)) + if (element.keyPressed(keyEvent)) return true; - if (Screen.isSelectAll(keyCode)) { + if (keyEvent.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 (keyEvent.isEscape() && this.shouldCloseOnEsc()) { + this.backButton.onPress(keyEvent); return true; } return false; 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..7c53bb7e0 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.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 @@ else if (widget instanceof OverlaySearchField field) if (REIRuntime.getInstance().isOverlayVisible()) { menuHolder.afterRender(); } - graphics.renderDeferredTooltip(); + graphics.renderDeferredElements(); } public void renderTooltip(GuiGraphics graphics, Tooltip tooltip) { @@ -369,19 +372,21 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { if (!hasSpace()) return false; + int keyCode = event.key(); + int scanCode = event.scancode(); if (REIRuntime.getInstance().isOverlayVisible()) { if (keyCode == 256 && 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)) { @@ -414,14 +419,14 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } @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.keyPressed(event)) return true; } } @@ -429,17 +434,17 @@ public boolean keyReleased(int keyCode, int scanCode, int modifiers) { } @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 +455,12 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + int button = event.button(); boolean visible = REIRuntime.getInstance().isOverlayVisible(); if (choosePageWidget != null) { - if (choosePageWidget.containsMouse(mouseX, mouseY)) { - return choosePageWidget.mouseClicked(mouseX, mouseY, button); + if (choosePageWidget.containsMouse(event)) { + return choosePageWidget.mouseClicked(event, doubled); } else { choosePageWidget = null; init(); @@ -462,13 +468,13 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } } if (!hasSpace()) return false; - if (visible && configButton.mouseClicked(mouseX, mouseY, button)) { + if (visible && configButton.mouseClicked(event, doubled)) { 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(); } @@ -487,14 +493,14 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } if (visible) { Widget menuWidget = menuHolder.widget(); - if (menuWidget != null && menuWidget.mouseClicked(mouseX, mouseY, button)) { + if (menuWidget != null && menuWidget.mouseClicked(event, doubled)) { this.setFocused(menuWidget); if (button == 0) this.setDragging(true); REIRuntimeImpl.getSearchField().setFocused(false); return true; } - if (hintsWidget.mouseClicked(mouseX, mouseY, button)) { + if (hintsWidget.mouseClicked(event, doubled)) { this.setFocused(hintsWidget); if (button == 0) this.setDragging(true); @@ -504,7 +510,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } 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,10 +519,10 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { return false; } if (draggingStack != null) { - draggingStack.mouseClicked(mouseX, mouseY, button); + draggingStack.mouseClicked(event, doubled); } 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, doubled)) { this.setFocused(element); if (button == 0) this.setDragging(true); @@ -536,23 +542,23 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } @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..13e597cfc 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 @@ -56,6 +56,10 @@ 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.InputQuirks; +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 List children() { } @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 doubled) { if (menu != null) { - if (!menu.mouseClicked(mouseX, mouseY, button)) + if (!menu.mouseClicked(event, doubled)) 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 (InputQuirks.REPLACE_CTRL_KEY_WITH_CMD_KEY ? 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 boolean mouseClicked(double mouseX, double mouseY, int button) { return true; } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override @@ -323,8 +327,8 @@ public Optional getChildAt(double mouseX, double mouseY) { } @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 boolean mouseReleased(double mouseX, double mouseY, int button) { 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 boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @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 (InputQuirks.REPLACE_CTRL_KEY_WITH_CMD_KEY ? 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 (InputQuirks.REPLACE_CTRL_KEY_WITH_CMD_KEY ? event.key() == 343 || event.key() == 347 : event.key() == 341 || event.key() == 345) { this.partialKeycode.setModifier(Modifier.of(modifier.hasAlt(), true, modifier.hasShift())); return true; } - if (keyCode == 344 || keyCode == 340) { + if (event.key() == 344 || event.key() == 340) { this.partialKeycode.setModifier(Modifier.of(modifier.hasAlt(), modifier.hasControl(), true)); return true; } - if (keyCode == 342 || keyCode == 346) { + if (event.key() == 342 || event.key() == 346) { this.partialKeycode.setModifier(Modifier.of(true, modifier.hasControl(), modifier.hasShift())); return true; } @@ -399,18 +403,18 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { 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..21873b26b 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.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 List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { Widgets.produceClickSound(); ((REIConfigScreen) Minecraft.getInstance().screen).setSearching(true); return true; @@ -115,7 +116,7 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { 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..0fd5c190c 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.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 @@ protected void applyValue() { } @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.isLeft(); double newValue; if (leftArrow) { newValue = Mth.clamp((valueToLimit(value, 50) - 1) / 50.0, 0, 1); - } else if (keyCode == 262) { + } else if (event.isRight()) { 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 @@ protected void applyValue() { } @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.isLeft(); double newValue; if (leftArrow) { newValue = Mth.clamp((valueToLimit(value, 1000) - 1) / 1000.0, 0, 1); - } else if (keyCode == 262) { + } else if (event.isRight()) { 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..68f120702 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.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 int getItemHeight() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (contains && button == 0) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (contains && event.button() == 0) { Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); try { Util.getPlatform().openUri(new URI(link)); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java index 6b1344675..46a41ff99 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/credits/CreditsScreen.java @@ -33,9 +33,11 @@ import net.minecraft.client.gui.components.AbstractButton; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.KeyEvent; import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; +import net.minecraft.util.CommonColors; import net.minecraft.util.Tuple; import org.jetbrains.annotations.ApiStatus; @@ -57,12 +59,12 @@ public CreditsScreen(Screen parent) { } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode == 256 && this.shouldCloseOnEsc()) { + public boolean keyPressed(KeyEvent event) { + if (event.isEscape() && this.shouldCloseOnEsc()) { openPrevious(); return true; } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } public static class TranslatorEntry { @@ -154,7 +156,7 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl @Override public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { super.render(graphics, mouseX, mouseY, delta); - graphics.drawCenteredString(this.font, I18n.get("text.rei.credits"), this.width / 2, 16, 16777215); + graphics.drawCenteredString(this.font, I18n.get("text.rei.credits"), this.width / 2, 16, CommonColors.WHITE); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/dragging/CurrentDraggingStack.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/dragging/CurrentDraggingStack.java index 977d977b4..cec9f9743 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/dragging/CurrentDraggingStack.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/dragging/CurrentDraggingStack.java @@ -42,6 +42,7 @@ 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.MouseButtonEvent; import net.minecraft.world.phys.Vec2; import net.minecraft.world.phys.shapes.VoxelShape; import org.jetbrains.annotations.Nullable; @@ -145,21 +146,21 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (button != 0) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (event.button() != 0) { return false; } drop(); - DraggableComponent 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 boolean mouseReleased(double d, double e, int i) { } @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 dx, double dy) { + 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..68f7937b7 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.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; @@ -194,6 +195,10 @@ public Entry getEntry() { return entry; } + private Vector3f transformMouse(MouseButtonEvent event) { + return transformMouse(event.x(), event.y()); + } + private Vector3f transformMouse(double mouseX, double mouseY) { Vector3f mouse = new Vector3f((float) mouseX, (float) mouseY, 1); transform.transform(mouse); @@ -234,21 +239,21 @@ public boolean isMouseOver(double mouseX, double mouseY) { } @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 doubled) { + Vector3f mouse = transformMouse(event); + return super.mouseClicked(new MouseButtonEvent(mouse.x(), mouse.y(), event.buttonInfo()), doubled); } @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); + 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 deltaX, double deltaY) { + Vector3f mouse = transformMouse(event); + return super.mouseDragged(new MouseButtonEvent(mouse.x(), mouse.y(), event.buttonInfo()), deltaX, deltaY); } @Override @@ -328,16 +333,16 @@ public int getItemHeight() { } @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 doubled) { + if (event.x() == 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, doubled); } @Nullable @@ -449,8 +454,8 @@ public int getItemHeight() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (contains && button == 0) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (contains && event.button() == 0) { Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); try { Util.getPlatform().openUri(new URI(link)); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsScreen.java index 0084c732b..7cc258f2d 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/error/ErrorsScreen.java @@ -29,8 +29,10 @@ import net.minecraft.client.gui.components.AbstractButton; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.KeyEvent; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.network.chat.Component; +import net.minecraft.util.CommonColors; import org.jetbrains.annotations.ApiStatus; import java.util.List; @@ -53,13 +55,13 @@ public ErrorsScreen(Component title, List components, Screen parent, boo } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode == 256) { + public boolean keyPressed(KeyEvent event) { + if (event.isEscape()) { Minecraft.getInstance().setScreen(parent); return true; } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } @Override @@ -109,7 +111,7 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl @Override public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { super.render(graphics, mouseX, mouseY, delta); - graphics.drawCenteredString(this.font, getTitle(), this.width / 2, 16, 16777215); + graphics.drawCenteredString(this.font, getTitle(), this.width / 2, 16, CommonColors.WHITE); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/hints/ImportantWarningsWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/hints/ImportantWarningsWidget.java index 8ce9a93a3..75e5c99b3 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/hints/ImportantWarningsWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/hints/ImportantWarningsWidget.java @@ -37,6 +37,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -113,8 +114,8 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (this.visible && button == 0 && buttonBounds.contains(mouseX, mouseY)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (this.visible && event.button() == 0 && buttonBounds.contains(event.x(), event.y())) { dirty = false; this.visible = false; Widgets.produceClickSound(); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/AbstractMenuEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/AbstractMenuEntry.java index 849950ec8..7ca6bf788 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/AbstractMenuEntry.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/AbstractMenuEntry.java @@ -25,6 +25,7 @@ import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.client.favorites.FavoriteMenuEntry; +import net.minecraft.client.input.MouseButtonEvent; public abstract class AbstractMenuEntry extends FavoriteMenuEntry { private int x, y, width; @@ -41,16 +42,16 @@ public void updateInformation(int xPos, int yPos, boolean selected, boolean cont } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (containsMouse(mouseX, mouseY)) { - if (onClick(mouseX, mouseY, button)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (containsMouse(event)) { + if (onClick(event, doubled)) { return true; } } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } - protected boolean onClick(double mouseX, double mouseY, int button) { + protected boolean onClick(MouseButtonEvent event, boolean doubled) { return false; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/Menu.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/Menu.java index eeb97fa41..c014d0990 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/Menu.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/Menu.java @@ -39,6 +39,7 @@ import me.shedaniel.rei.impl.client.gui.widget.LateRenderable; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.input.MouseButtonEvent; import org.jetbrains.annotations.ApiStatus; import java.util.Collection; @@ -176,17 +177,17 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (scrolling.updateDraggingState(event.x(), event.y(), event.button())) return true; - return super.mouseClicked(mouseX, mouseY, button) || getInnerBounds().contains(mouseX, mouseY); + return super.mouseClicked(event, doubled) || getInnerBounds().contains(event.x(), event.y()); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (scrolling.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (scrolling.mouseDragged(event.x(), event.y(), event.button(), deltaX, deltaY)) return true; - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return super.mouseDragged(event, deltaX, deltaY); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/ToggleMenuEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/ToggleMenuEntry.java index f866a49a3..002a4a3e6 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/ToggleMenuEntry.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/modules/entries/ToggleMenuEntry.java @@ -32,6 +32,7 @@ import me.shedaniel.rei.impl.client.gui.modules.AbstractMenuEntry; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvents; @@ -121,7 +122,7 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { } @Override - protected boolean onClick(double mouseX, double mouseY, int button) { + protected boolean onClick(MouseButtonEvent event, boolean doubled) { if (!active.getAsBoolean()) return false; if (consumer.apply(!supplier.getAsBoolean())) { REIRuntime.getInstance().getOverlay().ifPresent(ScreenOverlay::queueReloadOverlay); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/performance/entry/SubCategoryListEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/performance/entry/SubCategoryListEntry.java index 749140f5b..2b995dc34 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/performance/entry/SubCategoryListEntry.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/performance/entry/SubCategoryListEntry.java @@ -33,6 +33,7 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.narration.NarratableEntry; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.network.chat.Component; @@ -166,8 +167,8 @@ public CategoryLabelWidget() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (this.rectangle.contains(mouseX, mouseY)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (this.rectangle.contains(event.x(), event.y())) { SubCategoryListEntry.this.expanded = !SubCategoryListEntry.this.expanded; Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); return true; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java index 3b98b90ce..79e424a60 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java @@ -64,6 +64,9 @@ import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; import net.minecraft.core.Registry; @@ -458,29 +461,29 @@ private boolean handleFocuses() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - Optional hovered = this.getChildAt(mouseX, mouseY); - if (hovered.isPresent() && hovered.get().mouseClicked(mouseX, mouseY, button)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + Optional hovered = this.getChildAt(event.x(), event.y()); + if (hovered.isPresent() && hovered.get().mouseClicked(event, doubled)) { this.setFocused(hovered.get()); - if (button == 0) { + if (event.button() == 0) { this.setDragging(true); } - if (getOverlay().mouseClicked(mouseX, mouseY, button)) handleFocuses(button); + if (getOverlay().mouseClicked(event, doubled)) handleFocuses(event.button()); return true; } - return getOverlay().mouseClicked(mouseX, mouseY, button) && handleFocuses(button); + return getOverlay().mouseClicked(event, doubled) && handleFocuses(event.button()); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - return super.mouseReleased(mouseX, mouseY, button) || (getOverlay().mouseReleased(mouseX, mouseY, button) && handleFocuses()); + public boolean mouseReleased(MouseButtonEvent event) { + return super.mouseReleased(event) || (getOverlay().mouseReleased(event) && handleFocuses()); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY) || (getOverlay().mouseDragged(mouseX, mouseY, button, deltaX, deltaY) && handleFocuses()); + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + return super.mouseDragged(event, deltaX, deltaY) || (getOverlay().mouseDragged(event, deltaX, deltaY) && handleFocuses()); } @Override @@ -489,10 +492,10 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (super.keyPressed(keyCode, scanCode, modifiers) || (getOverlay().keyPressed(keyCode, scanCode, modifiers) && handleFocuses())) + public boolean keyPressed(KeyEvent event) { + if (super.keyPressed(event) || (getOverlay().keyPressed(event) && handleFocuses())) return true; - if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesKey(keyCode, scanCode)) { + if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesKey(event.key(), event.scancode())) { if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) { minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen()); } else { @@ -500,7 +503,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } return true; } - if (this.minecraft.options.keyInventory.matches(keyCode, scanCode)) { + if (this.minecraft.options.keyInventory.matches(event)) { Minecraft.getInstance().setScreen(REIRuntime.getInstance().getPreviousScreen()); return true; } @@ -508,13 +511,13 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { - return super.keyReleased(keyCode, scanCode, modifiers) || (getOverlay().keyReleased(keyCode, scanCode, modifiers) && handleFocuses()); + public boolean keyReleased(KeyEvent event) { + return super.keyReleased(event) || (getOverlay().keyReleased(event) && handleFocuses()); } @Override - public boolean charTyped(char character, int modifiers) { - return super.charTyped(character, modifiers) || (getOverlay().charTyped(character, modifiers) && handleFocuses()); + public boolean charTyped(CharacterEvent event) { + return super.charTyped(event) || (getOverlay().charTyped(event) && handleFocuses()); } private interface Limiter { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java index c1ebd57bd..4c7798b64 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java @@ -49,6 +49,9 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +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; @@ -187,24 +190,24 @@ public void init() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (scrolling.updateDraggingState(event.x(), event.y(), event.button())) { scrollBarAlpha = 1; return true; } - if (ConfigObject.getInstance().getNextPageKeybind().matchesMouse(button)) { + if (ConfigObject.getInstance().getNextPageKeybind().matchesMouse(event.button())) { selectedRecipeIndex++; if (selectedRecipeIndex >= categoryMap.get(categories.get(selectedCategoryIndex)).size()) selectedRecipeIndex = 0; init(); return true; - } else if (ConfigObject.getInstance().getPreviousPageKeybind().matchesMouse(button)) { + } else if (ConfigObject.getInstance().getPreviousPageKeybind().matchesMouse(event.button())) { selectedRecipeIndex--; if (selectedRecipeIndex < 0) selectedRecipeIndex = categoryMap.get(categories.get(selectedCategoryIndex)).size() - 1; init(); return true; - } else if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesMouse(button)) { + } else if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesMouse(event.button())) { if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) { minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen()); } else { @@ -213,13 +216,13 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { return true; } for (GuiEventListener entry : children()) - if (entry.mouseClicked(mouseX, mouseY, button)) { + if (entry.mouseClicked(event, doubled)) { setFocused(entry); - if (button == 0) + if (event.button() == 0) setDragging(true); return true; } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override @@ -236,11 +239,11 @@ public Optional getChildAt(double mouseX, double mouseY) { } @Override - public boolean charTyped(char char_1, int int_1) { + public boolean charTyped(CharacterEvent event) { for (GuiEventListener listener : children()) - if (listener.charTyped(char_1, int_1)) + if (listener.charTyped(event)) return true; - return super.charTyped(char_1, int_1); + return super.charTyped(event); } @Override @@ -314,29 +317,29 @@ else if (scrollBarAlphaFuture == 1) } @Override - public boolean mouseReleased(double double_1, double double_2, int int_1) { + public boolean mouseReleased(MouseButtonEvent event) { for (GuiEventListener entry : children()) - if (entry.mouseReleased(double_1, double_2, int_1)) + if (entry.mouseReleased(event)) return true; - return super.mouseReleased(double_1, double_2, int_1); + return super.mouseReleased(event); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int int_1, double double_3, double double_4) { - if (scrolling.mouseDragged(mouseX, mouseY, int_1, double_3, double_4)) { + public boolean mouseDragged(MouseButtonEvent event, double double_3, double double_4) { + if (scrolling.mouseDragged(event.x(), event.y(), event.button(), double_3, double_4)) { scrollBarAlphaFutureTime = System.currentTimeMillis(); scrollBarAlphaFuture = 1f; return true; } for (GuiEventListener entry : children()) - if (entry.mouseDragged(mouseX, mouseY, int_1, double_3, double_4)) + if (entry.mouseDragged(event, double_3, double_4)) return true; - return super.mouseDragged(mouseX, mouseY, int_1, double_3, double_4); + return super.mouseDragged(event, double_3, double_4); } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (ConfigObject.getInstance().getNextPageKeybind().matchesKey(keyCode, scanCode)) { + public boolean keyPressed(KeyEvent event) { + if (ConfigObject.getInstance().getNextPageKeybind().matchesKey(event.key(), event.scancode())) { if (categoryMap.get(categories.get(selectedCategoryIndex)).size() > 1) { selectedRecipeIndex++; if (selectedRecipeIndex >= categoryMap.get(categories.get(selectedCategoryIndex)).size()) @@ -345,7 +348,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { return true; } return false; - } else if (ConfigObject.getInstance().getPreviousPageKeybind().matchesKey(keyCode, scanCode)) { + } else if (ConfigObject.getInstance().getPreviousPageKeybind().matchesKey(event.key(), event.scancode())) { if (categoryMap.get(categories.get(selectedCategoryIndex)).size() > 1) { selectedRecipeIndex--; if (selectedRecipeIndex < 0) @@ -356,13 +359,13 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { return false; } for (GuiEventListener element : children()) - if (element.keyPressed(keyCode, scanCode, modifiers)) + if (element.keyPressed(event)) return true; - if (keyCode == 256) { + if (event.isEscape()) { Minecraft.getInstance().setScreen(REIRuntime.getInstance().getPreviousScreen()); return true; } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } private class ButtonListWidget extends Widget { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/ConfigReloadingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/ConfigReloadingScreen.java index 39295d62d..46bf5fd52 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/ConfigReloadingScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/ConfigReloadingScreen.java @@ -92,7 +92,7 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { int n = height + 12 * 2; int o = this.isFocused() ? -1 : -6250336; graphics.fill(k + 1, l, k + m, l + n, -16777216); - graphics.renderOutline(k, l, m, n, o); + graphics.submitOutline(k, l, m, n, o); graphics.drawCenteredString(this.font, title, this.width / 2, l + 12, CommonColors.WHITE); graphics.drawCenteredString(this.font, text, this.width / 2, l + 12 + 9, 0xFF808080); if (subtitle != null) { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java index 55f8e7816..bbff48df4 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java @@ -63,6 +63,9 @@ import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.ConfirmScreen; 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.renderer.RenderPipelines; import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; @@ -115,7 +118,10 @@ public Panel getWorkingStationsBaseWidget() { } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { + int keyCode = event.key(); + int scanCode = event.scancode(); + if (ConfigObject.getInstance().getNextPageKeybind().matchesKey(keyCode, scanCode)) { if (recipeNext.isEnabled()) recipeNext.onClick(); @@ -126,13 +132,13 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { return recipeBack.isEnabled(); } for (GuiEventListener element : children()) - if (element.keyPressed(keyCode, scanCode, modifiers)) + if (element.keyPressed(event)) return true; if (keyCode == 256) { Minecraft.getInstance().setScreen(REIRuntime.getInstance().getPreviousScreen()); return true; } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } @Override @@ -175,7 +181,7 @@ public void init() { DefaultDisplayViewingScreen.this.init(); }).tooltipLine(Component.translatable("text.rei.previous_page"))); this.widgets.add(Widgets.createClickableLabel(new Point(bounds.getCenterX(), bounds.getY() + 21), Component.empty(), label -> { - if (!Screen.hasShiftDown()) { + if (!minecraft.hasShiftDown()) { page = 0; DefaultDisplayViewingScreen.this.init(); } else { @@ -358,12 +364,12 @@ private Iterable getTabs() { } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { + public boolean keyReleased(KeyEvent event) { ModifierKeyCode export = ConfigObject.getInstance().getExportImageKeybind(); - if (export.matchesKey(keyCode, scanCode)) { + if (export.matchesKey(event.key(), event.scancode())) { if (checkExportDisplays()) return true; } - return super.keyReleased(keyCode, scanCode, modifiers); + return super.keyReleased(event); } public int getCurrentTotalPages() { @@ -375,31 +381,31 @@ public int getTotalPages(int categoryIndex) { } @Override - public boolean charTyped(char character, int modifiers) { + public boolean charTyped(CharacterEvent event) { 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) { + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { 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 mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { ModifierKeyCode export = ConfigObject.getInstance().getExportImageKeybind(); - if (export.matchesMouse(button)) { + if (export.matchesMouse(event.button())) { if (checkExportDisplays()) 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); } private boolean checkExportDisplays() { @@ -471,16 +477,16 @@ else if (amountY < 0 && recipeNext.isEnabled()) } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (ConfigObject.getInstance().getNextPageKeybind().matchesMouse(button)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (ConfigObject.getInstance().getNextPageKeybind().matchesMouse(event.button())) { if (recipeNext.isEnabled()) recipeNext.onClick(); return recipeNext.isEnabled(); - } else if (ConfigObject.getInstance().getPreviousPageKeybind().matchesMouse(button)) { + } else if (ConfigObject.getInstance().getPreviousPageKeybind().matchesMouse(event.button())) { if (recipeBack.isEnabled()) recipeBack.onClick(); return recipeBack.isEnabled(); - } else if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesMouse(button)) { + } else if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesMouse(event.button())) { if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) { minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen()); } else { @@ -488,7 +494,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } return true; } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/ScreenWithMenu.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/ScreenWithMenu.java index 68b2159ef..c0dda15d4 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/ScreenWithMenu.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/ScreenWithMenu.java @@ -26,6 +26,7 @@ import me.shedaniel.rei.impl.client.gui.modules.Menu; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.network.chat.Component; import org.jetbrains.annotations.Nullable; @@ -54,20 +55,20 @@ protected void closeMenu() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { if (this.menu != null) { - if (!this.menu.mouseClicked(mouseX, mouseY, button)) + if (!this.menu.mouseClicked(event, doubled)) this.menu = null; return true; } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (this.menu != null && this.menu.mouseReleased(mouseX, mouseY, button)) + public boolean mouseReleased(MouseButtonEvent event) { + if (this.menu != null && this.menu.mouseReleased(event)) return true; - return super.mouseReleased(mouseX, mouseY, button); + return super.mouseReleased(event); } @Override @@ -78,9 +79,9 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (this.menu != null && this.menu.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (this.menu != null && this.menu.mouseDragged(event, deltaX, deltaY)) return true; - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return super.mouseDragged(event, deltaX, deltaY); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java index 1dfc645ff..b832161ba 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/UncertainDisplayViewingScreen.java @@ -41,9 +41,12 @@ import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.CommonColors; import net.minecraft.util.FormattedCharSequence; import net.minecraft.util.Mth; import org.jetbrains.annotations.ApiStatus; @@ -128,7 +131,7 @@ public List _children() { @Override public void render(GuiGraphics graphics, int int_1, int int_2, float float_1) { super.render(graphics, int_1, int_2, float_1); - graphics.drawCenteredString(this.font, Component.translatable("text.rei.recipe_screen_type.selection"), this.width / 2, 20, 16777215); + graphics.drawCenteredString(this.font, Component.translatable("text.rei.recipe_screen_type.selection"), this.width / 2, 20, CommonColors.WHITE); graphics.enableScissor(0, 20 + font.lineHeight + 2, width, 20 + font.lineHeight + 2 + height - 42); if (showTips) { int i = 32; @@ -139,7 +142,7 @@ public void render(GuiGraphics graphics, int int_1, int int_2, float float_1) { } int k = 10, l = 44, m = width - 20, n = height - l - 10 - 5; graphics.fill( k + 1, l, k + m, l + n, -16777216); - graphics.renderOutline(k, l, m, n, -1); + graphics.submitOutline(k, l, m, n, -1); for (Widget widget : widgets) { widget.render(graphics, int_1, int_2, float_1); } @@ -176,15 +179,15 @@ private double ease(double start, double end, double amount) { } @Override - public boolean keyPressed(int int_1, int int_2, int int_3) { - if (int_1 == 256 || this.minecraft.options.keyInventory.matches(int_1, int_2)) { + public boolean keyPressed(KeyEvent event) { + if (event.isEscape() || minecraft.options.keyInventory.matches(event)) { Minecraft.getInstance().setScreen(parent); if (parent instanceof AbstractContainerScreen) { REIRuntime.getInstance().getOverlay().get().queueReloadOverlay(); } return true; } - return super.keyPressed(int_1, int_2, int_3); + return super.keyPressed(event); } public class ScreenTypeSelection extends WidgetWithBounds { @@ -207,8 +210,8 @@ public void render(GuiGraphics graphics, int i, int i1, float delta) { } @Override - public boolean mouseClicked(double double_1, double double_2, int int_1) { - if (containsMouse(double_1, double_2)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (containsMouse(event)) { original = (type == DisplayScreenType.ORIGINAL); if (!isSet) { moveFrameTo(original ? 0 : 1, false, 0); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/WarningAndErrorScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/WarningAndErrorScreen.java index 5c9544352..023d12143 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/WarningAndErrorScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/WarningAndErrorScreen.java @@ -37,9 +37,11 @@ import net.minecraft.client.gui.narration.NarratedElementType; import net.minecraft.client.gui.narration.NarrationElementOutput; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.CommonColors; import net.minecraft.util.FormattedCharSequence; import net.minecraft.util.Tuple; import org.jetbrains.annotations.ApiStatus; @@ -137,9 +139,9 @@ public void render(GuiGraphics graphics, int int_1, int int_2, float float_1) { super.render(graphics, int_1, int_2, float_1); this.listWidget.render(graphics, int_1, int_2, float_1); if (RoughlyEnoughItemsState.getErrors().isEmpty()) { - graphics.drawCenteredString(this.font, "Warnings during Roughly Enough Items' " + action, this.width / 2, 16, 16777215); + graphics.drawCenteredString(this.font, "Warnings during Roughly Enough Items' " + action, this.width / 2, 16, CommonColors.WHITE); } else { - graphics.drawCenteredString(this.font, "Errors during Roughly Enough Items' " + action, this.width / 2, 16, 16777215); + graphics.drawCenteredString(this.font, "Errors during Roughly Enough Items' " + action, this.width / 2, 16, CommonColors.WHITE); } this.buttonExit.render(graphics, int_1, int_2, float_1); } @@ -285,8 +287,8 @@ public int getWidth() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (contains && button == 0) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (contains && event.button() == 0) { Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); try { Util.getPlatform().openUri(new URI(link)); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/CollapsibleEntriesScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/CollapsibleEntriesScreen.java index 6323e4d1c..ca8ac5880 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/CollapsibleEntriesScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/CollapsibleEntriesScreen.java @@ -50,6 +50,7 @@ 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.MouseButtonEvent; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; @@ -178,7 +179,7 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { graphics.drawString(this.font, this.title, this.width / 2 - this.font.width(this.title) / 2, 12, -1); if (ConfigObject.getInstance().doDebugRenderTimeRequired()) { - Component debugText = Component.literal(String.format("%s fps", minecraft.fpsString.split(" ")[0])); + Component debugText = Component.literal(String.format("%s fps", minecraft.getFps())); int stringWidth = font.width(debugText); graphics.fillGradient(minecraft.screen.width - stringWidth - 2, 32, minecraft.screen.width, 32 + font.lineHeight + 2, -16777216, -16777216); graphics.pose().pushMatrix(); @@ -199,13 +200,13 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - return this.listWidget.mouseClicked(mouseX, mouseY, button) || super.mouseClicked(mouseX, mouseY, button); + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + return this.listWidget.mouseClicked(event, doubled) || super.mouseClicked(event, doubled); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - return this.listWidget.mouseDragged(mouseX, mouseY, button, deltaX, deltaY) || super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + return this.listWidget.mouseDragged(event, deltaX, deltaY) || super.mouseDragged(event, deltaX, deltaY); } @Override @@ -293,13 +294,13 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - return this.scroller.updateDraggingState(mouseX, mouseY, button) || super.mouseClicked(mouseX, mouseY, button); + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + return this.scroller.updateDraggingState(event.x(), event.y(), event.button()) || super.mouseClicked(event, doubled); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - return this.scroller.mouseDragged(mouseX, mouseY, button, deltaX, deltaY) || super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + return this.scroller.mouseDragged(event.x(), event.y(), event.button(), deltaX, deltaY) || super.mouseDragged(event, deltaX, deltaY); } public void clear() { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/selection/CustomCollapsibleEntrySelectionScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/selection/CustomCollapsibleEntrySelectionScreen.java index 1c1e58606..e0665261e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/selection/CustomCollapsibleEntrySelectionScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/collapsible/selection/CustomCollapsibleEntrySelectionScreen.java @@ -48,6 +48,9 @@ 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; @@ -275,10 +278,10 @@ private void updateSelectionCache() { } @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) { @@ -332,24 +335,27 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + double mouseX = event.x(); + double mouseY = event.y(); + int button = event.button(); + if (scrolling.updateDraggingState(event.x(), event.y(), event.button())) return true; if (getBounds().contains(mouseX, mouseY)) { - if (searchField.mouseClicked(mouseX, mouseY, button)) { + if (searchField.mouseClicked(event, doubled)) { this.points.clear(); return true; - } else if (selectAllButton.mouseClicked(mouseX, mouseY, button)) { + } else if (selectAllButton.mouseClicked(event, doubled)) { return true; - } else if (selectNoneButton.mouseClicked(mouseX, mouseY, button)) { + } else if (selectNoneButton.mouseClicked(event, doubled)) { return true; - } else if (addButton.mouseClicked(mouseX, mouseY, button)) { + } else if (addButton.mouseClicked(event, doubled)) { return true; - } else if (removeButton.mouseClicked(mouseX, mouseY, button)) { + } else if (removeButton.mouseClicked(event, doubled)) { return true; } else if (button == 0) { - if (!Screen.hasShiftDown()) { + if (!event.hasShiftDown()) { this.points.clear(); } this.points.add(new PointPair(new Point(mouseX, mouseY + scrolling.scrollAmount()), null)); @@ -357,49 +363,49 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } } - return backButton.mouseClicked(mouseX, mouseY, button); + return backButton.mouseClicked(event, doubled); } @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.isEscape() && this.shouldCloseOnEsc()) { + this.backButton.onPress(event); return true; } return false; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/generic/OptionEntriesScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/generic/OptionEntriesScreen.java index 3c1c45c92..bb96ba29e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/generic/OptionEntriesScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/generic/OptionEntriesScreen.java @@ -34,6 +34,7 @@ import net.minecraft.client.gui.narration.NarratableEntry; import net.minecraft.client.gui.navigation.FocusNavigationEvent; 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.network.chat.Component; @@ -367,8 +368,8 @@ public CategoryLabelWidget() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (this.rectangle.contains(mouseX, mouseY)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (this.rectangle.contains(event.x(), event.y())) { SubListEntry.this.expanded = !SubListEntry.this.expanded; Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); return true; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java index 1d7bcb475..7cd37f032 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ConfigButtonWidget.java @@ -61,7 +61,8 @@ public static Widget create(ScreenOverlayImpl overlay) { MenuAccess access = overlay.menuAccess(); Button configButton = Widgets.createButton(bounds, Component.empty()) .onClick(button -> { - if (Screen.hasShiftDown() || Screen.hasControlDown()) { + Minecraft mc = Minecraft.getInstance(); + if (mc.hasShiftDown() || mc.hasControlDown()) { ClientHelper.getInstance().setCheating(!ClientHelper.getInstance().isCheating()); return; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DefaultDisplayChoosePageWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DefaultDisplayChoosePageWidget.java index b7fdb3031..99a64ce4b 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DefaultDisplayChoosePageWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DefaultDisplayChoosePageWidget.java @@ -36,6 +36,8 @@ import me.shedaniel.rei.impl.client.gui.widget.basewidgets.TextFieldWidget; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; import org.jetbrains.annotations.ApiStatus; @@ -169,22 +171,22 @@ public void render(GuiGraphics graphics, int i, int i1, float v) { } @Override - public boolean charTyped(char char_1, int int_1) { + public boolean charTyped(CharacterEvent event) { for (Widget widget : widgets) - if (widget.charTyped(char_1, int_1)) + if (widget.charTyped(event)) return true; return false; } @Override - public boolean keyPressed(int int_1, int int_2, int int_3) { - if (int_1 == 335 || int_1 == 257) { + public boolean keyPressed(KeyEvent event) { + if (event.key() == 335 || event.key() == 257) { callback.accept(Mth.clamp(getIntFromString(textFieldWidget.getText()).orElse(0) - 1, 0, maxPage - 1)); ScreenOverlayImpl.getInstance().choosePageWidget = null; return true; } for (Widget widget : widgets) - if (widget.keyPressed(int_1, int_2, int_3)) + if (widget.keyPressed(event)) return true; return false; } @@ -196,9 +198,4 @@ public Optional getIntFromString(String s) { } return Optional.empty(); } - - @Override - public void onMouseReleaseMidPoint(Point midPoint) { - } - } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DelegateWidgetWithTranslate.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DelegateWidgetWithTranslate.java index da929b06b..880353cee 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DelegateWidgetWithTranslate.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DelegateWidgetWithTranslate.java @@ -29,6 +29,9 @@ import me.shedaniel.rei.api.client.gui.widgets.WidgetWithBounds; import me.shedaniel.rei.api.client.util.MatrixUtils; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import org.joml.Matrix3x2f; import org.joml.Vector3f; @@ -64,6 +67,10 @@ private Vector3f transformMouse(double mouseX, double mouseY) { inverseTranslate().transform(mouse); return mouse; } + + private Vector3f transformMouse(MouseButtonEvent event) { + return transformMouse(event.x(), event.y()); + } @Override public boolean containsMouse(double mouseX, double mouseY) { @@ -72,21 +79,21 @@ public boolean containsMouse(double mouseX, double mouseY) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - Vector3f mouse = transformMouse(mouseX, mouseY); - return super.mouseClicked(mouse.x(), mouse.y(), button); + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + Vector3f mouse = transformMouse(event); + return super.mouseClicked(new MouseButtonEvent(mouse.x(), mouse.y(), event.buttonInfo()), doubled); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - Vector3f mouse = transformMouse(mouseX, mouseY); - return super.mouseReleased(mouse.x(), mouse.y(), button); + public boolean mouseReleased(MouseButtonEvent event) { + Vector3f mouse = transformMouse(event); + return super.mouseReleased(new MouseButtonEvent(mouse.x(), mouse.y(), event.buttonInfo())); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - Vector3f mouse = transformMouse(mouseX, mouseY); - return super.mouseDragged(mouse.x(), mouse.y(), button, deltaX, deltaY); + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + Vector3f mouse = transformMouse(event); + return super.mouseDragged(new MouseButtonEvent(mouse.x(), mouse.y(), event.buttonInfo()), deltaX, deltaY); } @Override @@ -96,30 +103,30 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { try { Widget.translateMouse(inverseTranslate()); - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } finally { Widget.popMouse(); } } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { + public boolean keyReleased(KeyEvent event) { try { Widget.translateMouse(inverseTranslate()); - return super.keyReleased(keyCode, scanCode, modifiers); + return super.keyReleased(event); } finally { Widget.popMouse(); } } @Override - public boolean charTyped(char character, int modifiers) { + public boolean charTyped(CharacterEvent event) { try { Widget.translateMouse(inverseTranslate()); - return super.charTyped(character, modifiers); + return super.charTyped(event); } finally { Widget.popMouse(); } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DisplayCompositeWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DisplayCompositeWidget.java index d4e7acfe7..bf4a92d47 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DisplayCompositeWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DisplayCompositeWidget.java @@ -42,6 +42,8 @@ import me.shedaniel.rei.impl.display.DisplaySpec; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import org.jetbrains.annotations.Nullable; import java.util.List; @@ -77,13 +79,13 @@ public DraggableComponent getHovered(DraggingContext context, do } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (super.keyPressed(keyCode, scanCode, modifiers)) { + public boolean keyPressed(KeyEvent event) { + if (super.keyPressed(event)) { return true; } if (ConfigObject.getInstance().isFavoritesEnabled() && containsMouse(mouse())) { - if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(keyCode, scanCode)) { + if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(event.key(), event.scancode())) { FavoriteEntry favoriteEntry = FavoriteEntryType.registry().get(FavoriteEntryType.DISPLAY) .fromArgs(display.provideInternalDisplay()) .result() @@ -99,13 +101,13 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (super.mouseReleased(mouseX, mouseY, button)) { + public boolean mouseReleased(MouseButtonEvent event) { + if (super.mouseReleased(event)) { return true; } - if (ConfigObject.getInstance().isFavoritesEnabled() && containsMouse(mouseX, mouseY)) { - if (ConfigObject.getInstance().getFavoriteKeyCode().matchesMouse(button)) { + if (ConfigObject.getInstance().isFavoritesEnabled() && containsMouse(event)) { + if (ConfigObject.getInstance().getFavoriteKeyCode().matchesMouse(event.button())) { FavoriteEntry favoriteEntry = FavoriteEntryType.registry().get(FavoriteEntryType.DISPLAY) .fromArgs(display.provideInternalDisplay()) .result() diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DisplayedEntryWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DisplayedEntryWidget.java index 29322b359..63235efcb 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DisplayedEntryWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DisplayedEntryWidget.java @@ -35,6 +35,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.world.item.ItemStack; public abstract class DisplayedEntryWidget extends EntryWidget { @@ -61,8 +63,8 @@ public void queueTooltip(GuiGraphics graphics, int mouseX, int mouseY, float del } @Override - protected boolean doAction(double mouseX, double mouseY, int button) { - if (ClientHelper.getInstance().isCheating() && !Screen.hasControlDown() && !(Minecraft.getInstance().screen instanceof DisplayScreen)) { + protected boolean doAction(MouseButtonEvent event) { + if (ClientHelper.getInstance().isCheating() && !event.hasControlDown() && !(Minecraft.getInstance().screen instanceof DisplayScreen)) { EntryStack entry = getCurrentEntry().copy(); if (!entry.isEmpty()) { if (entry.getType() != VanillaEntryTypes.ITEM) { @@ -72,9 +74,9 @@ protected boolean doAction(double mouseX, double mouseY, int button) { if (entry.getValueType() == ItemStack.class) { boolean all; if (ConfigObject.getInstance().getItemCheatingMode() == ItemCheatingMode.REI_LIKE) { - all = button == 1 || Screen.hasShiftDown(); + all = event.button() == 1 || event.hasShiftDown(); } else { - all = button != 1 || Screen.hasShiftDown(); + all = event.button() != 1 || event.hasShiftDown(); } entry.castValue().setCount(!all ? 1 : entry.castValue().getMaxStackSize()); } @@ -82,14 +84,14 @@ protected boolean doAction(double mouseX, double mouseY, int button) { } } - return super.doAction(mouseX, mouseY, button); + return super.doAction(event); } @Override public boolean cancelDeleteItems(EntryStack stack) { if (!interactable || !ConfigObject.getInstance().isGrabbingItems()) return super.cancelDeleteItems(stack); - if (ClientHelper.getInstance().isCheating() && !Screen.hasControlDown() && !(Minecraft.getInstance().screen instanceof DisplayScreen)) { + if (ClientHelper.getInstance().isCheating() && !minecraft.hasControlDown() && !(Minecraft.getInstance().screen instanceof DisplayScreen)) { EntryStack entry = getCurrentEntry().copy(); if (!entry.isEmpty()) { if (entry.getType() != VanillaEntryTypes.ITEM) { @@ -103,7 +105,7 @@ public boolean cancelDeleteItems(EntryStack stack) { } @Override - public boolean keyPressedIgnoreContains(int keyCode, int scanCode, int modifiers) { + public boolean keyPressedIgnoreContains(KeyEvent keyEvent) { if (ClientHelper.getInstance().isCheating() && !(Minecraft.getInstance().screen instanceof DisplayScreen)) { EntryStack entry = getCurrentEntry().copy(); if (!entry.isEmpty()) { @@ -116,7 +118,7 @@ public boolean keyPressedIgnoreContains(int keyCode, int scanCode, int modifiers KeyMapping[] keyHotbarSlots = Minecraft.getInstance().options.keyHotbarSlots; for (int i = 0; i < keyHotbarSlots.length; i++) { - if (keyHotbarSlots[i].matches(keyCode, scanCode)) { + if (keyHotbarSlots[i].matches(keyEvent)) { return ClientHelper.getInstance().tryCheatingEntryTo(entry, i); } } @@ -124,6 +126,6 @@ public boolean keyPressedIgnoreContains(int keyCode, int scanCode, int modifiers } } - return super.keyPressedIgnoreContains(keyCode, scanCode, modifiers); + return super.keyPressedIgnoreContains(keyEvent); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DraggableWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DraggableWidget.java index 9ca9f3769..09d092fac 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DraggableWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DraggableWidget.java @@ -30,6 +30,7 @@ import me.shedaniel.rei.api.client.gui.widgets.WidgetWithBounds; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import org.jetbrains.annotations.ApiStatus; @ApiStatus.Internal @@ -60,9 +61,9 @@ public final Point getMidPoint() { } @Override - public boolean mouseDragged(double double_1, double double_2, int int_1, double double_3, double double_4) { + public boolean mouseDragged(MouseButtonEvent event, double dx, double dy) { Point mouse = PointHelper.ofMouse(); - if (int_1 == 0) { + if (event.button() == 0) { if (!dragged) { if (getGrabBounds().contains(mouse)) { startPoint = new Point(midPoint.x, midPoint.y); @@ -78,7 +79,7 @@ public boolean mouseDragged(double double_1, double double_2, int int_1, double return true; } for (GuiEventListener listener : children()) - if (listener.mouseDragged(double_1, double_2, int_1, double_3, double_4)) + if (listener.mouseDragged(event, dx, dy)) return true; return false; } @@ -86,15 +87,15 @@ public boolean mouseDragged(double double_1, double double_2, int int_1, double public abstract Point processMidPoint(Point midPoint, Point mouse, Point startPoint, Window window, int relateX, int relateY); @Override - public boolean mouseReleased(double double_1, double double_2, int int_1) { - if (int_1 == 0) + public boolean mouseReleased(MouseButtonEvent event) { + if (event.button() == 0) if (dragged) { dragged = false; onMouseReleaseMidPoint(getMidPoint()); return true; } for (GuiEventListener listener : children()) - if (listener.mouseReleased(double_1, double_2, int_1)) + if (listener.mouseReleased(event)) return true; return false; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java index 1576d638b..d20c4fda5 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/DynamicErrorFreeEntryListWidget.java @@ -37,6 +37,8 @@ import net.minecraft.client.gui.narration.NarratedElementType; import net.minecraft.client.gui.narration.NarrationElementOutput; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.renderer.RenderType; import net.minecraft.network.chat.Component; @@ -334,28 +336,28 @@ public int getScrollBottom() { return (int) this.getScroll() - this.height - this.headerHeight; } - protected void updateScrollingState(double double_1, double double_2, int int_1) { - this.scrolling = int_1 == 0 && double_1 >= (double) this.getScrollbarPosition() && double_1 < (double) (this.getScrollbarPosition() + 6); + protected void updateScrollingState(MouseButtonEvent event) { + this.scrolling = event.button() == 0 && event.x() >= (double) this.getScrollbarPosition() && event.x() < (double) (this.getScrollbarPosition() + 6); } protected int getScrollbarPosition() { return this.width / 2 + 124; } - public boolean mouseClicked(double double_1, double double_2, int int_1) { - this.updateScrollingState(double_1, double_2, int_1); - if (!this.isMouseOver(double_1, double_2)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + this.updateScrollingState(event); + if (!this.isMouseOver(event.x(), event.y())) { return false; } else { - E item = this.getItemAtPosition(double_1, double_2); + E item = this.getItemAtPosition(event.x(), event.y()); if (item != null) { - if (item.mouseClicked(double_1, double_2, int_1)) { + if (item.mouseClicked(event, doubled)) { this.setFocused(item); this.setDragging(true); return true; } - } else if (int_1 == 0) { - this.clickedHeader((int) (double_1 - (double) (this.left + this.width / 2 - this.getItemWidth() / 2)), (int) (double_2 - (double) this.top) + (int) this.getScroll() - 4); + } else if (event.button() == 0) { + this.clickedHeader((int) (event.x() - (double) (this.left + this.width / 2 - this.getItemWidth() / 2)), (int) (event.y() - (double) this.top) + (int) this.getScroll() - 4); return true; } @@ -363,21 +365,21 @@ public boolean mouseClicked(double double_1, double double_2, int int_1) { } } - public boolean mouseReleased(double double_1, double double_2, int int_1) { + public boolean mouseReleased(MouseButtonEvent event) { if (this.getFocused() != null) { - this.getFocused().mouseReleased(double_1, double_2, int_1); + this.getFocused().mouseReleased(event); } return false; } - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) { + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (super.mouseDragged(event, deltaX, deltaY)) { return true; - } else if (button == 0 && this.scrolling) { - if (mouseY < (double) this.top) { + } else if (event.button() == 0 && this.scrolling) { + if (event.y() < (double) this.top) { this.capYPosition(0.0F); - } else if (mouseY > (double) this.bottom) { + } else if (event.y() > (double) this.bottom) { this.capYPosition(this.getMaxScroll()); } else { double double_5 = Math.max(1, this.getMaxScroll()); @@ -404,13 +406,13 @@ public boolean mouseScrolled(double double_1, double double_2, double amountX, d return true; } - public boolean keyPressed(int int_1, int int_2, int int_3) { - if (super.keyPressed(int_1, int_2, int_3)) { + public boolean keyPressed(KeyEvent event) { + if (super.keyPressed(event)) { return true; - } else if (int_1 == 264) { + } else if (event.isDown()) { this.moveSelection(1); return true; - } else if (int_1 == 265) { + } else if (event.isUp()) { this.moveSelection(-1); return true; } else { @@ -562,18 +564,18 @@ void updateNarration(NarrationElementOutput narrationElementOutput) { List list = this.narratables(); Screen.NarratableSearchResult narratableSearchResult = Screen.findNarratableWidget(list, this.lastNarratable); if (narratableSearchResult != null) { - if (narratableSearchResult.priority.isTerminal()) { - this.lastNarratable = narratableSearchResult.entry; + if (narratableSearchResult.priority().isTerminal()) { + this.lastNarratable = narratableSearchResult.entry(); } if (list.size() > 1) { - narrationElementOutput.add(NarratedElementType.POSITION, Component.translatable("narrator.position.object_list", narratableSearchResult.index + 1, list.size())); - if (narratableSearchResult.priority == NarrationPriority.FOCUSED) { + narrationElementOutput.add(NarratedElementType.POSITION, Component.translatable("narrator.position.object_list", narratableSearchResult.index() + 1, list.size())); + if (narratableSearchResult.priority() == NarrationPriority.FOCUSED) { narrationElementOutput.add(NarratedElementType.USAGE, Component.translatable("narration.component_list.usage")); } } - narratableSearchResult.entry.updateNarration(narrationElementOutput.nest()); + narratableSearchResult.entry().updateNarration(narrationElementOutput.nest()); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java index 05b2f5fb0..44bbd3501 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java @@ -70,6 +70,8 @@ import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.resources.language.I18n; @@ -558,13 +560,13 @@ public void tooltipProcessor(UnaryOperator operator) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (containsMouse(mouseX, mouseY)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (containsMouse(event)) { this.wasClicked = true; return true; } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override @@ -588,11 +590,11 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { if (!interactable) return false; - if (wasClicked() && containsMouse(mouseX, mouseY)) { - if (doAction(mouseX, mouseY, button)) { + if (wasClicked() && containsMouse(event)) { + if (doAction(event)) { ((CurrentDraggingStack) DraggingContext.getInstance()).drop(); return true; } @@ -600,10 +602,10 @@ public boolean mouseReleased(double mouseX, double mouseY, int button) { return false; } - protected boolean doAction(double mouseX, double mouseY, int button) { + protected boolean doAction(MouseButtonEvent event) { if (interactableFavorites && ConfigObject.getInstance().isFavoritesEnabled() && !getCurrentEntry().isEmpty()) { ModifierKeyCode keyCode = ConfigObject.getInstance().getFavoriteKeyCode(); - if (keyCode.matchesMouse(button)) { + if (keyCode.matchesMouse(event.button())) { FavoriteEntry favoriteEntry = asFavoriteEntry(); if (favoriteEntry != null) { if (reverseFavoritesAction()) { @@ -616,13 +618,13 @@ protected boolean doAction(double mouseX, double mouseY, int button) { } } - if (!(Minecraft.getInstance().screen instanceof DisplayScreen) && Screen.hasControlDown()) { + if (!(minecraft.screen instanceof DisplayScreen) && minecraft.hasControlDown()) { try { TransferHandler handler = getTransferHandler(true); if (handler != null) { AbstractContainerScreen containerScreen = REIRuntime.getInstance().getPreviousContainerScreen(); - TransferHandler.Context context = TransferHandler.Context.create(true, Screen.hasShiftDown() || button == 1, containerScreen, display); + TransferHandler.Context context = TransferHandler.Context.create(true, minecraft.hasShiftDown() || event.button() == 1, containerScreen, display); TransferHandler.ApplicabilityResult applicabilityResult = handler.checkApplicable(context); if (!applicabilityResult.isApplicable()) return false; TransferHandler.Result transferResult; @@ -647,9 +649,9 @@ protected boolean doAction(double mouseX, double mouseY, int button) { } } - if ((ConfigObject.getInstance().getRecipeKeybind().getType() != InputConstants.Type.MOUSE && button == 0) || ConfigObject.getInstance().getRecipeKeybind().matchesMouse(button)) + if ((ConfigObject.getInstance().getRecipeKeybind().getType() != InputConstants.Type.MOUSE && event.button() == 0) || ConfigObject.getInstance().getRecipeKeybind().matchesMouse(event.button())) return ViewSearchBuilder.builder().addRecipesFor(getCurrentEntry()).open(); - else if ((ConfigObject.getInstance().getUsageKeybind().getType() != InputConstants.Type.MOUSE && button == 1) || ConfigObject.getInstance().getUsageKeybind().matchesMouse(button)) + else if ((ConfigObject.getInstance().getUsageKeybind().getType() != InputConstants.Type.MOUSE && event.button() == 1) || ConfigObject.getInstance().getUsageKeybind().matchesMouse(event.button())) return ViewSearchBuilder.builder().addUsagesFor(getCurrentEntry()).open(); return false; @@ -677,19 +679,19 @@ public boolean containsMouse(double mouseX, double mouseY) { } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent keyEvent) { if (containsMouse(mouse())) { - return keyPressedIgnoreContains(keyCode, scanCode, modifiers); + return keyPressedIgnoreContains(keyEvent); } return false; } - public boolean keyPressedIgnoreContains(int keyCode, int scanCode, int modifiers) { + public boolean keyPressedIgnoreContains(KeyEvent keyEvent) { if (!interactable) return false; if (interactableFavorites && ConfigObject.getInstance().isFavoritesEnabled() && !getCurrentEntry().isEmpty()) { - if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(keyCode, scanCode)) { + if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(keyEvent.key(), keyEvent.scancode())) { FavoriteEntry favoriteEntry = asFavoriteEntry(); if (favoriteEntry != null) { if (reverseFavoritesAction()) { @@ -701,9 +703,9 @@ public boolean keyPressedIgnoreContains(int keyCode, int scanCode, int modifiers } } } - if (ConfigObject.getInstance().getRecipeKeybind().matchesKey(keyCode, scanCode)) + if (ConfigObject.getInstance().getRecipeKeybind().matchesKey(keyEvent.key(), keyEvent.scancode())) return ViewSearchBuilder.builder().addRecipesFor(getCurrentEntry()).open(); - else if (ConfigObject.getInstance().getUsageKeybind().matchesKey(keyCode, scanCode)) + else if (ConfigObject.getInstance().getUsageKeybind().matchesKey(keyEvent.key(), keyEvent.scancode())) return ViewSearchBuilder.builder().addUsagesFor(getCurrentEntry()).open(); return false; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java index d89824a65..b11551e5c 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java @@ -24,6 +24,7 @@ package me.shedaniel.rei.impl.client.gui.widget; import com.google.common.base.Suppliers; +import com.mojang.authlib.minecraft.client.MinecraftClient; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.math.impl.PointHelper; @@ -44,6 +45,8 @@ 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.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; @@ -66,7 +69,8 @@ public static Widget createAutoCraftingButtonWidget(Rectangle displayBounds, Rec Button autoCraftingButton = Widgets.createButton(rectangle, text) .focusable(false) .onClick(button -> { - AutoCraftingEvaluator.evaluateAutoCrafting(true, Screen.hasShiftDown(), displaySupplier.get(), idsSupplier); + Minecraft minecraft = Minecraft.getInstance(); + AutoCraftingEvaluator.evaluateAutoCrafting(true, minecraft.hasShiftDown(), displaySupplier.get(), idsSupplier); }); return new DelegateWidget(autoCraftingButton) { final Supplier result = Suppliers.memoizeWithExpiration( @@ -108,15 +112,15 @@ private void tryTooltip(AutoCraftingEvaluator.AutoCraftingResult result, Point p } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (displaySupplier.get().getDisplayLocation().isPresent() && ConfigObject.getInstance().getCopyRecipeIdentifierKeybind().matchesKey(keyCode, scanCode) && containsMouse(PointHelper.ofMouse())) { + public boolean keyPressed(KeyEvent event) { + if (displaySupplier.get().getDisplayLocation().isPresent() && ConfigObject.getInstance().getCopyRecipeIdentifierKeybind().matchesKey(event.key(), event.scancode()) && containsMouse(PointHelper.ofMouse())) { minecraft.keyboardHandler.setClipboard(displaySupplier.get().getDisplayLocation().get().toString()); if (ConfigObject.getInstance().isToastDisplayedOnCopyIdentifier()) { CopyRecipeIdentifierToast.addToast(I18n.get("msg.rei.copied_recipe_id"), I18n.get("msg.rei.recipe_id_details", displaySupplier.get().getDisplayLocation().get().toString())); } return true; } else if (ConfigObject.getInstance().isFavoritesEnabled() && containsMouse(PointHelper.ofMouse())) { - if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(keyCode, scanCode)) { + if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(event.key(), event.scancode())) { FavoritesListWidget favoritesListWidget = ScreenOverlayImpl.getFavoritesListWidget(); if (favoritesListWidget != null) { @@ -126,19 +130,19 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (displaySupplier.get().getDisplayLocation().isPresent() && ConfigObject.getInstance().getCopyRecipeIdentifierKeybind().matchesMouse(button) && containsMouse(PointHelper.ofMouse())) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (displaySupplier.get().getDisplayLocation().isPresent() && ConfigObject.getInstance().getCopyRecipeIdentifierKeybind().matchesMouse(event.button()) && containsMouse(PointHelper.ofMouse())) { minecraft.keyboardHandler.setClipboard(displaySupplier.get().getDisplayLocation().get().toString()); if (ConfigObject.getInstance().isToastDisplayedOnCopyIdentifier()) { CopyRecipeIdentifierToast.addToast(I18n.get("msg.rei.copied_recipe_id"), I18n.get("msg.rei.recipe_id_details", displaySupplier.get().getDisplayLocation().get().toString())); } return true; } else if (ConfigObject.getInstance().isFavoritesEnabled() && containsMouse(PointHelper.ofMouse())) { - if (ConfigObject.getInstance().getFavoriteKeyCode().matchesMouse(button)) { + if (ConfigObject.getInstance().getFavoriteKeyCode().matchesMouse(event.button())) { FavoritesListWidget favoritesListWidget = ScreenOverlayImpl.getFavoritesListWidget(); if (favoritesListWidget != null) { @@ -148,7 +152,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } }; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ListWidget.java index 0a7dcdd18..24a60aa8c 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ListWidget.java @@ -30,6 +30,7 @@ import me.shedaniel.rei.api.client.gui.widgets.WidgetWithBounds; import me.shedaniel.rei.api.client.gui.widgets.Widgets; import me.shedaniel.rei.api.common.util.CollectionUtils; +import net.minecraft.client.input.MouseButtonEvent; import org.joml.Matrix3x2f; import java.util.ArrayList; @@ -206,11 +207,11 @@ public WidgetWithBounds delegate() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - boolean clicked = super.mouseClicked(mouseX, mouseY, button); + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + boolean clicked = super.mouseClicked(event, doubled); Rectangle bounds = delegate().getBounds(); - if (clicked || new Rectangle(position.x, position.y, this.bounds.width, bounds.height).contains(mouseX, mouseY)) { + if (clicked || new Rectangle(position.x, position.y, this.bounds.width, bounds.height).contains(event.x(), event.y())) { if (isSelectable.test(index, list.get(index))) { selected.accept(index); if (!clicked) { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/MergedWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/MergedWidget.java index 54a801061..8d0535d12 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/MergedWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/MergedWidget.java @@ -28,6 +28,9 @@ import me.shedaniel.rei.api.common.util.CollectionUtils; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import java.util.Comparator; import java.util.List; @@ -67,45 +70,45 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { for (Widget widget : this.widgets) { - if (widget.keyPressed(keyCode, scanCode, modifiers)) + if (widget.keyPressed(event)) return true; } return false; } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { + public boolean keyReleased(KeyEvent event) { for (Widget widget : this.widgets) { - if (widget.keyReleased(keyCode, scanCode, modifiers)) + if (widget.keyReleased(event)) return true; } return false; } @Override - public boolean charTyped(char character, int modifiers) { + public boolean charTyped(CharacterEvent event) { for (Widget widget : this.widgets) { - if (widget.charTyped(character, modifiers)) + if (widget.charTyped(event)) return true; } return false; } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { for (Widget widget : this.widgets) { - if (widget.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + if (widget.mouseDragged(event, deltaX, deltaY)) return true; } return false; } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { for (Widget widget : this.widgets) { - if (widget.mouseReleased(mouseX, mouseY, button)) + if (widget.mouseReleased(event)) return true; } return false; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/MergedWidgetWithBounds.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/MergedWidgetWithBounds.java index 89e05d1ee..41b193cf1 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/MergedWidgetWithBounds.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/MergedWidgetWithBounds.java @@ -29,6 +29,9 @@ import me.shedaniel.rei.api.common.util.CollectionUtils; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import java.util.Comparator; import java.util.List; @@ -66,45 +69,45 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { for (Widget widget : this.widgets) { - if (widget.keyPressed(keyCode, scanCode, modifiers)) + if (widget.keyPressed(event)) return true; } return false; } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { + public boolean keyReleased(KeyEvent event) { for (Widget widget : this.widgets) { - if (widget.keyReleased(keyCode, scanCode, modifiers)) + if (widget.keyReleased(event)) return true; } return false; } @Override - public boolean charTyped(char character, int modifiers) { + public boolean charTyped(CharacterEvent event) { for (Widget widget : this.widgets) { - if (widget.charTyped(character, modifiers)) + if (widget.charTyped(event)) return true; } return false; } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { for (Widget widget : this.widgets) { - if (widget.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + if (widget.mouseDragged(event, deltaX, deltaY)) return true; } return false; } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { for (Widget widget : this.widgets) { - if (widget.mouseReleased(mouseX, mouseY, button)) + if (widget.mouseReleased(event)) return true; } return false; @@ -147,4 +150,4 @@ public Optional getChildAt(double mouseX, double mouseY) { return Optional.empty(); } -} \ No newline at end of file +} diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/OverflowWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/OverflowWidget.java index 0b88206c9..3f0937df5 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/OverflowWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/OverflowWidget.java @@ -33,6 +33,7 @@ import me.shedaniel.rei.api.client.gui.widgets.CloseableScissors; import me.shedaniel.rei.api.client.gui.widgets.WidgetWithBounds; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.input.MouseButtonEvent; import org.joml.Matrix3x2f; @SuppressWarnings("UnstableApiUsage") @@ -119,10 +120,10 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (super.mouseClicked(mouseX, mouseY, button)) return true; - if (containsMouse(mouseX, mouseY)) { - if (button == 0) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (super.mouseClicked(event, doubled)) return true; + if (containsMouse(event)) { + if (event.button() == 0) { dragging = true; } @@ -133,18 +134,18 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (dragging && button == 0) { + public boolean mouseReleased(MouseButtonEvent event) { + if (dragging && event.button() == 0) { dragging = false; return true; } - return super.mouseReleased(mouseX, mouseY, button); + return super.mouseReleased(event); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (dragging && button == 0) { + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (dragging && event.button() == 0) { double newXTranslate = translate.target().x; double newYTranslate = translate.target().y; newXTranslate += deltaX * scale.doubleValue(); @@ -155,6 +156,6 @@ public boolean mouseDragged(double mouseX, double mouseY, int button, double del return true; } - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return super.mouseDragged(event, deltaX, deltaY); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ScissoredWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ScissoredWidget.java index 5b3eb37d5..5a1dc51d7 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ScissoredWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ScissoredWidget.java @@ -29,6 +29,7 @@ import me.shedaniel.rei.api.client.gui.widgets.Widget; import me.shedaniel.rei.api.client.gui.widgets.WidgetWithBounds; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.input.MouseButtonEvent; import java.util.function.Supplier; @@ -70,7 +71,7 @@ public boolean containsMouse(double mouseX, double mouseY) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - return containsMouse(mouseX, mouseY) && super.mouseClicked(mouseX, mouseY, button); + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + return containsMouse(event) && super.mouseClicked(event, doubled); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ScrollableViewWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ScrollableViewWidget.java index 3ba32e202..435878762 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ScrollableViewWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/ScrollableViewWidget.java @@ -31,6 +31,7 @@ import me.shedaniel.rei.api.client.gui.widgets.Widgets; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import org.joml.Matrix3x2f; import java.util.ArrayList; @@ -84,18 +85,18 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (bounds.contains(mouseX, mouseY) && scrolling.updateDraggingState(mouseX, mouseY, button)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (bounds.contains(event.x(), event.y()) && scrolling.updateDraggingState(event.x(), event.y(), event.button())) { return true; } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (scrolling.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (scrolling.mouseDragged(event.x(), event.y(), event.button(), deltaX, deltaY)) return true; - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return super.mouseDragged(event, deltaX, deltaY); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java index 0bb87510e..962850990 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/TabWidget.java @@ -45,6 +45,7 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.Component; import net.minecraft.util.ARGB; @@ -83,8 +84,8 @@ public static TabWidget create(int id, int tabSize, int leftX, int bottomY, int } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - return button == 0 && containsMouse(mouseX, mouseY) && onClick != null && onClick.test(this); + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + return event.button() == 0 && containsMouse(event) && onClick != null && onClick.test(this); } public void setRenderer(DisplayCategory category, Renderer renderer, Component categoryName, boolean selected) { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ButtonWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ButtonWidget.java index 709e3df81..3b0903062 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ButtonWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/ButtonWidget.java @@ -36,6 +36,8 @@ import net.minecraft.client.gui.components.WidgetSprites; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.navigation.FocusNavigationEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.network.chat.Component; @@ -251,8 +253,8 @@ public void onClick() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (containsMouse(mouseX, mouseY) && isEnabled() && button == 0) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (containsMouse(event) && isEnabled() && event.button() == 0) { minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); onClick(); return true; @@ -261,9 +263,9 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } @Override - public boolean keyPressed(int int_1, int int_2, int int_3) { + public boolean keyPressed(KeyEvent event) { if (this.isEnabled() && focused) { - if (int_1 != 257 && int_1 != 32 && int_1 != 335) { + if (event.key() != 257 && event.key() != 32 && event.key() != 335) { return false; } else { minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/LabelWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/LabelWidget.java index bc4f1aa56..de193bcb2 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/LabelWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/LabelWidget.java @@ -38,6 +38,8 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.navigation.FocusNavigationEvent; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.locale.Language; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; @@ -265,8 +267,8 @@ else if (focused) } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (button == 0 && isClickable() && containsMouse(mouseX, mouseY)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (event.button() == 0 && isClickable() && containsMouse(event)) { Widgets.produceClickSound(); if (onClick != null) onClick.accept(this); @@ -276,10 +278,10 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } @Override - public boolean keyPressed(int int_1, int int_2, int int_3) { + public boolean keyPressed(KeyEvent event) { if (!isClickable() || !isFocusable() || !focused) return false; - if (int_1 != 257 && int_1 != 32 && int_1 != 335) + if (event.key() != 257 && event.key() != 32 && event.key() != 335) return false; Widgets.produceClickSound(); if (onClick != null) diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/TextFieldWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/TextFieldWidget.java index 8fb1c6e63..8fcbf9b72 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/TextFieldWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/basewidgets/TextFieldWidget.java @@ -33,6 +33,9 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.navigation.FocusNavigationEvent; 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.Style; import net.minecraft.util.ARGB; import net.minecraft.util.FormattedCharSequence; @@ -166,7 +169,7 @@ public void onChanged(String newText) { } private void erase(int offset) { - if (Screen.hasControlDown()) { + if (minecraft.hasControlDown()) { this.eraseWords(offset); } else { this.eraseCharacters(offset); @@ -268,23 +271,23 @@ public void moveCursorToEnd() { } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { if (this.isVisible() && this.isFocused()) { - this.selecting = Screen.hasShiftDown(); - if (Screen.isSelectAll(keyCode)) { + this.selecting = minecraft.hasShiftDown(); + if (event.isSelectAll()) { this.moveCursorToEnd(); this.setHighlightPos(0); return true; - } else if (Screen.isCopy(keyCode)) { + } else if (event.isCopy()) { minecraft.keyboardHandler.setClipboard(this.getSelectedText()); return true; - } else if (Screen.isPaste(keyCode)) { + } else if (event.isPaste()) { if (this.editable) { this.addText(minecraft.keyboardHandler.getClipboard()); } return true; - } else if (Screen.isCut(keyCode)) { + } else if (event.isCut()) { minecraft.keyboardHandler.setClipboard(this.getSelectedText()); if (this.editable) { this.addText(""); @@ -292,12 +295,12 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { return true; } else { - switch (keyCode) { + switch (event.key()) { case 259: if (this.editable) { this.selecting = false; this.erase(-1); - this.selecting = Screen.hasShiftDown(); + this.selecting = event.hasShiftDown(); } return true; @@ -307,17 +310,17 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { case 266: case 267: default: - return keyCode != 256; + return event.key() != 256; case 261: if (this.editable) { this.selecting = false; this.erase(1); - this.selecting = Screen.hasShiftDown(); + this.selecting = event.hasShiftDown(); } return true; case 262: - if (Screen.hasControlDown()) { + if (event.hasControlDown()) { this.moveCursorTo(this.getWordPosition(1)); } else { this.moveCursor(1); @@ -325,7 +328,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { return true; case 263: - if (Screen.hasControlDown()) { + if (event.hasControlDown()) { this.moveCursorTo(this.getWordPosition(-1)); } else { this.moveCursor(-1); @@ -346,15 +349,16 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } @Override - public boolean charTyped(char character, int modifiers) { + public boolean charTyped(CharacterEvent event) { if (this.isVisible() && this.isFocused()) { - if (StringUtil.isAllowedChatCharacter(character) && !( - Screen.hasControlDown() && !Screen.hasShiftDown() && !Screen.hasAltDown() && ( - character == 'a' || character == 'c' || character == 'v' + String character = event.codepointAsString(); + if (event.isAllowedChatCharacter() && !( + minecraft.hasControlDown() && !minecraft.hasShiftDown() && !minecraft.hasAltDown() && ( + character.equals("a") || character.equals("c") || character.equals("v") ) )) { if (this.editable) { - this.addText(Character.toString(character)); + this.addText(character); } return true; @@ -372,17 +376,18 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { if (!this.isVisible()) { return false; } else { - boolean hovered = mouseX >= (double) this.bounds.x && mouseX < (double) (this.bounds.x + this.bounds.width) && mouseY >= (double) this.bounds.y && mouseY < (double) (this.bounds.y + this.bounds.height); + boolean hovered = event.x() >= (double) this.bounds.x && event.x() < (double) (this.bounds.x + this.bounds.width) + && event.y() >= (double) this.bounds.y && event.y() < (double) (this.bounds.y + this.bounds.height); if (this.focusUnlocked) { this.setFocused(hovered); } - if (this.focused && hovered && button == 0) { - int int_2 = Mth.floor(mouseX) - this.bounds.x; + if (this.focused && hovered && event.button() == 0) { + int int_2 = Mth.floor(event.x()) - this.bounds.x; if (this.hasBorder) { int_2 -= 4; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListStackEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListStackEntry.java index 38aad1187..c8e81e264 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListStackEntry.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListStackEntry.java @@ -41,6 +41,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.InputQuirks; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; import org.jetbrains.annotations.Nullable; @@ -153,8 +155,8 @@ protected void drawCurrentEntry(GuiGraphics graphics, int mouseX, int mouseY, fl } @Override - protected boolean doAction(double mouseX, double mouseY, int button) { - if (collapsedStack != null && button == 0 && Screen.hasAltDown()) { + protected boolean doAction(MouseButtonEvent event) { + if (collapsedStack != null && event.button() == 0 && event.hasAltDown()) { parent.updatedCount++; collapsedStack.setExpanded(!collapsedStack.isExpanded()); parent.updateStacks(); @@ -177,7 +179,7 @@ protected boolean doAction(double mouseX, double mouseY, int button) { return true; } - return super.doAction(mouseX, mouseY, button); + return super.doAction(event); } public void collapsed(CollapsedStack collapsedStack) { @@ -203,7 +205,7 @@ public Tooltip getCurrentTooltip(TooltipContext context) { if (!this.collapsedStack.isExpanded()) { Tooltip tooltip = Tooltip.create(context.getPoint(), Component.translatable("text.rei.collapsed.entry", collapsedStack.getName())); tooltip.add(new CollapsedEntriesTooltip(collapsedStack)); - tooltip.add(Component.translatable(Minecraft.ON_OSX ? "text.rei.collapsed.entry.hint.expand.macos" : "text.rei.collapsed.entry.hint.expand", collapsedStack.getName(), collapsedStack.getIngredient().size()) + tooltip.add(Component.translatable(InputQuirks.REPLACE_CTRL_KEY_WITH_CMD_KEY ? "text.rei.collapsed.entry.hint.expand.macos" : "text.rei.collapsed.entry.hint.expand", collapsedStack.getName(), collapsedStack.getIngredient().size()) .withStyle(ChatFormatting.GRAY, ChatFormatting.ITALIC)); ClientHelper.getInstance().appendModIdToTooltips(tooltip, collapsedStack.getModId()); return tooltip; @@ -212,7 +214,7 @@ public Tooltip getCurrentTooltip(TooltipContext context) { Tooltip tooltip = super.getCurrentTooltip(context); if (tooltip != null && this.collapsedStack != null) { - tooltip.entries().add(Mth.clamp(tooltip.entries().size() - 1, 0, tooltip.entries().size() - 1), Tooltip.entry(Component.translatable(Minecraft.ON_OSX ? "text.rei.collapsed.entry.hint.collapse.macos" : "text.rei.collapsed.entry.hint.collapse", collapsedStack.getName(), collapsedStack.getIngredient().size()) + tooltip.entries().add(Mth.clamp(tooltip.entries().size() - 1, 0, tooltip.entries().size() - 1), Tooltip.entry(Component.translatable(InputQuirks.REPLACE_CTRL_KEY_WITH_CMD_KEY ? "text.rei.collapsed.entry.hint.collapse.macos" : "text.rei.collapsed.entry.hint.collapse", collapsedStack.getName(), collapsedStack.getIngredient().size()) .withStyle(ChatFormatting.GRAY, ChatFormatting.ITALIC))); } return tooltip; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java index 37c70d1c2..1a1445b81 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java @@ -57,6 +57,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.player.LocalPlayer; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; @@ -169,7 +171,7 @@ public DraggedAcceptorResult acceptDraggedStack(DraggingContext context, @Override public boolean mouseScrolled(double mouseX, double mouseY, double amountX, double amountY) { if (containsChecked(mouseX, mouseY, false) && amountY != 0) { - if (Screen.hasControlDown()) { + if (Minecraft.getInstance().hasControlDown()) { ConfigObjectImpl config = ConfigManagerImpl.getInstance().getConfig(); scaleIndicator.setAs(10.0D); if (config.setEntrySize(config.getEntrySize() + Double.compare(amountY, 0) * 0.05)) { @@ -226,10 +228,10 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { protected abstract void renderEntries(GuiGraphics graphics, int mouseX, int mouseY, float delta); @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent keyEvent) { if (containsChecked(mouse(), false)) for (Widget widget : getEntryWidgets()) - if (widget.keyPressed(keyCode, scanCode, modifiers)) + if (widget.keyPressed(keyEvent)) return true; return false; } @@ -290,17 +292,17 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { if (!hasSpace()) return false; for (Widget widget : children()) - if (widget.mouseClicked(mouseX, mouseY, button)) + if (widget.mouseClicked(event, doubled)) return true; return false; } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (containsChecked(mouseX, mouseY, false)) { + public boolean mouseReleased(MouseButtonEvent event) { + if (containsChecked(event.x(), event.y(), false)) { LocalPlayer player = minecraft.player; if (ClientHelper.getInstance().isCheating() && !(Minecraft.getInstance().screen instanceof DisplayScreen) && player != null && player.containerMenu != null && !player.containerMenu.getCarried().isEmpty() && ClientHelperImpl.getInstance().canDeleteItems()) { EntryStack stack = EntryStacks.of(minecraft.player.containerMenu.getCarried().copy()); @@ -311,7 +313,7 @@ public boolean mouseReleased(double mouseX, double mouseY, int button) { boolean canDelete = true; for (Widget child : children()) { - if (child.containsMouse(mouseX, mouseY) && child instanceof EntryWidget widget) { + if (child.containsMouse(event.x(), event.y()) && child instanceof EntryWidget widget) { if (widget.cancelDeleteItems(stack)) { canDelete = false; break; @@ -325,7 +327,7 @@ public boolean mouseReleased(double mouseX, double mouseY, int button) { } } for (Widget widget : children()) - if (widget.mouseReleased(mouseX, mouseY, button)) + if (widget.mouseReleased(event)) return true; } return false; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java index 66facb832..47ee522f1 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/PaginatedEntryListWidget.java @@ -218,7 +218,7 @@ public void init(ScreenOverlayImpl overlay) { graphics.blit(RenderPipelines.GUI_TEXTURED, InternalTextures.ARROW_RIGHT_TEXTURE, bounds.x + 4, bounds.y + 4, 0, 0, 8, 8, 8, 8); })); this.additionalWidgets.add(Widgets.createClickableLabel(new Point(overlayBounds.x + (overlayBounds.width / 2), overlayBounds.y + (ConfigObject.getInstance().getSearchFieldLocation() == SearchFieldLocation.TOP_SIDE ? 24 : 0) + 10), Component.empty(), label -> { - if (!Screen.hasShiftDown()) { + if (!minecraft.hasShiftDown()) { setPage(0); updateEntriesPosition(); } else { @@ -236,7 +236,7 @@ public void init(ScreenOverlayImpl overlay) { @Override public boolean mouseScrolled(double mouseX, double mouseY, double amountX, double amountY) { if (super.mouseScrolled(mouseX, mouseY, amountX, amountY)) return true; - if (!Screen.hasControlDown()) { + if (!minecraft.hasControlDown()) { if (amountY > 0 && leftButton.isEnabled()) leftButton.onClick(); else if (amountY < 0 && rightButton.isEnabled()) diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java index d771fa6bb..771222b69 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/ScrolledEntryListWidget.java @@ -38,6 +38,7 @@ import me.shedaniel.rei.impl.common.entry.type.collapsed.CollapsedStack; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.util.Mth; import java.util.ArrayList; @@ -149,7 +150,7 @@ protected void updateEntries(int entrySize, boolean zoomed) { @Override public boolean mouseScrolled(double mouseX, double mouseY, double amountX, double amountY) { - if (containsChecked(mouseX, mouseY, false) && !Screen.hasControlDown() && amountY != 0) { + if (containsChecked(mouseX, mouseY, false) && !minecraft.hasControlDown() && amountY != 0) { scrolling.offset(ClothConfigInitializer.getScrollStep() * -amountY, true); return true; } @@ -158,18 +159,18 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double dx, double dy) { - if (hasSpace() && scrolling.mouseDragged(mouseX, mouseY, button, dx, dy)) + public boolean mouseDragged(MouseButtonEvent event, double dx, double dy) { + if (hasSpace() && 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); } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { if (!hasSpace()) return false; - if (scrolling.updateDraggingState(mouseX, mouseY, button)) + if (scrolling.updateDraggingState(event.x(), event.y(), event.button())) return true; - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/FavoritesListWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/FavoritesListWidget.java index fb40424a1..79704b61e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/FavoritesListWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/FavoritesListWidget.java @@ -24,6 +24,7 @@ package me.shedaniel.rei.impl.client.gui.widget.favorites; import com.google.common.collect.ImmutableList; +import com.mojang.authlib.minecraft.client.MinecraftClient; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.client.REIRuntime; @@ -64,6 +65,8 @@ import me.shedaniel.rei.impl.common.util.RectangleUtils; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import org.apache.commons.lang3.mutable.MutableLong; import org.apache.commons.lang3.tuple.Triple; import org.jetbrains.annotations.ApiStatus; @@ -93,7 +96,7 @@ public class FavoritesListWidget extends WidgetWithBounds implements DraggableCo @Override public boolean mouseScrolled(double mouseX, double mouseY, double amountX, double amountY) { if (fullBounds.contains(mouseX, mouseY)) { - if (Screen.hasControlDown() && amountY != 0) { + if (minecraft.hasControlDown() && amountY != 0) { ConfigObjectImpl config = ConfigManagerImpl.getInstance().getConfig(); ScreenOverlayImpl.getEntryListWidget().scaleIndicator.setAs(10.0D); if (config.setEntrySize(config.getEntrySize() + amountY * 0.075)) { @@ -263,12 +266,12 @@ private void renderAddFavorite(GuiGraphics graphics, int mouseX, int mouseY, flo } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { if (containsMouse(mouse())) for (Widget widget : children()) - if (widget.keyPressed(keyCode, scanCode, modifiers)) + if (widget.keyPressed(event)) return true; - if (displayHistory.keyPressed(keyCode, scanCode, modifiers)) + if (displayHistory.keyPressed(event)) return true; return false; } @@ -291,25 +294,25 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (systemRegion.mouseClicked(mouseX, mouseY, button) || region.mouseClicked(mouseX, mouseY, button)) + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (systemRegion.mouseClicked(event, doubled) || region.mouseClicked(event, doubled)) return true; for (Widget widget : children()) - if (widget.mouseClicked(mouseX, mouseY, button)) + if (widget.mouseClicked(event, doubled)) return true; - if (displayHistory.mouseClicked(mouseX, mouseY, button)) + if (displayHistory.mouseClicked(event, doubled)) return true; return false; } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (containsMouse(mouseX, mouseY)) { + public boolean mouseReleased(MouseButtonEvent event) { + if (containsMouse(event)) { for (Widget widget : children()) - if (widget.mouseReleased(mouseX, mouseY, button)) + if (widget.mouseReleased(event)) return true; } - if (displayHistory.mouseReleased(mouseX, mouseY, button)) + if (displayHistory.mouseReleased(event)) return true; return false; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java index de188e00d..6f1b8e54c 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java @@ -42,6 +42,9 @@ 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.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; +import net.minecraft.client.input.MouseButtonInfo; import net.minecraft.network.chat.Component; import org.jetbrains.annotations.Nullable; import org.joml.Vector3f; @@ -219,10 +222,10 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (containsMouse(mouseX + xOffset, mouseY)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (containsMouse(event.x() + xOffset, event.y())) { for (Widget widget : widgets.get()) { - if (widget.mouseClicked(transformMouseX(mouseX), transformMouseY(mouseY), button)) { + if (widget.mouseClicked(new MouseButtonEvent(transformMouseX(event.x()), transformMouseY(event.y()), event.buttonInfo()), doubled)) { return true; } } @@ -234,16 +237,19 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { + double mouseX = event.x(); + double mouseY = event.y(); + if (containsMouse(mouseX + xOffset, mouseY)) { for (Widget widget : widgets.get()) { - if (widget.mouseReleased(transformMouseX(mouseX), transformMouseY(mouseY), button)) { + if (widget.mouseReleased(new MouseButtonEvent(transformMouseX(mouseX), transformMouseY(mouseY), event.buttonInfo()))) { return true; } } - if (button == 0 && plusButton.containsMouse(mouseX + xOffset, mouseY)) { - AutoCraftingEvaluator.evaluateAutoCrafting(true, Screen.hasShiftDown(), display, display::provideInternalDisplayIds); + if (event.button() == 0 && plusButton.containsMouse(mouseX + xOffset, mouseY)) { + AutoCraftingEvaluator.evaluateAutoCrafting(true, event.hasShiftDown(), display, display::provideInternalDisplayIds); Widgets.produceClickSound(); return true; } @@ -255,15 +261,15 @@ public boolean mouseReleased(double mouseX, double mouseY, int button) { return true; } - return super.mouseReleased(mouseX, mouseY, button); + return super.mouseReleased(event); } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { try { Widget.pushMouse(new Point(transformMouseX(mouse().x), transformMouseY(mouse().y))); for (Widget widget : widgets.get()) { - if (widget.keyPressed(keyCode, scanCode, modifiers)) { + if (widget.keyPressed(event)) { return true; } } @@ -271,7 +277,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { Widget.popMouse(); } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } private float xOffset() { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java index c5c3a09f6..085816997 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java @@ -44,6 +44,8 @@ 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.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.util.Mth; import org.jetbrains.annotations.Nullable; @@ -227,18 +229,18 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { for (DisplayEntry entry : DisplayHistoryManager.INSTANCE.getEntries(this)) { - if (!ignoreNextMouse && entry.mouseClicked(mouseX, mouseY, button)) { + if (!ignoreNextMouse && entry.mouseClicked(event, doubled)) { return true; } } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(MouseButtonEvent event) { if (ignoreNextMouse) { ignoreNextMouse = false; return true; @@ -247,12 +249,12 @@ public boolean mouseReleased(double mouseX, double mouseY, int button) { Collection entries = DisplayHistoryManager.INSTANCE.getEntries(this); for (DisplayEntry entry : entries) { - if (entry.mouseReleased(mouseX, mouseY, button)) { + if (entry.mouseReleased(event)) { return true; } } - if (ConfigObject.getInstance().getFavoriteKeyCode().matchesMouse(button)) { + if (ConfigObject.getInstance().getFavoriteKeyCode().matchesMouse(event.button())) { Point mouse = PointHelper.ofMouse(); if (containsMouse(mouse)) { @@ -272,20 +274,20 @@ public boolean mouseReleased(double mouseX, double mouseY, int button) { } } - return super.mouseReleased(mouseX, mouseY, button); + return super.mouseReleased(event); } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { Collection entries = DisplayHistoryManager.INSTANCE.getEntries(this); for (DisplayEntry entry : entries) { - if (entry.keyPressed(keyCode, scanCode, modifiers)) { + if (entry.keyPressed(event)) { return true; } } - if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(keyCode, scanCode)) { + if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(event.key(), event.scancode())) { Point mouse = PointHelper.ofMouse(); if (containsMouse(mouse)) { @@ -305,7 +307,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(event); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/panel/FadingFavoritesPanelButton.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/panel/FadingFavoritesPanelButton.java index 1051dc75d..4cc79ff6b 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/panel/FadingFavoritesPanelButton.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/panel/FadingFavoritesPanelButton.java @@ -31,6 +31,7 @@ import me.shedaniel.rei.impl.client.gui.widget.favorites.FavoritesListWidget; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import java.util.Collections; import java.util.List; @@ -98,8 +99,8 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (isVisible() && containsMouse(mouseX, mouseY)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (isVisible() && containsMouse(event)) { this.wasClicked = true; return true; } @@ -107,8 +108,8 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (wasClicked() && isVisible() && containsMouse(mouseX, mouseY)) { + public boolean mouseReleased(MouseButtonEvent event) { + if (wasClicked() && isVisible() && containsMouse(event)) { onClick(); return true; } @@ -120,4 +121,4 @@ public boolean mouseReleased(double mouseX, double mouseY, int button) { protected abstract void queueTooltip(); protected abstract Rectangle updateArea(Rectangle fullArea); -} \ No newline at end of file +} diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/panel/rows/FavoritesPanelEntriesRow.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/panel/rows/FavoritesPanelEntriesRow.java index d2a7bb14a..b1094ab09 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/panel/rows/FavoritesPanelEntriesRow.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/panel/rows/FavoritesPanelEntriesRow.java @@ -43,6 +43,7 @@ import me.shedaniel.rei.impl.client.gui.widget.region.RegionDraggableStack; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; import org.jetbrains.annotations.Nullable; @@ -103,18 +104,21 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - return super.mouseClicked(mouseX, mouseY + panel.getScrolledAmount(), button); + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + return super.mouseClicked(new MouseButtonEvent(event.x(), event.y() + panel.getScrolledAmount(), + event.buttonInfo()), doubled); } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - return super.mouseDragged(mouseX, mouseY + panel.getScrolledAmount(), button, deltaX, deltaY); + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + return super.mouseDragged(new MouseButtonEvent(event.x(), event.y() + panel.getScrolledAmount(), + event.buttonInfo()), deltaX, deltaY); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { - return super.mouseReleased(mouseX, mouseY + panel.getScrolledAmount(), button); + public boolean mouseReleased(MouseButtonEvent event) { + return super.mouseReleased(new MouseButtonEvent(event.x(), event.y() + panel.getScrolledAmount(), + event.buttonInfo())); } @Nullable @@ -208,4 +212,4 @@ public void updateEntriesPosition(Predicate animated) { } } } -} \ No newline at end of file +} diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/hint/HintWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/hint/HintWidget.java index 6e10ab94e..e166c78b5 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/hint/HintWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/hint/HintWidget.java @@ -38,6 +38,7 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; import net.minecraft.network.chat.MutableComponent; @@ -161,14 +162,14 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (this.okayBounds.contains(mouseX, mouseY)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (this.okayBounds.contains(event.x(), event.y())) { this.parent.removeHint(this); Widgets.produceClickSound(); return true; } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/EntryStacksRegionWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/EntryStacksRegionWidget.java index 7ce7f5aba..590fac3c5 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/EntryStacksRegionWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/EntryStacksRegionWidget.java @@ -50,6 +50,8 @@ import me.shedaniel.rei.impl.client.gui.widget.EntryWidget; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.KeyEvent; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.util.Mth; import net.minecraft.util.Tuple; import net.minecraft.util.Unit; @@ -143,11 +145,11 @@ public List children() { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + if (scrolling.updateDraggingState(event.x(), event.y(), event.button())) { return true; } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override @@ -160,10 +162,10 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl } @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (scrolling.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + public boolean mouseDragged(MouseButtonEvent event, double deltaX, double deltaY) { + if (scrolling.mouseDragged(event.x(), event.y(), event.button(), deltaX, deltaY)) return true; - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + return super.mouseDragged(event, deltaX, deltaY); } private void updatePosition(float delta) { @@ -171,10 +173,10 @@ private void updatePosition(float delta) { } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent event) { if (containsMouse(mouse())) for (Widget widget : children()) - if (widget.keyPressed(keyCode, scanCode, modifiers)) + if (widget.keyPressed(event)) return true; return false; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/RegionEntryWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/RegionEntryWidget.java index 42d5b08cb..7c9c617fe 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/RegionEntryWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/RegionEntryWidget.java @@ -34,6 +34,7 @@ import me.shedaniel.rei.impl.client.gui.modules.MenuAccess; import me.shedaniel.rei.impl.client.gui.widget.DisplayedEntryWidget; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.input.MouseButtonEvent; import org.joml.Vector3f; import java.util.Collection; @@ -84,11 +85,11 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { } @Override - protected boolean doAction(double mouseX, double mouseY, int button) { - return entry.getEntry().doAction(button) || super.doAction(mouseX, mouseY, button); + protected boolean doAction(MouseButtonEvent event) { + return entry.getEntry().doAction(event.button()) || super.doAction(event); } public RealRegionEntry getEntry() { return entry; } -} \ No newline at end of file +} diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/RegionRenderingDebugger.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/RegionRenderingDebugger.java index b74fe259f..78e533a98 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/RegionRenderingDebugger.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/region/RegionRenderingDebugger.java @@ -56,7 +56,7 @@ public void render(GuiGraphics graphics, int x, int y, float delta) { lastAverageDebugTime = time.getValue() / size.doubleValue(); totalDebugTime = totalTime / 1000000d; } - Component debugText = Component.literal(String.format("%d entries, avg. %.0fns, ttl. %.2fms, %s fps", size.getValue(), lastAverageDebugTime, lastTotalDebugTime, minecraft.fpsString.split(" ")[0])); + Component debugText = Component.literal(String.format("%d entries, avg. %.0fns, ttl. %.2fms, %s fps", size.getValue(), lastAverageDebugTime, lastTotalDebugTime, minecraft.getFps())); int stringWidth = font.width(debugText); graphics.fillGradient(Math.min(x, minecraft.screen.width - stringWidth - 2), y, x + stringWidth + 2, y + font.lineHeight + 2, -16777216, -16777216); graphics.drawString(font, debugText, Math.min(x + 2, minecraft.screen.width - stringWidth), y + 2, -1, false); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java index fb15fcfb5..0ea80d783 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/search/OverlaySearchField.java @@ -50,6 +50,9 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; +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.client.resources.sounds.SimpleSoundInstance; import net.minecraft.network.chat.Component; @@ -149,7 +152,7 @@ public void laterRender(GuiGraphics graphics, int mouseX, int mouseY, float delt } private void drawHint(GuiGraphics graphics, int mouseX, int mouseY) { - boolean mouseDown = GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_LEFT) != 0; + boolean mouseDown = GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().handle(), GLFW.GLFW_MOUSE_BUTTON_LEFT) != 0; boolean clicking = false; if (mouseDown != previouslyClicking) { previouslyClicking = mouseDown; @@ -276,33 +279,33 @@ public int getManhattanDistance(Point point1, Point point2) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - boolean contains = containsMouse(mouseX, mouseY); - if (isVisible() && contains && button == 1) + public boolean mouseClicked(MouseButtonEvent event, boolean doubled) { + boolean contains = containsMouse(event); + if (isVisible() && contains && event.button() == 1) setText(""); - if (contains && button == 0 && isMain && ConfigObject.getInstance().isInventoryHighlightingAllowed()) + if (contains && event.button() == 0 && isMain && ConfigObject.getInstance().isInventoryHighlightingAllowed()) if (lastClickedDetails == null) - lastClickedDetails = new Tuple<>(System.currentTimeMillis(), new Point(mouseX, mouseY)); + lastClickedDetails = new Tuple<>(System.currentTimeMillis(), new Point(event.x(), event.y())); else if (System.currentTimeMillis() - lastClickedDetails.getA() > 1500) lastClickedDetails = null; - else if (getManhattanDistance(lastClickedDetails.getB(), new Point(mouseX, mouseY)) <= 25) { + else if (getManhattanDistance(lastClickedDetails.getB(), new Point(event.x(), event.y())) <= 25) { lastClickedDetails = null; isHighlighting = !isHighlighting; minecraft.getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); } else { - lastClickedDetails = new Tuple<>(System.currentTimeMillis(), new Point(mouseX, mouseY)); + lastClickedDetails = new Tuple<>(System.currentTimeMillis(), new Point(event.x(), event.y())); } - return super.mouseClicked(mouseX, mouseY, button); + return super.mouseClicked(event, doubled); } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(KeyEvent keyEvent) { if (this.isVisible() && this.isFocused() && isMain) - if (keyCode == 257 || keyCode == 335) { + if (keyEvent.key() == 257 || keyEvent.key() == 335) { addToHistory(getText()); setFocused(false); return true; - } else if (keyCode == 265) { + } else if (keyEvent.isUp()) { int i = history.indexOf(getText()) - 1; if (i < -1 && getText().isEmpty()) i = history.size() - 1; @@ -314,34 +317,34 @@ else if (i < -1) { setText(history.get(i)); return true; } - } else if (keyCode == 264) { + } else if (keyEvent.isDown()) { int i = history.indexOf(getText()) + 1; if (i > 0) { setText(i < history.size() ? history.get(i) : ""); return true; } } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(keyEvent); } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { + public boolean keyReleased(KeyEvent keyEvent) { if (this.isVisible() && this.isFocused() && isMain && keybindFocusKey != -1) { keybindFocusTime = -1; keybindFocusKey = -1; return true; } - return super.keyReleased(keyCode, scanCode, modifiers); + return super.keyReleased(keyEvent); } @Override - public boolean charTyped(char character, int modifiers) { - if (isMain && System.currentTimeMillis() - keybindFocusTime < 1000 && keybindFocusKey != -1 && InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), keybindFocusKey)) { + public boolean charTyped(CharacterEvent event) { + if (isMain && System.currentTimeMillis() - keybindFocusTime < 1000 && keybindFocusKey != -1 && InputConstants.isKeyDown(Minecraft.getInstance().getWindow(), keybindFocusKey)) { keybindFocusTime = -1; keybindFocusKey = -1; return true; } - return super.charTyped(character, modifiers); + return super.charTyped(event); } @Override diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/screen/DefaultScreenOverlayRenderer.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/screen/DefaultScreenOverlayRenderer.java index b9d04965d..4e5c43575 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/screen/DefaultScreenOverlayRenderer.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/registry/screen/DefaultScreenOverlayRenderer.java @@ -104,12 +104,12 @@ public void onApplied(Sink sink) { } resetFocused(screen); if (rendered[0] == 0 && !(screen instanceof DisplayScreen) && (!(screen instanceof AbstractContainerScreen) || rendered[0] < 2)) { - sink.render(graphics, mouseX, mouseY, delta.getRealtimeDeltaTicks()); + sink.render(graphics, mouseX, mouseY, delta); } rendered[0] = 1; - if (rendered[0] == 1) { - sink.lateRender(graphics, mouseX, mouseY, delta.getRealtimeDeltaTicks()); - } +// if (rendered[0] == 1) { + sink.lateRender(graphics, mouseX, mouseY, delta); +// } resetFocused(screen); }; } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/registry/displays/ServerDisplayRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/registry/displays/ServerDisplayRegistryImpl.java index b2ee8456c..e15a10dbc 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/registry/displays/ServerDisplayRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/registry/displays/ServerDisplayRegistryImpl.java @@ -79,7 +79,7 @@ public ServerDisplayRegistryImpl() { } long versionHash = playerVersionMap.getLong(player.getUUID()); if (versionHash != currentVersion) { - InternalLogger.getInstance().debug("Player %s has outdated displays version %X [latest version: %X]", player.getGameProfile().getName(), versionHash, currentVersion); + InternalLogger.getInstance().debug("Player %s has outdated displays version %X [latest version: %X]", player.getGameProfile().name(), versionHash, currentVersion); toUpdate.add(player); } } @@ -111,7 +111,7 @@ private void updatePlayers(RegistryAccess registryAccess, List pla long playerReloadHash = playerVersion >>> 32; playerVersionMap.put(player.getUUID(), version); if (playerReloadHash != reloadVersionHash) { - InternalLogger.getInstance().debug("Player %s has outdated displays version %X [latest version: %X], sending reset packet request.", player.getGameProfile().getName(), playerVersion, version); + InternalLogger.getInstance().debug("Player %s has outdated displays version %X [latest version: %X], sending reset packet request.", player.getGameProfile().name(), playerVersion, version); for (Packet packet : resetPacket.get()) { player.connection.send(packet); } @@ -120,13 +120,13 @@ private void updatePlayers(RegistryAccess registryAccess, List pla int playerMinorVersion = (int) playerVersion; int currentMinorVersion = (int) version; if (playerMinorVersion > currentMinorVersion) { - InternalLogger.getInstance().debug("Player %s has too new displays version %X [latest version: %X], sending reset packet request.", player.getGameProfile().getName(), playerVersion, version); + InternalLogger.getInstance().debug("Player %s has too new displays version %X [latest version: %X], sending reset packet request.", player.getGameProfile().name(), playerVersion, version); // Reset the player for (Packet packet : resetPacket.get()) { player.connection.send(packet); } } else { - InternalLogger.getInstance().debug("Player %s has outdated displays version %X [latest version: %X], sending update packets.", player.getGameProfile().getName(), playerVersion, version); + InternalLogger.getInstance().debug("Player %s has outdated displays version %X [latest version: %X], sending update packets.", player.getGameProfile().name(), playerVersion, version); // Update the player for (Packet packet : updatePackets.apply(IntIntPair.of(playerMinorVersion, currentMinorVersion))) { player.connection.send(packet); diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java index 4b0ec51d3..29484b800 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java @@ -209,7 +209,7 @@ public void fillCrashReport(CrashReport report, CrashReportCategory category, En @Environment(EnvType.CLIENT) public static class FluidEntryRenderer implements EntryRenderer { private static final Supplier MISSING_SPRITE = Suppliers.memoize(() -> { - TextureAtlas atlas = Minecraft.getInstance().getModelManager().getAtlas(TextureAtlas.LOCATION_BLOCKS); + TextureAtlas atlas = Minecraft.getInstance().getAtlasManager().getAtlasOrThrow(TextureAtlas.LOCATION_BLOCKS); return atlas.getSprite(MissingTextureAtlasSprite.getLocation()); }); @@ -221,9 +221,10 @@ private TextureAtlasSprite missingTexture() { public void render(EntryStack entry, GuiGraphics graphics, Rectangle bounds, int mouseX, int mouseY, float delta) { FluidStack stack = entry.getValue(); if (stack.isEmpty()) return; - TextureAtlasSprite sprite = FluidStackHooks.getStillTexture(stack); - if (sprite == null) return; - int color = FluidStackHooks.getColor(stack); + // TODO: 1.21.9 - fix +// TextureAtlasSprite sprite = FluidStackHooks.getStillTexture(stack); +// if (sprite == null) return; +// int color = FluidStackHooks.getColor(stack); /*SpriteRenderer.beginPass() .setup(immediate, RenderType.solid()) diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java index 8a3cb8db5..397c6097d 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/runtime/DefaultClientRuntimePlugin.java @@ -390,8 +390,9 @@ public Tooltip getTooltip(TooltipContext context) { public boolean doAction(int button) { Widgets.produceClickSound(); - if (!(Minecraft.getInstance().screen instanceof DisplayScreen) && Screen.hasControlDown()) { - AutoCraftingEvaluator.evaluateAutoCrafting(true, Screen.hasShiftDown(), display, Collections::emptyList); + Minecraft minecraft = Minecraft.getInstance(); + if (!(minecraft.screen instanceof DisplayScreen) && minecraft.hasControlDown()) { + AutoCraftingEvaluator.evaluateAutoCrafting(true, minecraft.hasShiftDown(), display, Collections::emptyList); return true; }