diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-03-09 23:17:05 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-03-09 23:17:05 +0800 |
| commit | de461fde691f593b85ffeae837b5b419a9abf7cc (patch) | |
| tree | cec6e08c99427eddf9eef5e19d04edca56d3d0d4 /default-plugin/src/main | |
| parent | 64bc9937d6ec04c6d66240a84b4fb345026c0b12 (diff) | |
| download | RoughlyEnoughItems-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')
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(); |
