aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-04-13 16:39:32 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-04-13 16:39:32 +0800
commitfc9daed9710b159155b989d07a690ba10be2dc68 (patch)
tree2809155ee254402c0d84b459d3bfd4b356e3f4de /src/main/java/me
parent2570a35b35ec29b6677e318f2bf3d5b6640bf106 (diff)
downloadRoughlyEnoughItems-fc9daed9710b159155b989d07a690ba10be2dc68.tar.gz
RoughlyEnoughItems-fc9daed9710b159155b989d07a690ba10be2dc68.tar.bz2
RoughlyEnoughItems-fc9daed9710b159155b989d07a690ba10be2dc68.zip
Bug fixes
Diffstat (limited to 'src/main/java/me')
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java17
-rw-r--r--src/main/java/me/shedaniel/rei/listeners/CreativePlayerInventoryScreenHooks.java5
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java17
-rw-r--r--src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java5
4 files changed, 40 insertions, 4 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index fdcdbabd2..1a30a8ba7 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -6,10 +6,12 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import me.shedaniel.cloth.api.ClientUtils;
import me.shedaniel.cloth.hooks.ClothClientHooks;
+import me.shedaniel.cloth.hooks.ScreenHooks;
import me.shedaniel.rei.api.*;
-import me.shedaniel.rei.client.*;
import me.shedaniel.rei.client.ConfigManager;
+import me.shedaniel.rei.client.*;
import me.shedaniel.rei.gui.ContainerScreenOverlay;
+import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.ModContainer;
@@ -20,6 +22,8 @@ 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.widget.RecipeBookButtonWidget;
+import net.minecraft.client.gui.widget.TextFieldWidget;
+import net.minecraft.item.ItemGroup;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Identifier;
import net.minecraft.util.Pair;
@@ -182,8 +186,12 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
});
ClothClientHooks.SCREEN_MOUSE_CLICKED.register((minecraftClient, screen, v, v1, i) -> {
if (screen instanceof CreativePlayerInventoryScreen)
- if (ScreenHelper.isOverlayVisible() && ScreenHelper.getLastOverlay().mouseClicked(v, v1, i))
+ if (ScreenHelper.isOverlayVisible() && ScreenHelper.getLastOverlay().mouseClicked(v, v1, i)) {
+ screen.setFocused(ScreenHelper.getLastOverlay());
+ if (i == 0)
+ screen.setDragging(true);
return ActionResult.SUCCESS;
+ }
return ActionResult.PASS;
});
ClothClientHooks.SCREEN_MOUSE_SCROLLED.register((minecraftClient, screen, v, v1, v2) -> {
@@ -205,6 +213,11 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
ScreenHelper.getLastOverlay().lateRender(i, i1, v);
});
ClothClientHooks.SCREEN_KEY_PRESSED.register((minecraftClient, screen, i, i1, i2) -> {
+ if (screen instanceof CreativePlayerInventoryScreen && screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget && ((CreativePlayerInventoryScreenHooks) screen).rei_getSelectedTab() == ItemGroup.SEARCH.getIndex())
+ for(Element element : ((ScreenHooks) screen).cloth_getInputListeners())
+ if (element instanceof TextFieldWidget)
+ if (screen.getFocused() == element && ((TextFieldWidget) element).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/CreativePlayerInventoryScreenHooks.java b/src/main/java/me/shedaniel/rei/listeners/CreativePlayerInventoryScreenHooks.java
new file mode 100644
index 000000000..45cdc198b
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/listeners/CreativePlayerInventoryScreenHooks.java
@@ -0,0 +1,5 @@
+package me.shedaniel.rei.listeners;
+
+public interface CreativePlayerInventoryScreenHooks {
+ int rei_getSelectedTab();
+}
diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java b/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java
new file mode 100644
index 000000000..e8f9586cb
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java
@@ -0,0 +1,17 @@
+package me.shedaniel.rei.mixin;
+
+import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks;
+import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+
+@Mixin(CreativePlayerInventoryScreen.class)
+public class MixinCreativePlayerInventoryScreen implements CreativePlayerInventoryScreenHooks {
+ @Shadow
+ private static int selectedTab;
+
+ @Override
+ public int rei_getSelectedTab() {
+ return selectedTab;
+ }
+}
diff --git a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java
index 638f4c180..b1ee7d8bf 100644
--- a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java
+++ b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java
@@ -22,7 +22,6 @@ import java.util.Map;
public class ClothScreenRegistry {
public static void openConfigScreen(Screen parent) {
- // ConfigScreenBuilder builder = ConfigScreenBuilder.create(parent, "text.rei.config.title", savedConfig -> {
ConfigScreenBuilder builder = new ClothConfigScreen.Builder(parent, "text.rei.config.title", savedConfig -> {
try {
RoughlyEnoughItemsCore.getConfigManager().saveConfig();
@@ -41,8 +40,10 @@ public class ClothScreenRegistry {
@Override
protected void init() {
- addButton(new ButtonWidget(6, 6, 60, 20, I18n.translate("text.rei.credits"), widget -> MinecraftClient.getInstance().openScreen(new CreditsScreen(MinecraftClient.getInstance().currentScreen))));
super.init();
+ ButtonWidget w;
+ buttons.add(0, w = new ButtonWidget(6, 6, 60, 20, I18n.translate("text.rei.credits"), widget -> MinecraftClient.getInstance().openScreen(new CreditsScreen(MinecraftClient.getInstance().currentScreen))));
+ children.add(0, w);
}
};
}