diff options
Diffstat (limited to 'src/main/java')
5 files changed, 22 insertions, 27 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 497b4e391..ee6bbeae1 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -72,7 +72,6 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer, ModInitiali return Optional.empty(); } - @SuppressWarnings("deprecation") @Override public void onInitializeClient() { configManager = new ConfigManager(); diff --git a/src/main/java/me/shedaniel/rei/client/ClientHelper.java b/src/main/java/me/shedaniel/rei/client/ClientHelper.java index 660fa8709..252d41a81 100644 --- a/src/main/java/me/shedaniel/rei/client/ClientHelper.java +++ b/src/main/java/me/shedaniel/rei/client/ClientHelper.java @@ -6,7 +6,6 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.api.RecipeHelper; -import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.RecipeViewingScreen; import me.shedaniel.rei.gui.config.ConfigScreen; import net.fabricmc.api.ClientModInitializer; diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index b295039a7..43c199fde 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -395,21 +395,8 @@ public class ContainerScreenOverlay extends ScreenComponent { return false; Point point = ClientHelper.getMouseLocation(); ItemStack itemStack = null; - for(IWidget widget : itemListOverlay.getListeners()) - if (widget instanceof ItemSlotWidget && ((ItemSlotWidget) widget).isHighlighted(point.x, point.y)) { - itemStack = ((ItemSlotWidget) widget).getCurrentStack(); - break; - } - if (itemStack == null && MinecraftClient.getInstance().currentScreen instanceof RecipeViewingScreen) { - RecipeViewingScreen recipeViewingWidget = (RecipeViewingScreen) MinecraftClient.getInstance().currentScreen; - for(IWidget widget : recipeViewingWidget.getWidgets()) - if (widget instanceof ItemSlotWidget && ((HighlightableWidget) widget).isHighlighted(point.x, point.y)) { - itemStack = ((ItemSlotWidget) widget).getCurrentStack(); - break; - } - } - if (itemStack == null && MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) - if (ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot() != null) + if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) + if (ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot() != null && !ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack().isEmpty()) itemStack = ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack(); if (itemStack != null && !itemStack.isEmpty()) { if (ClientHelper.RECIPE.matchesKey(int_1, int_2)) diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java index 32a9455a4..e3bf000fd 100644 --- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java @@ -32,18 +32,18 @@ public class RecipeViewingScreen extends Screen { public static final Identifier CHEST_GUI_TEXTURE = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png"); public static final Color SUB_COLOR = new Color(159, 159, 159); private static final Identifier CREATIVE_INVENTORY_TABS = new Identifier("textures/gui/container/creative_inventory/tabs.png"); + private final List<IWidget> widgets; + private final List<TabWidget> tabs; + private final Map<RecipeCategory, List<RecipeDisplay>> categoriesMap; + private final List<RecipeCategory> categories; public int guiWidth; public int guiHeight; public int page, categoryPages; public int largestWidth, largestHeight; public boolean choosePageActivated; public RecipeChoosePageWidget recipeChoosePageWidget; - private List<IWidget> widgets; - private List<TabWidget> tabs; private Window window; private Rectangle bounds; - private Map<RecipeCategory, List<RecipeDisplay>> categoriesMap; - private List<RecipeCategory> categories; private RecipeCategory selectedCategory; private ButtonWidget recipeBack, recipeNext, categoryBack, categoryNext; @@ -102,8 +102,9 @@ public class RecipeViewingScreen extends Screen { @Override public void onInitialized() { super.onInitialized(); + this.listeners.clear(); this.tabs.clear(); - this.widgets = Lists.newLinkedList(); + this.widgets.clear(); this.largestWidth = window.getScaledWidth() - 100; this.largestHeight = window.getScaledHeight() - 40; this.guiWidth = MathHelper.clamp(getCurrentDisplayed().stream().map(display -> selectedCategory.getDisplayWidth(display)).max(Integer::compareTo).orElse(150) + 30, 0, largestWidth); @@ -232,9 +233,8 @@ public class RecipeViewingScreen extends Screen { else recipeChoosePageWidget = null; - ScreenHelper.getLastOverlay().onInitialized(); listeners.addAll(tabs); - listeners.add(ScreenHelper.getLastOverlay()); + listeners.add(ScreenHelper.getLastOverlay(true)); listeners.addAll(widgets); } diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java index d68740d1f..65d43e017 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java @@ -130,13 +130,23 @@ public class ItemSlotWidget extends DrawableHelper implements HighlightableWidge public boolean onMouseClick(int button, double mouseX, double mouseY) { if (!clickToMoreRecipes) return false; - if (getBounds().contains(mouseX, mouseY)) { - System.out.println(ItemListOverlay.tryGetItemStackName(getCurrentStack())); + if (getBounds().contains(mouseX, mouseY)) if (button == 0) return ClientHelper.executeRecipeKeyBind(getCurrentStack().copy()); else if (button == 1) return ClientHelper.executeUsageKeyBind(getCurrentStack().copy()); - } + return false; + } + + @Override + public boolean keyPressed(int int_1, int int_2, int int_3) { + if (!clickToMoreRecipes) + return false; + if (getBounds().contains(ClientHelper.getMouseLocation())) + if (ClientHelper.RECIPE.matchesKey(int_1, int_2)) + return ClientHelper.executeRecipeKeyBind(getCurrentStack().copy()); + else if (ClientHelper.USAGE.matchesKey(int_1, int_2)) + return ClientHelper.executeUsageKeyBind(getCurrentStack()); return false; } |
