diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-04-07 15:53:25 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-04-07 15:53:25 +0800 |
| commit | 9e0931f2781f9041acd73954a0dfaf1e14802404 (patch) | |
| tree | 09eda629b5bab7c2c866343b9caea4acb7217dfe /src/main/java/me/shedaniel/rei/utils/ClothRegistry.java | |
| parent | 0b9ed700c0ea4b3eefe97df512257854e81dfd25 (diff) | |
| download | RoughlyEnoughItems-9e0931f2781f9041acd73954a0dfaf1e14802404.tar.gz RoughlyEnoughItems-9e0931f2781f9041acd73954a0dfaf1e14802404.tar.bz2 RoughlyEnoughItems-9e0931f2781f9041acd73954a0dfaf1e14802404.zip | |
Fix #53
Diffstat (limited to 'src/main/java/me/shedaniel/rei/utils/ClothRegistry.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/utils/ClothRegistry.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/main/java/me/shedaniel/rei/utils/ClothRegistry.java b/src/main/java/me/shedaniel/rei/utils/ClothRegistry.java index 0192a4783..510a38535 100644 --- a/src/main/java/me/shedaniel/rei/utils/ClothRegistry.java +++ b/src/main/java/me/shedaniel/rei/utils/ClothRegistry.java @@ -15,6 +15,7 @@ import me.shedaniel.rei.client.ScreenHelper; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.config.ItemListOrderingEntry; import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks; +import net.fabricmc.fabric.api.event.client.ClientTickCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.ContainerScreen; import net.minecraft.client.gui.Element; @@ -45,7 +46,6 @@ public class ClothRegistry { return; if (screen instanceof PlayerInventoryScreen && minecraftClient.interactionManager.hasCreativeInventory()) return; - ScreenHelper.setLastContainerScreen((ContainerScreen) screen); boolean alreadyAdded = false; for(Element element : Lists.newArrayList(screenHooks.cloth_getInputListeners())) if (ContainerScreenOverlay.class.isAssignableFrom(element.getClass())) @@ -101,6 +101,8 @@ public class ClothRegistry { return ActionResult.PASS; }); ClothClientHooks.SCREEN_LATE_RENDER.register((minecraftClient, screen, i, i1, v) -> { + if (!ScreenHelper.isOverlayVisible()) + return; if (screen instanceof CreativePlayerInventoryScreen) if (((CreativePlayerInventoryScreenHooks) screen).rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex()) return; @@ -111,10 +113,17 @@ public class ClothRegistry { if (screen instanceof CreativePlayerInventoryScreen) if (((CreativePlayerInventoryScreenHooks) screen).rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex()) return ActionResult.PASS; - if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2)) - return ActionResult.SUCCESS; + if (screen instanceof ContainerScreen) + if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2)) + return ActionResult.SUCCESS; return ActionResult.PASS; }); + ClientTickCallback.EVENT.register(client -> { + if (client.currentScreen instanceof ContainerScreen) { + if (ScreenHelper.getLastContainerScreen() == null || !ScreenHelper.getLastContainerScreen().equals(client.currentScreen)) + ScreenHelper.setLastContainerScreen((ContainerScreen) client.currentScreen); + } + }); } public static void openConfigScreen(Screen parent) { |
