diff options
Diffstat (limited to 'src/main/java')
25 files changed, 219 insertions, 206 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/IRecipeCategory.java b/src/main/java/me/shedaniel/rei/api/IRecipeCategory.java index cc2bb0e4a..123fa20df 100644 --- a/src/main/java/me/shedaniel/rei/api/IRecipeCategory.java +++ b/src/main/java/me/shedaniel/rei/api/IRecipeCategory.java @@ -3,7 +3,7 @@ package me.shedaniel.rei.api; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.gui.widget.IWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; -import me.shedaniel.rei.gui.widget.RecipeViewingWidget; +import me.shedaniel.rei.gui.widget.RecipeViewingWidgetScreen; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Drawable; import net.minecraft.client.render.GuiLighting; @@ -13,6 +13,7 @@ import net.minecraft.util.Identifier; import java.awt.*; import java.util.Arrays; import java.util.List; +import java.util.function.Supplier; public interface IRecipeCategory<T extends IRecipeDisplay> { @@ -27,14 +28,14 @@ public interface IRecipeCategory<T extends IRecipeDisplay> { return false; } - default public List<IWidget> setupDisplay(T recipeDisplay, Rectangle bounds) { + default public List<IWidget> setupDisplay(Supplier<T> recipeDisplaySupplier, Rectangle bounds) { return Arrays.asList(new RecipeBaseWidget(bounds)); } default public void drawCategoryBackground(Rectangle bounds) { GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); GuiLighting.disable(); - MinecraftClient.getInstance().getTextureManager().bindTexture(RecipeViewingWidget.CHEST_GUI_TEXTURE); + MinecraftClient.getInstance().getTextureManager().bindTexture(RecipeViewingWidgetScreen.CHEST_GUI_TEXTURE); new Drawable() { }.drawTexturedRect((int) bounds.getX(), (int) bounds.getY(), 0, 0, (int) bounds.getWidth(), (int) bounds.getHeight()); diff --git a/src/main/java/me/shedaniel/rei/api/IRecipeCategoryCraftable.java b/src/main/java/me/shedaniel/rei/api/IRecipeCategoryCraftable.java index f782ccadd..a0ffb689e 100644 --- a/src/main/java/me/shedaniel/rei/api/IRecipeCategoryCraftable.java +++ b/src/main/java/me/shedaniel/rei/api/IRecipeCategoryCraftable.java @@ -1,18 +1,18 @@ package me.shedaniel.rei.api; import me.shedaniel.rei.gui.widget.IWidget; -import me.shedaniel.rei.listeners.IMixinContainerGui; -import net.minecraft.client.gui.Gui; +import me.shedaniel.rei.listeners.IMixinContainerScreen; +import net.minecraft.client.gui.Screen; import java.awt.*; import java.util.List; public interface IRecipeCategoryCraftable<T extends IRecipeDisplay> { - public boolean canAutoCraftHere(Class<? extends Gui> guiClass, T recipe); + public boolean canAutoCraftHere(Class<? extends Screen> screenClasses, T recipe); - public boolean performAutoCraft(Gui gui, T recipe); + public boolean performAutoCraft(Screen gui, T recipe); - public void registerAutoCraftButton(List<IWidget> widgets, Rectangle rectangle, IMixinContainerGui parentGui, T recipe); + public void registerAutoCraftButton(List<IWidget> widgets, Rectangle rectangle, IMixinContainerScreen parentScreen, T recipe); } diff --git a/src/main/java/me/shedaniel/rei/api/SpeedCraftFunctional.java b/src/main/java/me/shedaniel/rei/api/SpeedCraftFunctional.java index e2ed4b83d..bf89e3c2e 100644 --- a/src/main/java/me/shedaniel/rei/api/SpeedCraftFunctional.java +++ b/src/main/java/me/shedaniel/rei/api/SpeedCraftFunctional.java @@ -1,13 +1,13 @@ package me.shedaniel.rei.api; -import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.Screen; public interface SpeedCraftFunctional<T extends IRecipeDisplay> { public Class[] getFunctioningFor(); - public boolean performAutoCraft(Gui gui, T recipe); + public boolean performAutoCraft(Screen screen, T recipe); - public boolean acceptRecipe(Gui gui, T recipe); + public boolean acceptRecipe(Screen screen, T recipe); } diff --git a/src/main/java/me/shedaniel/rei/client/ClientHelper.java b/src/main/java/me/shedaniel/rei/client/ClientHelper.java index 55061aa90..8c0683209 100644 --- a/src/main/java/me/shedaniel/rei/client/ClientHelper.java +++ b/src/main/java/me/shedaniel/rei/client/ClientHelper.java @@ -6,16 +6,16 @@ import io.netty.buffer.Unpooled; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.IRecipeCategory; import me.shedaniel.rei.api.IRecipeDisplay; -import me.shedaniel.rei.gui.ContainerGuiOverlay; +import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.widget.ConfigWidget; -import me.shedaniel.rei.gui.widget.RecipeViewingWidget; +import me.shedaniel.rei.gui.widget.RecipeViewingWidgetScreen; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding; import net.fabricmc.fabric.impl.client.keybinding.KeyBindingRegistryImpl; import net.fabricmc.loader.FabricLoader; import net.minecraft.client.MinecraftClient; import net.minecraft.client.Mouse; -import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.Screen; import net.minecraft.client.util.InputUtil; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; @@ -115,22 +115,22 @@ public class ClientHelper implements ClientModInitializer { } } - public static boolean executeRecipeKeyBind(ContainerGuiOverlay overlay, ItemStack stack) { + public static boolean executeRecipeKeyBind(ContainerScreenOverlay overlay, ItemStack stack) { Map<IRecipeCategory, List<IRecipeDisplay>> map = RecipeHelper.getInstance().getRecipesFor(stack); if (map.keySet().size() > 0) - MinecraftClient.getInstance().openGui(new RecipeViewingWidget(MinecraftClient.getInstance().window, map)); + MinecraftClient.getInstance().openScreen(new RecipeViewingWidgetScreen(MinecraftClient.getInstance().window, map)); return map.keySet().size() > 0; } - public static boolean executeUsageKeyBind(ContainerGuiOverlay overlay, ItemStack stack) { + public static boolean executeUsageKeyBind(ContainerScreenOverlay overlay, ItemStack stack) { Map<IRecipeCategory, List<IRecipeDisplay>> map = RecipeHelper.getInstance().getUsagesFor(stack); if (map.keySet().size() > 0) - MinecraftClient.getInstance().openGui(new RecipeViewingWidget(MinecraftClient.getInstance().window, map)); + MinecraftClient.getInstance().openScreen(new RecipeViewingWidgetScreen(MinecraftClient.getInstance().window, map)); return map.keySet().size() > 0; } - public static void openConfigWindow(Gui parent) { - MinecraftClient.getInstance().openGui(new ConfigWidget(parent)); + public static void openConfigWindow(Screen parent) { + MinecraftClient.getInstance().openScreen(new ConfigWidget(parent)); } public static List<ItemStack> getInventoryItemsTypes() { diff --git a/src/main/java/me/shedaniel/rei/client/GuiHelper.java b/src/main/java/me/shedaniel/rei/client/GuiHelper.java index b962866f2..2b453c784 100644 --- a/src/main/java/me/shedaniel/rei/client/GuiHelper.java +++ b/src/main/java/me/shedaniel/rei/client/GuiHelper.java @@ -1,11 +1,11 @@ package me.shedaniel.rei.client; import com.google.common.collect.Lists; -import me.shedaniel.rei.gui.ContainerGuiOverlay; +import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.widget.TextFieldWidget; -import me.shedaniel.rei.listeners.IMixinContainerGui; +import me.shedaniel.rei.listeners.IMixinContainerScreen; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.ContainerGui; +import net.minecraft.client.gui.ContainerScreen; import net.minecraft.item.ItemStack; import java.util.List; @@ -13,11 +13,11 @@ import java.util.List; public class GuiHelper { public static TextFieldWidget searchField; - private static boolean overlayVisible = true; - private static ContainerGuiOverlay overlay; public static List<ItemStack> inventoryStacks = Lists.newArrayList(); - private static ContainerGui lastContainerGui; - private static IMixinContainerGui lastMixinContainerGui; + private static boolean overlayVisible = true; + private static ContainerScreenOverlay overlay; + private static ContainerScreen lastContainerScreen; + private static IMixinContainerScreen lastMixinContainerScreen; public static boolean isOverlayVisible() { return overlayVisible; @@ -27,36 +27,36 @@ public class GuiHelper { overlayVisible = !overlayVisible; } - public static ContainerGuiOverlay getLastOverlay() { + public static ContainerScreenOverlay getLastOverlay() { return overlay; } - public static void setOverlay(ContainerGuiOverlay overlay) { + public static void setOverlay(ContainerScreenOverlay overlay) { GuiHelper.overlay = overlay; overlay.onInitialized(); } public static void onTick(MinecraftClient client) { - if (client.currentGui instanceof ContainerGui && lastContainerGui != client.currentGui) { - GuiHelper.lastContainerGui = (ContainerGui) client.currentGui; - GuiHelper.lastMixinContainerGui = (IMixinContainerGui) lastContainerGui; + if (client.currentScreen instanceof ContainerScreen && lastContainerScreen != client.currentScreen) { + GuiHelper.lastContainerScreen = (ContainerScreen) client.currentScreen; + GuiHelper.lastMixinContainerScreen = (IMixinContainerScreen) lastContainerScreen; } } - public static ContainerGui getLastContainerGui() { - return lastContainerGui; + public static ContainerScreen getLastContainerScreen() { + return lastContainerScreen; } - public static IMixinContainerGui getLastMixinContainerGui() { - return lastMixinContainerGui; + public static void setLastContainerScreen(ContainerScreen lastContainerScreen) { + GuiHelper.lastContainerScreen = lastContainerScreen; } - public static void setLastContainerGui(ContainerGui lastContainerGui) { - GuiHelper.lastContainerGui = lastContainerGui; + public static IMixinContainerScreen getLastMixinContainerScreen() { + return lastMixinContainerScreen; } - public static void setLastMixinContainerGui(IMixinContainerGui lastMixinContainerGui) { - GuiHelper.lastMixinContainerGui = lastMixinContainerGui; + public static void setLastMixinContainerScreen(IMixinContainerScreen lastMixinContainerScreen) { + GuiHelper.lastMixinContainerScreen = lastMixinContainerScreen; } } diff --git a/src/main/java/me/shedaniel/rei/client/RecipeHelper.java b/src/main/java/me/shedaniel/rei/client/RecipeHelper.java index 0224933fa..80d76c5f1 100644 --- a/src/main/java/me/shedaniel/rei/client/RecipeHelper.java +++ b/src/main/java/me/shedaniel/rei/client/RecipeHelper.java @@ -56,7 +56,7 @@ public class RecipeHelper { public void registerCategory(IRecipeCategory category) { categories.add(category); - recipeCategoryListMap.put(category.getIdentifier(), Lists.newArrayList()); + recipeCategoryListMap.put(category.getIdentifier(), Lists.newLinkedList()); } public void registerRecipe(Identifier categoryIdentifier, IRecipeDisplay display) { @@ -67,7 +67,7 @@ public class RecipeHelper { public Map<IRecipeCategory, List<IRecipeDisplay>> getRecipesFor(ItemStack stack) { Map<Identifier, List<IRecipeDisplay>> categoriesMap = new HashMap<>(); - categories.forEach(f -> categoriesMap.put(f.getIdentifier(), new LinkedList<>())); + categories.forEach(f -> categoriesMap.put(f.getIdentifier(), Lists.newArrayList())); for(Map.Entry<Identifier, List<IRecipeDisplay>> entry : recipeCategoryListMap.entrySet()) { IRecipeCategory category = getCategory(entry.getKey()); for(IRecipeDisplay recipeDisplay : entry.getValue()) @@ -75,10 +75,9 @@ public class RecipeHelper { if (category.checkTags() ? ItemStack.areEqual(stack, outputStack) : ItemStack.areEqualIgnoreTags(stack, outputStack)) categoriesMap.get(recipeDisplay.getRecipeCategory()).add(recipeDisplay); } - categoriesMap.keySet().removeIf(f -> categoriesMap.get(f).isEmpty()); - Map<IRecipeCategory, List<IRecipeDisplay>> recipeCategoryListMap = Maps.newHashMap(); + Map<IRecipeCategory, List<IRecipeDisplay>> recipeCategoryListMap = Maps.newLinkedHashMap(); categories.forEach(category -> { - if (categoriesMap.containsKey(category.getIdentifier())) + if (categoriesMap.containsKey(category.getIdentifier()) && !categoriesMap.get(category.getIdentifier()).isEmpty()) recipeCategoryListMap.put(category, categoriesMap.get(category.getIdentifier())); }); return recipeCategoryListMap; @@ -94,7 +93,7 @@ public class RecipeHelper { public Map<IRecipeCategory, List<IRecipeDisplay>> getUsagesFor(ItemStack stack) { Map<Identifier, List<IRecipeDisplay>> categoriesMap = new HashMap<>(); - categories.forEach(f -> categoriesMap.put(f.getIdentifier(), new LinkedList<>())); + categories.forEach(f -> categoriesMap.put(f.getIdentifier(), Lists.newArrayList())); for(Map.Entry<Identifier, List<IRecipeDisplay>> entry : recipeCategoryListMap.entrySet()) { IRecipeCategory category = getCategory(entry.getKey()); for(IRecipeDisplay recipeDisplay : entry.getValue()) { @@ -112,10 +111,9 @@ public class RecipeHelper { } } } - categoriesMap.keySet().removeIf(f -> categoriesMap.get(f).isEmpty()); - Map<IRecipeCategory, List<IRecipeDisplay>> recipeCategoryListMap = Maps.newHashMap(); + Map<IRecipeCategory, List<IRecipeDisplay>> recipeCategoryListMap = Maps.newLinkedHashMap(); categories.forEach(category -> { - if (categoriesMap.containsKey(category.getIdentifier())) + if (categoriesMap.containsKey(category.getIdentifier()) && !categoriesMap.get(category.getIdentifier()).isEmpty()) recipeCategoryListMap.put(category, categoriesMap.get(category.getIdentifier())); }); return recipeCategoryListMap; diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerGuiOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index 21c18153c..3da3443cc 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerGuiOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -7,9 +7,9 @@ import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.GuiHelper; import me.shedaniel.rei.gui.widget.*; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.ContainerGui; -import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.ContainerScreen; import net.minecraft.client.gui.GuiEventListener; +import net.minecraft.client.gui.Screen; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.resource.language.I18n; import net.minecraft.client.util.Window; @@ -22,7 +22,7 @@ import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; -public class ContainerGuiOverlay extends Gui { +public class ContainerScreenOverlay extends Screen { private static final List<QueuedTooltip> QUEUED_TOOLTIPS = Lists.newArrayList(); public static String searchTerm = ""; @@ -77,7 +77,7 @@ public class ContainerGuiOverlay extends Gui { widgets.add(new ButtonWidget(10, 35, 40, 20, I18n.translate("text.rei.config")) { @Override public void onPressed(int button, double mouseX, double mouseY) { - ClientHelper.openConfigWindow(GuiHelper.getLastContainerGui()); + ClientHelper.openConfigWindow(GuiHelper.getLastContainerScreen()); } }); this.widgets.add(new LabelWidget(rectangle.x + (rectangle.width / 2), rectangle.y + 10, "") { @@ -123,11 +123,11 @@ public class ContainerGuiOverlay extends Gui { int widthRemoved = RoughlyEnoughItemsCore.getConfigHelper().showCraftableOnlyButton() ? 22 : 0; if (RoughlyEnoughItemsCore.getConfigHelper().sideSearchField()) return new Rectangle(rectangle.x + 2, window.getScaledHeight() - 22, rectangle.width - 6 - widthRemoved, 18); - if (MinecraftClient.getInstance().currentGui instanceof RecipeViewingWidget) { - RecipeViewingWidget widget = (RecipeViewingWidget) MinecraftClient.getInstance().currentGui; + if (MinecraftClient.getInstance().currentScreen instanceof RecipeViewingWidgetScreen) { + RecipeViewingWidgetScreen widget = (RecipeViewingWidgetScreen) MinecraftClient.getInstance().currentScreen; return new Rectangle(widget.getBounds().x, window.getScaledHeight() - 22, widget.getBounds().width - widthRemoved, 18); } - return new Rectangle(GuiHelper.getLastMixinContainerGui().getContainerLeft(), window.getScaledHeight() - 22, GuiHelper.getLastMixinContainerGui().getContainerWidth() - widthRemoved, 18); + return new Rectangle(GuiHelper.getLastMixinContainerScreen().getContainerLeft(), window.getScaledHeight() - 22, GuiHelper.getLastMixinContainerScreen().getContainerWidth() - widthRemoved, 18); } private Rectangle getCraftableToggleArea() { @@ -161,7 +161,7 @@ public class ContainerGuiOverlay extends Gui { GuiLighting.disable(); this.draw(mouseX, mouseY, partialTicks); GuiLighting.disable(); - QUEUED_TOOLTIPS.stream().filter(queuedTooltip -> queuedTooltip != null).forEach(queuedTooltip -> MinecraftClient.getInstance().currentGui.drawTooltip(queuedTooltip.text, queuedTooltip.mouse.x, queuedTooltip.mouse.y)); + QUEUED_TOOLTIPS.stream().filter(queuedTooltip -> queuedTooltip != null).forEach(queuedTooltip -> MinecraftClient.getInstance().currentScreen.drawTooltip(queuedTooltip.text, queuedTooltip.mouse.x, queuedTooltip.mouse.y)); QUEUED_TOOLTIPS.clear(); GuiLighting.disable(); } @@ -200,10 +200,10 @@ public class ContainerGuiOverlay extends Gui { } private Rectangle calculateBoundary() { - int startX = GuiHelper.getLastMixinContainerGui().getContainerLeft() + GuiHelper.getLastMixinContainerGui().getContainerWidth() + 10; + int startX = GuiHelper.getLastMixinContainerScreen().getContainerLeft() + GuiHelper.getLastMixinContainerScreen().getContainerWidth() + 10; int width = window.getScaledWidth() - startX; - if (MinecraftClient.getInstance().currentGui instanceof RecipeViewingWidget) { - RecipeViewingWidget widget = (RecipeViewingWidget) MinecraftClient.getInstance().currentGui; + if (MinecraftClient.getInstance().currentScreen instanceof RecipeViewingWidgetScreen) { + RecipeViewingWidgetScreen widget = (RecipeViewingWidgetScreen) MinecraftClient.getInstance().currentScreen; startX = widget.getBounds().x + widget.getBounds().width + 10; width = window.getScaledWidth() - startX; } @@ -211,11 +211,11 @@ public class ContainerGuiOverlay extends Gui { } private int getLeft() { - if (MinecraftClient.getInstance().currentGui instanceof RecipeViewingWidget) { - RecipeViewingWidget widget = (RecipeViewingWidget) MinecraftClient.getInstance().currentGui; + if (MinecraftClient.getInstance().currentScreen instanceof RecipeViewingWidgetScreen) { + RecipeViewingWidgetScreen widget = (RecipeViewingWidgetScreen) MinecraftClient.getInstance().currentScreen; return widget.getBounds().x; } - return GuiHelper.getLastMixinContainerGui().getContainerLeft(); + return GuiHelper.getLastMixinContainerScreen().getContainerLeft(); } private int getTotalPage() { @@ -251,17 +251,17 @@ public class ContainerGuiOverlay extends Gui { itemStack = ((ItemSlotWidget) widget).getCurrentStack(); break; } - if (itemStack == null && MinecraftClient.getInstance().currentGui instanceof RecipeViewingWidget) { - RecipeViewingWidget recipeViewingWidget = (RecipeViewingWidget) MinecraftClient.getInstance().currentGui; + if (itemStack == null && MinecraftClient.getInstance().currentScreen instanceof RecipeViewingWidgetScreen) { + RecipeViewingWidgetScreen recipeViewingWidget = (RecipeViewingWidgetScreen) MinecraftClient.getInstance().currentScreen; for(GuiEventListener entry : recipeViewingWidget.getEntries()) - if (entry instanceof ItemSlotWidget && ((ItemSlotWidget) entry).isHighlighted(point.x, point.y)) { + if (entry instanceof ItemSlotWidget && ((HighlightableWidget) entry).isHighlighted(point.x, point.y)) { itemStack = ((ItemSlotWidget) entry).getCurrentStack(); break; } } - if (itemStack == null && MinecraftClient.getInstance().currentGui instanceof ContainerGui) - if (GuiHelper.getLastMixinContainerGui().getHoveredSlot() != null) - itemStack = GuiHelper.getLastMixinContainerGui().getHoveredSlot().getStack(); + if (itemStack == null && MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) + if (GuiHelper.getLastMixinContainerScreen().getHoveredSlot() != null) + itemStack = GuiHelper.getLastMixinContainerScreen().getHoveredSlot().getStack(); if (itemStack != null && !itemStack.isEmpty()) { if (ClientHelper.RECIPE.matchesKey(int_1, int_2)) return ClientHelper.executeRecipeKeyBind(this, itemStack); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java index 25f46c802..d1391d978 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java @@ -4,8 +4,8 @@ import com.google.common.collect.Lists; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.client.REIItemListOrdering; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.GuiEventListener; +import net.minecraft.client.gui.Screen; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.resource.language.I18n; import net.minecraft.client.util.Window; @@ -14,12 +14,12 @@ import java.io.IOException; import java.util.Arrays; import java.util.List; -public class ConfigWidget extends Gui { +public class ConfigWidget extends Screen { private List<IWidget> widgets; - private Gui parent; + private Screen parent; - public ConfigWidget(Gui parent) { + public ConfigWidget(Screen parent) { this.parent = parent; this.widgets = Lists.newArrayList(); } @@ -27,7 +27,7 @@ public class ConfigWidget extends Gui { @Override public boolean keyPressed(int int_1, int int_2, int int_3) { if (int_1 == 256 && this.doesEscapeKeyClose()) { - MinecraftClient.getInstance().openGui(parent); + MinecraftClient.getInstance().openScreen(parent); return true; } else { return super.keyPressed(int_1, int_2, int_3); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidgetScreen.java index 2004f38c5..f65bfe763 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidgetScreen.java @@ -11,9 +11,9 @@ import me.shedaniel.rei.client.GuiHelper; import me.shedaniel.rei.client.RecipeHelper; import net.minecraft.client.MinecraftClient; import net.minecraft.client.audio.PositionedSoundInstance; -import net.minecraft.client.gui.ContainerGui; -import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.ContainerScreen; import net.minecraft.client.gui.GuiEventListener; +import net.minecraft.client.gui.Screen; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.util.Window; import net.minecraft.sound.SoundEvents; @@ -24,8 +24,9 @@ import java.awt.*; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.function.Supplier; -public class RecipeViewingWidget extends Gui { +public class RecipeViewingWidgetScreen extends Screen { public static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png"); private static final Identifier CREATIVE_INVENTORY_TABS = new Identifier("textures/gui/container/creative_inventory/tabs.png"); @@ -42,7 +43,7 @@ public class RecipeViewingWidget extends Gui { private int page, categoryPages; private ButtonWidget recipeBack, recipeNext, categoryBack, categoryNext; - public RecipeViewingWidget(Window window, Map<IRecipeCategory, List<IRecipeDisplay>> categoriesMap) { + public RecipeViewingWidgetScreen(Window window, Map<IRecipeCategory, List<IRecipeDisplay>> categoriesMap) { this.categoryPages = 0; this.window = window; this.widgets = Lists.newArrayList(); @@ -57,10 +58,10 @@ public class RecipeViewingWidget extends Gui { this.tabs = new ArrayList<>(); } - public static SpeedCraftFunctional getSpeedCraftFunctionalByCategory(ContainerGui containerGui, IRecipeCategory category) { + public static SpeedCraftFunctional getSpeedCraftFunctionalByCategory(ContainerScreen containerScreen, IRecipeCategory category) { for(SpeedCraftFunctional functional : RecipeHelper.getInstance().getSpeedCraftFunctional(category)) for(Class aClass : functional.getFunctioningFor()) - if (containerGui.getClass().isAssignableFrom(aClass)) + if (containerScreen.getClass().isAssignableFrom(aClass)) return functional; return null; } @@ -68,7 +69,7 @@ public class RecipeViewingWidget extends Gui { @Override public boolean keyPressed(int int_1, int int_2, int int_3) { if ((int_1 == 256 || this.client.options.keyInventory.matchesKey(int_1, int_2)) && this.doesEscapeKeyClose()) { - MinecraftClient.getInstance().openGui(GuiHelper.getLastContainerGui()); + MinecraftClient.getInstance().openScreen(GuiHelper.getLastContainerScreen()); return true; } for(GuiEventListener listener : listeners) @@ -98,7 +99,7 @@ public class RecipeViewingWidget extends Gui { currentCategoryIndex = categories.size() - 1; selectedCategory = categories.get(currentCategoryIndex); categoryPages = MathHelper.floor(currentCategoryIndex / 6d); - RecipeViewingWidget.this.onInitialized(); + RecipeViewingWidgetScreen.this.onInitialized(); } }); widgets.add(categoryNext = new ButtonWidget((int) bounds.getX() + 159, (int) bounds.getY() + 5, 12, 12, ">") { @@ -110,7 +111,7 @@ public class RecipeViewingWidget extends Gui { currentCategoryIndex = 0; selectedCategory = categories.get(currentCategoryIndex); categoryPages = MathHelper.floor(currentCategoryIndex / 6d); - RecipeViewingWidget.this.onInitialized(); + RecipeViewingWidgetScreen.this.onInitialized(); } }); categoryBack.enabled = categories.size() > 1; @@ -122,7 +123,7 @@ public class RecipeViewingWidget extends Gui { page--; if (page < 0) page = getTotalPages(selectedCategory) - 1; - RecipeViewingWidget.this.onInitialized(); + RecipeViewingWidgetScreen.this.onInitialized(); } }); widgets.add(recipeNext = new ButtonWidget((int) bounds.getX() + 159, (int) bounds.getY() + 21, 12, 12, ">") { @@ -131,7 +132,7 @@ public class RecipeViewingWidget extends Gui { page++; if (page >= getTotalPages(selectedCategory)) page = 0; - RecipeViewingWidget.this.onInitialized(); + RecipeViewingWidgetScreen.this.onInitialized(); } }); recipeBack.enabled = categoriesMap.get(selectedCategory).size() > getRecipesPerPage(); @@ -164,7 +165,7 @@ public class RecipeViewingWidget extends Gui { return false; selectedCategory = categories.get(getId() + categoryPages * 6); page = 0; - RecipeViewingWidget.this.onInitialized(); + RecipeViewingWidgetScreen.this.onInitialized(); return true; } return false; @@ -174,17 +175,23 @@ public class RecipeViewingWidget extends Gui { } } SpeedCraftAreaSupplier supplier = RecipeHelper.getInstance().getSpeedCraftButtonArea(selectedCategory); - final SpeedCraftFunctional functional = getSpeedCraftFunctionalByCategory(GuiHelper.getLastContainerGui(), selectedCategory); + final SpeedCraftFunctional functional = getSpeedCraftFunctionalByCategory(GuiHelper.getLastContainerScreen(), selectedCategory); if (page * getRecipesPerPage() < categoriesMap.get(selectedCategory).size()) { - final IRecipeDisplay topDisplay = categoriesMap.get(selectedCategory).get(page * getRecipesPerPage()); - widgets.addAll(selectedCategory.setupDisplay(topDisplay, new Rectangle((int) getBounds().getCenterX() - 75, getBounds().y + 40, 150, selectedCategory.usesFullPage() ? 140 : 66))); + final Supplier<IRecipeDisplay> topDisplaySupplier = () -> { + return categoriesMap.get(selectedCategory).get(page * getRecipesPerPage()); + }; + final Rectangle topBounds = new Rectangle((int) getBounds().getCenterX() - 75, getBounds().y + 40, 150, selectedCategory.usesFullPage() ? 140 : 66); + widgets.addAll(selectedCategory.setupDisplay(topDisplaySupplier, topBounds)); if (supplier != null) - widgets.add(new SpeedCraftingButtonWidget(supplie |
