From 256300ec1a83b237c1c3d1655afc93ab9f37cb76 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 14 Apr 2019 18:10:37 +0800 Subject: v2.7.5 --- src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java | 10 +++++++++- .../java/me/shedaniel/rei/listeners/GhostSlotsHooks.java | 9 --------- .../java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java | 12 ++++++++++++ .../java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java | 13 +++++++++++-- src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java | 12 ++++++------ 5 files changed, 38 insertions(+), 18 deletions(-) delete mode 100644 src/main/java/me/shedaniel/rei/listeners/GhostSlotsHooks.java create mode 100644 src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java (limited to 'src/main/java') diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 46d14625a..551c4739a 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -11,6 +11,7 @@ import me.shedaniel.rei.client.ConfigManager; import me.shedaniel.rei.client.*; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks; +import me.shedaniel.rei.listeners.RecipeBookGuiHooks; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; @@ -20,6 +21,7 @@ import net.minecraft.client.gui.ContainerScreen; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen; import net.minecraft.client.gui.ingame.PlayerInventoryScreen; +import net.minecraft.client.gui.recipebook.RecipeBookGui; import net.minecraft.client.gui.widget.RecipeBookButtonWidget; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.item.ItemGroup; @@ -213,8 +215,14 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { }); ClothClientHooks.SCREEN_KEY_PRESSED.register((minecraftClient, screen, i, i1, i2) -> { if (screen instanceof CreativePlayerInventoryScreen && ((CreativePlayerInventoryScreenHooks) screen).rei_getSelectedTab() == ItemGroup.SEARCH.getIndex()) - if (screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget && ((TextFieldWidget) screen.getFocused()).isFocused()) + if (screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget) return ActionResult.PASS; + if (screen instanceof ContainerScreen && !(screen instanceof CreativePlayerInventoryScreen)) + if (screen.getFocused() != null && screen.getFocused() instanceof RecipeBookGui) { + RecipeBookGuiHooks gui = (RecipeBookGuiHooks) screen.getFocused(); + if (gui.rei_getSearchField() != null && gui.rei_getSearchField().isFocused()) + return ActionResult.PASS; + } if (screen instanceof ContainerScreen) if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2)) return ActionResult.SUCCESS; diff --git a/src/main/java/me/shedaniel/rei/listeners/GhostSlotsHooks.java b/src/main/java/me/shedaniel/rei/listeners/GhostSlotsHooks.java deleted file mode 100644 index b13ab8428..000000000 --- a/src/main/java/me/shedaniel/rei/listeners/GhostSlotsHooks.java +++ /dev/null @@ -1,9 +0,0 @@ -package me.shedaniel.rei.listeners; - -import net.minecraft.client.gui.widget.RecipeBookGhostSlots; - -public interface GhostSlotsHooks { - - RecipeBookGhostSlots rei_getGhostSlots(); - -} diff --git a/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java b/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java new file mode 100644 index 000000000..4737b2c9d --- /dev/null +++ b/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java @@ -0,0 +1,12 @@ +package me.shedaniel.rei.listeners; + +import net.minecraft.client.gui.widget.RecipeBookGhostSlots; +import net.minecraft.client.gui.widget.TextFieldWidget; + +public interface RecipeBookGuiHooks { + + RecipeBookGhostSlots rei_getGhostSlots(); + + TextFieldWidget rei_getSearchField(); + +} diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java b/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java index 4c280fbff..1cc1baf8a 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java @@ -1,21 +1,30 @@ package me.shedaniel.rei.mixin; -import me.shedaniel.rei.listeners.GhostSlotsHooks; +import me.shedaniel.rei.listeners.RecipeBookGuiHooks; import net.minecraft.client.gui.recipebook.RecipeBookGui; import net.minecraft.client.gui.widget.RecipeBookGhostSlots; +import net.minecraft.client.gui.widget.TextFieldWidget; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @Mixin(RecipeBookGui.class) -public class MixinRecipeBookGui implements GhostSlotsHooks { +public class MixinRecipeBookGui implements RecipeBookGuiHooks { @Shadow @Final protected RecipeBookGhostSlots ghostSlots; + @Shadow + private TextFieldWidget searchField; + public RecipeBookGhostSlots rei_getGhostSlots() { return ghostSlots; } + @Override + public TextFieldWidget rei_getSearchField() { + return searchField; + } + } diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java index 801fccc52..7765a1d3f 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java @@ -5,7 +5,7 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.*; import me.shedaniel.rei.client.ScreenHelper; import me.shedaniel.rei.gui.RecipeViewingScreen; -import me.shedaniel.rei.listeners.GhostSlotsHooks; +import me.shedaniel.rei.listeners.RecipeBookGuiHooks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.ContainerScreen; import net.minecraft.client.gui.Screen; @@ -239,9 +239,9 @@ public class DefaultPlugin implements REIPlugin { if (!recipe.getRecipe().isPresent()) return false; if (screen.getClass().isAssignableFrom(CraftingTableScreen.class)) - ((GhostSlotsHooks) (((CraftingTableScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); + ((RecipeBookGuiHooks) (((CraftingTableScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); else if (screen.getClass().isAssignableFrom(PlayerInventoryScreen.class)) - ((GhostSlotsHooks) (((PlayerInventoryScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); + ((RecipeBookGuiHooks) (((PlayerInventoryScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); else return false; MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, (Recipe) recipe.getRecipe().get(), Screen.hasShiftDown()); @@ -264,7 +264,7 @@ public class DefaultPlugin implements REIPlugin { if (!recipe.getRecipe().isPresent()) return false; if (screen instanceof FurnaceScreen) - ((GhostSlotsHooks) (((FurnaceScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); + ((RecipeBookGuiHooks) (((FurnaceScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); else return false; MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, (Recipe) recipe.getRecipe().get(), Screen.hasShiftDown()); @@ -287,7 +287,7 @@ public class DefaultPlugin implements REIPlugin { if (!recipe.getRecipe().isPresent()) return false; if (screen instanceof SmokerScreen) - ((GhostSlotsHooks) (((SmokerScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); + ((RecipeBookGuiHooks) (((SmokerScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); else return false; MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, (Recipe) recipe.getRecipe().get(), Screen.hasShiftDown()); @@ -315,7 +315,7 @@ public class DefaultPlugin implements REIPlugin { if (!recipe.getRecipe().isPresent()) return false; if (screen instanceof BlastFurnaceScreen) - ((GhostSlotsHooks) (((BlastFurnaceScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); + ((RecipeBookGuiHooks) (((BlastFurnaceScreen) screen).getRecipeBookGui())).rei_getGhostSlots().reset(); else return false; MinecraftClient.getInstance().interactionManager.clickRecipe(MinecraftClient.getInstance().player.container.syncId, (Recipe) recipe.getRecipe().get(), Screen.hasShiftDown()); -- cgit