aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/shedaniel/rei/client/ScreenHelper.java2
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java3
-rw-r--r--src/main/java/me/shedaniel/rei/utils/ClothRegistry.java15
3 files changed, 15 insertions, 5 deletions
diff --git a/src/main/java/me/shedaniel/rei/client/ScreenHelper.java b/src/main/java/me/shedaniel/rei/client/ScreenHelper.java
index 1d408d30c..db325167a 100644
--- a/src/main/java/me/shedaniel/rei/client/ScreenHelper.java
+++ b/src/main/java/me/shedaniel/rei/client/ScreenHelper.java
@@ -20,7 +20,7 @@ public class ScreenHelper implements ClientModInitializer {
public static List<ItemStack> inventoryStacks = Lists.newArrayList();
private static boolean overlayVisible = true;
private static ContainerScreenOverlay overlay;
- private static ContainerScreen lastContainerScreen;
+ private static ContainerScreen lastContainerScreen = null;
public static boolean isOverlayVisible() {
return overlayVisible;
diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
index 69ea67a1d..834fac1a1 100644
--- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
+++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
@@ -429,7 +429,8 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
}
return new Rectangle(4, 0, getLeft() - 6, window.getScaledHeight());
} catch (Exception e) {
- RoughlyEnoughItemsCore.LOGGER.error("[REI] Error calculating boundary, report the issue!", e);
+ RoughlyEnoughItemsCore.LOGGER.info("[REI] Error calculating boundary, report the issue!");
+ e.printStackTrace();
return new Rectangle();
}
}
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) {