aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-04-14 18:10:37 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-04-14 18:10:37 +0800
commit256300ec1a83b237c1c3d1655afc93ab9f37cb76 (patch)
treec85da8e99e67b9892ab085a8d260bfb93d20d79d /src/main/java
parentb5fb8f4a0ce9595b8eedc236584db54e1db72fbd (diff)
downloadRoughlyEnoughItems-256300ec1a83b237c1c3d1655afc93ab9f37cb76.tar.gz
RoughlyEnoughItems-256300ec1a83b237c1c3d1655afc93ab9f37cb76.tar.bz2
RoughlyEnoughItems-256300ec1a83b237c1c3d1655afc93ab9f37cb76.zip
v2.7.5
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java10
-rw-r--r--src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java (renamed from src/main/java/me/shedaniel/rei/listeners/GhostSlotsHooks.java)5
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinRecipeBookGui.java13
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java12
4 files changed, 30 insertions, 10 deletions
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/RecipeBookGuiHooks.java
index b13ab8428..4737b2c9d 100644
--- a/src/main/java/me/shedaniel/rei/listeners/GhostSlotsHooks.java
+++ b/src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java
@@ -1,9 +1,12 @@
package me.shedaniel.rei.listeners;
import net.minecraft.client.gui.widget.RecipeBookGhostSlots;
+import net.minecraft.client.gui.widget.TextFieldWidget;
-public interface GhostSlotsHooks {
+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());