diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-04-13 16:39:32 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-04-13 16:39:32 +0800 |
| commit | fc9daed9710b159155b989d07a690ba10be2dc68 (patch) | |
| tree | 2809155ee254402c0d84b459d3bfd4b356e3f4de /src/main/java/me/shedaniel | |
| parent | 2570a35b35ec29b6677e318f2bf3d5b6640bf106 (diff) | |
| download | RoughlyEnoughItems-fc9daed9710b159155b989d07a690ba10be2dc68.tar.gz RoughlyEnoughItems-fc9daed9710b159155b989d07a690ba10be2dc68.tar.bz2 RoughlyEnoughItems-fc9daed9710b159155b989d07a690ba10be2dc68.zip | |
Bug fixes
Diffstat (limited to 'src/main/java/me/shedaniel')
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); } }; } |
