aboutsummaryrefslogtreecommitdiff
path: root/default-plugin/src/main/java/me/shedaniel/rei
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-03-09 23:17:05 +0800
committershedaniel <daniel@shedaniel.me>2021-03-09 23:17:05 +0800
commitde461fde691f593b85ffeae837b5b419a9abf7cc (patch)
treecec6e08c99427eddf9eef5e19d04edca56d3d0d4 /default-plugin/src/main/java/me/shedaniel/rei
parent64bc9937d6ec04c6d66240a84b4fb345026c0b12 (diff)
downloadRoughlyEnoughItems-de461fde691f593b85ffeae837b5b419a9abf7cc.tar.gz
RoughlyEnoughItems-de461fde691f593b85ffeae837b5b419a9abf7cc.tar.bz2
RoughlyEnoughItems-de461fde691f593b85ffeae837b5b419a9abf7cc.zip
Use AbstractRecipeViewingScreen and remove static from ScreenHelper
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'default-plugin/src/main/java/me/shedaniel/rei')
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultPotionEffectExclusionZones.java7
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java11
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java22
3 files changed, 24 insertions, 16 deletions
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultPotionEffectExclusionZones.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultPotionEffectExclusionZones.java
index 9fd033af6..f46d5433b 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultPotionEffectExclusionZones.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultPotionEffectExclusionZones.java
@@ -25,10 +25,10 @@ package me.shedaniel.rei.plugin;
import com.google.common.collect.Ordering;
import me.shedaniel.math.Rectangle;
-import me.shedaniel.rei.api.REIHelper;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.client.gui.screens.inventory.EffectRenderingInventoryScreen;
import net.minecraft.world.effect.MobEffectInstance;
@@ -43,12 +43,13 @@ import java.util.function.Supplier;
public class DefaultPotionEffectExclusionZones implements Supplier<List<Rectangle>> {
@Override
public List<Rectangle> get() {
- if (!(REIHelper.getInstance().getPreviousContainerScreen() instanceof EffectRenderingInventoryScreen) || !((EffectRenderingInventoryScreen<?>) REIHelper.getInstance().getPreviousContainerScreen()).doRenderEffects)
+ Screen screen = Minecraft.getInstance().screen;
+ if (!(screen instanceof EffectRenderingInventoryScreen) || !((EffectRenderingInventoryScreen<?>) screen).doRenderEffects)
return Collections.emptyList();
Collection<MobEffectInstance> activePotionEffects = Minecraft.getInstance().player.getActiveEffects();
if (activePotionEffects.isEmpty())
return Collections.emptyList();
- AbstractContainerScreen<?> containerScreen = REIHelper.getInstance().getPreviousContainerScreen();
+ AbstractContainerScreen<?> containerScreen = (AbstractContainerScreen<?>) screen;
List<Rectangle> list = new ArrayList<>();
int x = containerScreen.leftPos - 124;
int y = containerScreen.topPos;
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java
index bde75067d..7702c923a 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java
@@ -25,10 +25,10 @@ package me.shedaniel.rei.plugin;
import com.google.common.collect.Lists;
import me.shedaniel.math.Rectangle;
-import me.shedaniel.rei.api.REIHelper;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.client.gui.screens.recipebook.RecipeBookComponent;
import net.minecraft.client.gui.screens.recipebook.RecipeUpdateListener;
@@ -43,11 +43,12 @@ public class DefaultRecipeBookExclusionZones implements Supplier<List<Rectangle>
@Override
public List<Rectangle> get() {
- if (!(Minecraft.getInstance().screen instanceof RecipeUpdateListener) || !(REIHelper.getInstance().getPreviousContainerScreen().getMenu() instanceof RecipeBookMenu) ||
- !Minecraft.getInstance().player.getRecipeBook().isOpen(((RecipeBookMenu<?>) REIHelper.getInstance().getPreviousContainerScreen().getMenu()).getRecipeBookType()))
+ Screen screen = Minecraft.getInstance().screen;
+ if (!(screen instanceof RecipeUpdateListener) || !(screen instanceof AbstractContainerScreen) || !(((AbstractContainerScreen<?>) screen).getMenu() instanceof RecipeBookMenu) ||
+ !Minecraft.getInstance().player.getRecipeBook().isOpen(((RecipeBookMenu<?>) ((AbstractContainerScreen<?>) screen).getMenu()).getRecipeBookType()))
return Collections.emptyList();
- RecipeBookComponent recipeBookWidget = ((RecipeUpdateListener) Minecraft.getInstance().screen).getRecipeBookComponent();
- AbstractContainerScreen<?> containerScreen = REIHelper.getInstance().getPreviousContainerScreen();
+ RecipeBookComponent recipeBookWidget = ((RecipeUpdateListener) screen).getRecipeBookComponent();
+ AbstractContainerScreen<?> containerScreen = (AbstractContainerScreen<?>) screen;
List<Rectangle> l = Lists.newArrayList(new Rectangle(containerScreen.leftPos - 4 - 145, containerScreen.topPos, 4 + 145 + 30, containerScreen.imageHeight));
int size = recipeBookWidget.tabButtons.size();
if (size > 0)
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java
index ba3a149e5..086d994a9 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java
@@ -40,12 +40,15 @@ import me.shedaniel.rei.api.server.ContainerInfo;
import me.shedaniel.rei.api.server.ContainerInfoHandler;
import me.shedaniel.rei.plugin.DefaultPlugin;
import net.minecraft.client.gui.GuiComponent;
+import net.minecraft.client.gui.screens.Screen;
+import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.level.block.Blocks;
+import org.jetbrains.annotations.Nullable;
import java.util.List;
@@ -97,18 +100,21 @@ public class DefaultCraftingCategory implements TransferDisplayCategory<DefaultC
@Override
public void renderRedSlots(PoseStack matrices, List<Widget> widgets, Rectangle bounds, DefaultCraftingDisplay display, IntList redSlots) {
- if (REIHelper.getInstance().getPreviousContainerScreen() == null) return;
- ContainerInfo<AbstractContainerMenu> info = (ContainerInfo<AbstractContainerMenu>) ContainerInfoHandler.getContainerInfo(getIdentifier(), REIHelper.getInstance().getPreviousContainerScreen().getMenu().getClass());
- if (info == null)
+ @Nullable
+ Screen previousScreen = REIHelper.getInstance().getPreviousScreen();
+ if (!(previousScreen instanceof AbstractContainerScreen)) return;
+ AbstractContainerMenu containerMenu = ((AbstractContainerScreen<?>) previousScreen).getMenu();
+ ContainerInfo<AbstractContainerMenu> info = (ContainerInfo<AbstractContainerMenu>) ContainerInfoHandler.getContainerInfo(getIdentifier(), containerMenu.getClass());
+ if (info == null) {
return;
+ }
matrices.pushPose();
matrices.translate(0, 0, 400);
Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 27);
- int width = info.getCraftingWidth(REIHelper.getInstance().getPreviousContainerScreen().getMenu());
- for (Integer slot : redSlots) {
- int i = slot;
- int x = i % width;
- int y = Mth.floor(i / (float) width);
+ int width = info.getCraftingWidth(containerMenu);
+ for (int slot : redSlots) {
+ int x = slot % width;
+ int y = Mth.floor(slot / (float) width);
GuiComponent.fill(matrices, startPoint.x + 1 + x * 18, startPoint.y + 1 + y * 18, startPoint.x + 1 + x * 18 + 16, startPoint.y + 1 + y * 18 + 16, 0x60ff0000);
}
matrices.popPose();