From 06dd7b84849ab01417e6449b0adbb1c83e8c38e0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 18 Aug 2019 00:27:57 +0800 Subject: I guess this is quite good --- .../me/shedaniel/rei/RoughlyEnoughItemsCore.java | 2 +- .../shedaniel/rei/RoughlyEnoughItemsNetwork.java | 3 --- .../me/shedaniel/rei/api/AutoTransferHandler.java | 7 ++++++ .../java/me/shedaniel/rei/api/RecipeCategory.java | 2 +- src/main/java/me/shedaniel/rei/api/Renderer.java | 1 + .../shedaniel/rei/api/TransferRecipeCategory.java | 16 +++++++++++++ .../shedaniel/rei/api/TransferRecipeDisplay.java | 5 +++++ .../shedaniel/rei/gui/PreRecipeViewingScreen.java | 2 +- .../me/shedaniel/rei/gui/RecipeViewingScreen.java | 4 ++-- .../rei/gui/VillagerRecipeViewingScreen.java | 4 ++-- .../shedaniel/rei/gui/credits/CreditsScreen.java | 2 +- .../rei/gui/renderers/ItemStackRenderer.java | 2 +- .../rei/gui/widget/AutoCraftingButtonWidget.java | 26 +++++++++++++++------- .../shedaniel/rei/gui/widget/RecipeBaseWidget.java | 2 +- .../rei/gui/widget/RecipeChoosePageWidget.java | 2 +- .../me/shedaniel/rei/gui/widget/SlotWidget.java | 2 +- .../rei/plugin/DefaultAutoCraftingPlugin.java | 2 +- .../me/shedaniel/rei/plugin/DefaultPlugin.java | 2 +- .../rei/plugin/DefaultServerContainerPlugin.java | 5 +++++ .../autocrafting/DefaultCategoryHandler.java | 1 - .../plugin/blasting/DefaultBlastingCategory.java | 16 +++++++++++-- .../plugin/blasting/DefaultBlastingDisplay.java | 1 - .../plugin/campfire/DefaultCampfireCategory.java | 2 +- .../containers/CraftingContainerInfoWrapper.java | 5 +++++ .../plugin/crafting/DefaultCraftingCategory.java | 18 +++++++++++++-- .../plugin/smelting/DefaultSmeltingCategory.java | 16 +++++++++++-- .../rei/plugin/smoking/DefaultSmokingCategory.java | 16 +++++++++++-- .../rei/plugin/smoking/DefaultSmokingDisplay.java | 1 - .../me/shedaniel/rei/server/ContainerInfo.java | 5 +++++ .../shedaniel/rei/server/ContainerInfoHandler.java | 5 +++++ .../me/shedaniel/rei/server/RecipeGridAligner.java | 6 ----- 31 files changed, 140 insertions(+), 43 deletions(-) create mode 100644 src/main/java/me/shedaniel/rei/api/TransferRecipeCategory.java (limited to 'src/main/java/me') diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 4d57b3242..e6e8ee9ca 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -11,9 +11,9 @@ import me.shedaniel.cloth.api.ClientUtils; import me.shedaniel.cloth.hooks.ClothClientHooks; import me.shedaniel.rei.api.*; import me.shedaniel.rei.api.plugins.REIPluginV0; -import me.shedaniel.rei.impl.*; import me.shedaniel.rei.gui.ContainerScreenOverlay; import me.shedaniel.rei.gui.widget.EntryListWidget; +import me.shedaniel.rei.impl.*; import me.shedaniel.rei.listeners.RecipeBookButtonWidgetHooks; import me.shedaniel.rei.listeners.RecipeBookGuiHooks; import net.fabricmc.api.ClientModInitializer; diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java index 8fd0f5030..d906de774 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java @@ -33,7 +33,6 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer { public static final Identifier CREATE_ITEMS_MESSAGE_PACKET = new Identifier("roughlyenoughitems", "ci_msg"); public static final Identifier MOVE_ITEMS_PACKET = new Identifier("roughlyenoughitems", "move_items"); public static final Identifier NOT_ENOUGH_ITEMS_PACKET = new Identifier("roughlyenoughitems", "og_not_enough"); - // public static final UUID CRAFTING_TABLE_MOVE = UUID.fromString("190c2b2d-d1f6-4149-a4a8-62860189403e"); @Override public void onInitialize() { @@ -59,12 +58,10 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer { player.addChatMessage(new TranslatableText("text.rei.failed_cheat_items"), false); }); ServerSidePacketRegistry.INSTANCE.register(MOVE_ITEMS_PACKET, (packetContext, packetByteBuf) -> { - // UUID type = packetByteBuf.readUuid(); Identifier category = packetByteBuf.readIdentifier(); ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer(); Container container = player.container; PlayerContainer playerContainer = player.playerContainer; - // if (type.equals(CRAFTING_TABLE_MOVE)) { try { boolean shift = packetByteBuf.readBoolean(); Map> input = Maps.newHashMap(); diff --git a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java index 44bc4f8d2..cec7afa74 100644 --- a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java +++ b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java @@ -55,6 +55,8 @@ public interface AutoTransferHandler { boolean isApplicable(); String getErrorKey(); + + IntList getIntegers(); } public interface Context { @@ -125,6 +127,11 @@ public interface AutoTransferHandler { public String getErrorKey() { return errorKey; } + + @Override + public IntList getIntegers() { + return integers; + } } public final class ContextImpl implements Context { diff --git a/src/main/java/me/shedaniel/rei/api/RecipeCategory.java b/src/main/java/me/shedaniel/rei/api/RecipeCategory.java index 1e71d7c00..2c27b632d 100644 --- a/src/main/java/me/shedaniel/rei/api/RecipeCategory.java +++ b/src/main/java/me/shedaniel/rei/api/RecipeCategory.java @@ -5,12 +5,12 @@ package me.shedaniel.rei.api; -import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.gui.RecipeViewingScreen; import me.shedaniel.rei.gui.renderers.RecipeRenderer; import me.shedaniel.rei.gui.widget.CategoryBaseWidget; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.Widget; +import me.shedaniel.rei.impl.ScreenHelper; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.util.Identifier; diff --git a/src/main/java/me/shedaniel/rei/api/Renderer.java b/src/main/java/me/shedaniel/rei/api/Renderer.java index 322e45106..eb327cef1 100644 --- a/src/main/java/me/shedaniel/rei/api/Renderer.java +++ b/src/main/java/me/shedaniel/rei/api/Renderer.java @@ -62,6 +62,7 @@ public abstract class Renderer extends DrawableHelper { public static ItemStackRenderer fromItemStack(ItemStack stack) { return fromItemStackSupplier(() -> stack); } + public static FluidRenderer fromFluid(Fluid fluid) { return new FluidRenderer() { @Override diff --git a/src/main/java/me/shedaniel/rei/api/TransferRecipeCategory.java b/src/main/java/me/shedaniel/rei/api/TransferRecipeCategory.java new file mode 100644 index 000000000..71ecc877f --- /dev/null +++ b/src/main/java/me/shedaniel/rei/api/TransferRecipeCategory.java @@ -0,0 +1,16 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + +package me.shedaniel.rei.api; + +import it.unimi.dsi.fastutil.ints.IntList; +import me.shedaniel.rei.gui.widget.Widget; + +import java.awt.*; +import java.util.List; + +public interface TransferRecipeCategory extends RecipeCategory { + void renderRedSlots(List widgets, Rectangle bounds, T display, IntList redSlots); +} diff --git a/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java b/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java index becd280f8..3e7ed1bc8 100644 --- a/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java +++ b/src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java @@ -1,3 +1,8 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + package me.shedaniel.rei.api; import me.shedaniel.rei.server.ContainerInfo; diff --git a/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java index 1063cbbd8..6ffbaebd2 100644 --- a/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java @@ -10,11 +10,11 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.ClientHelper; import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.api.RecipeDisplay; -import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.gui.config.RecipeScreenType; import me.shedaniel.rei.gui.widget.ButtonWidget; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.WidgetWithBounds; +import me.shedaniel.rei.impl.ScreenHelper; import me.zeroeightsix.fiber.exception.FiberException; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Element; diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java index 7d980c9d4..51162cf08 100644 --- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java @@ -10,8 +10,8 @@ import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.cloth.api.ClientUtils; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.*; -import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.gui.widget.*; +import me.shedaniel.rei.impl.ScreenHelper; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Element; import net.minecraft.client.gui.screen.Screen; @@ -281,7 +281,7 @@ public class RecipeViewingScreen extends Screen { List setupDisplay = selectedCategory.setupDisplay(displaySupplier, displayBounds); this.widgets.addAll(setupDisplay); if (supplier.isPresent() && supplier.get().get(displayBounds) != null) - this.widgets.add(new AutoCraftingButtonWidget(supplier.get().get(displayBounds), supplier.get().getButtonText(), displaySupplier, setupDisplay)); + this.widgets.add(new AutoCraftingButtonWidget(displayBounds, supplier.get().get(displayBounds), supplier.get().getButtonText(), displaySupplier, setupDisplay, selectedCategory)); } if (choosePageActivated) recipeChoosePageWidget = new RecipeChoosePageWidget(this, page, getTotalPages(selectedCategory)); diff --git a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java index 2a26605aa..40bf80d91 100644 --- a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java @@ -132,7 +132,7 @@ public class VillagerRecipeViewingScreen extends Screen { this.widgets.addAll(setupDisplay); Optional supplier = RecipeHelper.getInstance().getSpeedCraftButtonArea(category); if (supplier.isPresent() && supplier.get().get(recipeBounds) != null) - this.widgets.add(new AutoCraftingButtonWidget(supplier.get().get(recipeBounds), supplier.get().getButtonText(), () -> display, setupDisplay)); + this.widgets.add(new AutoCraftingButtonWidget(recipeBounds, supplier.get().get(recipeBounds), supplier.get().getButtonText(), () -> display, setupDisplay, category)); int index = 0; for (RecipeDisplay recipeDisplay : categoryMap.get(category)) { @@ -270,7 +270,7 @@ public class VillagerRecipeViewingScreen extends Screen { if (scrollBarAlphaFuture == 0) scrollBarAlphaFuture = 1f; if (System.currentTimeMillis() - scrollBarAlphaFutureTime > 300f) - scrollBarAlphaFutureTime = System.currentTimeMillis(); + scrollBarAlphaFutureTime = System.currentTimeMillis(); return true; } for (Element listener : children()) diff --git a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java index d73941d79..e67d1361a 100644 --- a/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java @@ -8,8 +8,8 @@ package me.shedaniel.rei.gui.credits; import com.google.common.collect.Lists; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.gui.credits.CreditsEntryListWidget.CreditsItem; +import me.shedaniel.rei.impl.ScreenHelper; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; diff --git a/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java b/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java index 79b3f5528..0387b79a6 100644 --- a/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java +++ b/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java @@ -10,9 +10,9 @@ import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.ClientHelper; import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.gui.widget.EntryListWidget; import me.shedaniel.rei.gui.widget.QueuedTooltip; +import me.shedaniel.rei.impl.ScreenHelper; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.render.item.ItemRenderer; diff --git a/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java index adcaacd8b..d4d5e1b6c 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java @@ -6,9 +6,8 @@ package me.shedaniel.rei.gui.widget; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.AutoTransferHandler; -import me.shedaniel.rei.api.RecipeDisplay; -import me.shedaniel.rei.api.RecipeHelper; +import it.unimi.dsi.fastutil.ints.IntList; +import me.shedaniel.rei.api.*; import me.shedaniel.rei.impl.ScreenHelper; import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; import net.minecraft.client.resource.language.I18n; @@ -28,15 +27,19 @@ public class AutoCraftingButtonWidget extends ButtonWidget { private String errorTooltip; private List setupDisplay; private AbstractContainerScreen containerScreen; - private boolean visible = false; + private boolean visible = false; + private RecipeCategory category; + private Rectangle displayBounds; - public AutoCraftingButtonWidget(Rectangle rectangle, String text, Supplier displaySupplier, List setupDisplay) { + public AutoCraftingButtonWidget(Rectangle displayBounds, Rectangle rectangle, String text, Supplier displaySupplier, List setupDisplay, RecipeCategory recipeCategory) { super(rectangle, text); + this.displayBounds = displayBounds; this.displaySupplier = () -> displaySupplier.get(); Optional recipe = displaySupplier.get().getRecipeLocation(); extraTooltip = recipe.isPresent() ? I18n.translate("text.rei.recipe_id", Formatting.GRAY.toString(), recipe.get().toString()) : ""; this.containerScreen = ScreenHelper.getLastContainerScreen(); this.setupDisplay = setupDisplay; + this.category = recipeCategory; } @Override @@ -60,6 +63,7 @@ public class AutoCraftingButtonWidget extends ButtonWidget { String error = null; int color = 0; visible = false; + IntList redSlots = null; AutoTransferHandler.Context context = AutoTransferHandler.Context.create(false, containerScreen, displaySupplier.get()); for (AutoTransferHandler autoTransferHandler : RecipeHelper.getInstance().getSortedAutoCraftingHandler()) { try { @@ -73,13 +77,19 @@ public class AutoCraftingButtonWidget extends ButtonWidget { } else if (error == null) { error = result.getErrorKey(); color = result.getColor(); + redSlots = result.getIntegers(); } } catch (Exception e) { e.printStackTrace(); } } - if (!visible) + if (!visible) { enabled = false; + error = "error.rei.no.handlers.applicable"; + } + if (isHovered(mouseX, mouseY) && category instanceof TransferRecipeCategory && redSlots != null) { + ((TransferRecipeCategory) category).renderRedSlots(setupDisplay, displayBounds, displaySupplier.get(), redSlots); + } errorTooltip = error; int x = getBounds().x, y = getBounds().y, width = getBounds().width, height = getBounds().height; minecraft.getTextureManager().bindTexture(ScreenHelper.isDarkModeEnabled() ? BUTTON_LOCATION_DARK : BUTTON_LOCATION); @@ -107,7 +117,7 @@ public class AutoCraftingButtonWidget extends ButtonWidget { int colour = 14737632; if (!this.visible) { colour = 10526880; - } else if (enabled && isHovered(mouseX, mouseY)) { + } else if (enabled && isHovered(mouseX, mouseY)) { colour = 16777120; } @@ -123,7 +133,7 @@ public class AutoCraftingButtonWidget extends ButtonWidget { @Override protected int getTextureId(boolean boolean_1) { - return !visible ? 0 :boolean_1 && enabled ? 2 : 1; + return !visible ? 0 : boolean_1 && enabled ? 2 : 1; } @Override diff --git a/src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java index c2335d039..614fd59ff 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java @@ -7,8 +7,8 @@ package me.shedaniel.rei.gui.widget; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.RoughlyEnoughItemsCore; -import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.gui.config.RecipeScreenType; +import me.shedaniel.rei.impl.ScreenHelper; import net.minecraft.client.render.GuiLighting; import net.minecraft.util.Identifier; diff --git a/src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java index 113226cea..4e4ec7c30 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java @@ -9,9 +9,9 @@ import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.ConfigManager; +import me.shedaniel.rei.gui.RecipeViewingScreen; import me.shedaniel.rei.impl.ConfigObjectImpl; import me.shedaniel.rei.impl.ScreenHelper; -import me.shedaniel.rei.gui.RecipeViewingScreen; import me.zeroeightsix.fiber.exception.FiberException; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java index 0a4ef6bd2..3d178508e 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java @@ -11,9 +11,9 @@ import me.shedaniel.cloth.api.ClientUtils; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.ClientHelper; import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.gui.renderers.FluidRenderer; import me.shedaniel.rei.gui.renderers.ItemStackRenderer; +import me.shedaniel.rei.impl.ScreenHelper; import net.minecraft.client.gui.Element; import net.minecraft.fluid.Fluid; import net.minecraft.item.ItemStack; diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultAutoCraftingPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultAutoCraftingPlugin.java index 2e3d87325..6fc5d3a88 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultAutoCraftingPlugin.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultAutoCraftingPlugin.java @@ -24,7 +24,7 @@ public class DefaultAutoCraftingPlugin implements REIPluginV0 { @Override public SemanticVersion getMinimumVersion() throws VersionParsingException { - return SemanticVersion.parse("2.10"); + return SemanticVersion.parse("2.11"); } @Override diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java index 7e2c1a983..e0e4438c7 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java @@ -90,7 +90,7 @@ public class DefaultPlugin implements REIPluginV0 { @Override public SemanticVersion getMinimumVersion() throws VersionParsingException { - return SemanticVersion.parse("2.10"); + return SemanticVersion.parse("2.11"); } @Override diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java index d192cf39e..5bde30c99 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java @@ -1,3 +1,8 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + package me.shedaniel.rei.plugin; import me.shedaniel.rei.plugin.containers.CraftingContainerInfoWrapper; diff --git a/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java b/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java index c12d7e809..dc779d42a 100644 --- a/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java +++ b/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java @@ -56,7 +56,6 @@ public class DefaultCategoryHandler implements AutoTransferHandler { if (containerScreen instanceof RecipeBookProvider) ((RecipeBookGuiHooks) ((RecipeBookProvider) containerScreen).getRecipeBookGui()).rei_getGhostSlots().reset(); PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer()); - // buf.writeUuid(RoughlyEnoughItemsNetwork.CRAFTING_TABLE_MOVE); buf.writeIdentifier(recipe.getRecipeCategory()); buf.writeBoolean(Screen.hasShiftDown()); diff --git a/src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java b/src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java index a5a328cde..3c228c468 100644 --- a/src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java @@ -6,8 +6,9 @@ package me.shedaniel.rei.plugin.blasting; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.RecipeCategory; +import it.unimi.dsi.fastutil.ints.IntList; import me.shedaniel.rei.api.Renderer; +import me.shedaniel.rei.api.TransferRecipeCategory; import me.shedaniel.rei.gui.renderers.RecipeRenderer; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.SlotWidget; @@ -15,6 +16,7 @@ import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.resource.language.I18n; import net.minecraft.item.ItemStack; @@ -29,7 +31,7 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class DefaultBlastingCategory implements RecipeCategory { +public class DefaultBlastingCategory implements TransferRecipeCategory { @Override public Identifier getIdentifier() { @@ -81,4 +83,14 @@ public class DefaultBlastingCategory implements RecipeCategory widgets, Rectangle bounds, DefaultBlastingDisplay display, IntList redSlots) { + Point startPoint = new Point((int) bounds.getCenterX() - 41, (int) bounds.getCenterY() - 27); + GlStateManager.translatef(0, 0, 400); + if (redSlots.contains(0)) { + DrawableHelper.fill(startPoint.x + 1, startPoint.y + 1, startPoint.x + 1 + 16, startPoint.y + 1 + 16, 0x30ff0000); + } + GlStateManager.translatef(0, 0, -400); + } + } diff --git a/src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingDisplay.java index d8437887e..9958af02f 100644 --- a/src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingDisplay.java +++ b/src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingDisplay.java @@ -5,7 +5,6 @@ package me.shedaniel.rei.plugin.blasting; -import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.api.TransferRecipeDisplay; import me.shedaniel.rei.plugin.DefaultPlugin; import me.shedaniel.rei.server.ContainerInfo; diff --git a/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java b/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java index 67a891c92..2860989a1 100644 --- a/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java @@ -8,10 +8,10 @@ package me.shedaniel.rei.plugin.campfire; import com.mojang.blaze3d.platform.GlStateManager; import me.shedaniel.rei.api.RecipeCategory; import me.shedaniel.rei.api.Renderer; -import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.Widget; +import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; diff --git a/src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java b/src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java index 19bd70b38..78201a3bc 100644 --- a/src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java +++ b/src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java @@ -1,3 +1,8 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + package me.shedaniel.rei.plugin.containers; import me.shedaniel.rei.server.ContainerInfo; diff --git a/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java b/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java index 29f9753f1..1c69c65c8 100644 --- a/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java @@ -7,14 +7,16 @@ package me.shedaniel.rei.plugin.crafting; import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.RecipeCategory; +import it.unimi.dsi.fastutil.ints.IntList; import me.shedaniel.rei.api.Renderer; +import me.shedaniel.rei.api.TransferRecipeCategory; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.resource.language.I18n; import net.minecraft.item.ItemStack; @@ -26,7 +28,7 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class DefaultCraftingCategory implements RecipeCategory { +public class DefaultCraftingCategory implements TransferRecipeCategory { public static int getSlotWithSize(DefaultCraftingDisplay recipeDisplay, int num) { if (recipeDisplay.getWidth() == 1) { @@ -94,4 +96,16 @@ public class DefaultCraftingCategory implements RecipeCategory widgets, Rectangle bounds, DefaultCraftingDisplay display, IntList redSlots) { + Point startPoint = new Point((int) bounds.getCenterX() - 58, (int) bounds.getCenterY() - 27); + GlStateManager.translatef(0, 0, 400); + for (Integer slot : redSlots) { + int i = getSlotWithSize(display, slot); + int x = i % 3; + int y = (i - x) / 3; + DrawableHelper.fill(startPoint.x + 1 + x * 18, startPoint.y + 1 + y * 18, startPoint.x + 1 + x * 18 + 16, startPoint.y + 1 + y * 18 + 16, 0x30ff0000); + } + GlStateManager.translatef(0, 0, -400); + } } diff --git a/src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java b/src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java index faae202d7..9f2c083f3 100644 --- a/src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java @@ -6,8 +6,9 @@ package me.shedaniel.rei.plugin.smelting; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.RecipeCategory; +import it.unimi.dsi.fastutil.ints.IntList; import me.shedaniel.rei.api.Renderer; +import me.shedaniel.rei.api.TransferRecipeCategory; import me.shedaniel.rei.gui.renderers.RecipeRenderer; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.SlotWidget; @@ -15,6 +16,7 @@ import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.resource.language.I18n; import net.minecraft.item.ItemStack; @@ -29,7 +31,7 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class DefaultSmeltingCategory implements RecipeCategory { +public class DefaultSmeltingCategory implements TransferRecipeCategory { @Override public Identifier getIdentifier() { @@ -80,4 +82,14 @@ public class DefaultSmeltingCategory implements RecipeCategory widgets, Rectangle bounds, DefaultSmeltingDisplay display, IntList redSlots) { + Point startPoint = new Point((int) bounds.getCenterX() - 41, (int) bounds.getCenterY() - 27); + GlStateManager.translatef(0, 0, 400); + if (redSlots.contains(0)) { + DrawableHelper.fill(startPoint.x + 1, startPoint.y + 1, startPoint.x + 1 + 16, startPoint.y + 1 + 16, 0x30ff0000); + } + GlStateManager.translatef(0, 0, -400); + } + } diff --git a/src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java b/src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java index b171e1669..62230f493 100644 --- a/src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java @@ -6,8 +6,9 @@ package me.shedaniel.rei.plugin.smoking; import com.mojang.blaze3d.platform.GlStateManager; -import me.shedaniel.rei.api.RecipeCategory; +import it.unimi.dsi.fastutil.ints.IntList; import me.shedaniel.rei.api.Renderer; +import me.shedaniel.rei.api.TransferRecipeCategory; import me.shedaniel.rei.gui.renderers.RecipeRenderer; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.SlotWidget; @@ -15,6 +16,7 @@ import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.resource.language.I18n; import net.minecraft.item.ItemStack; @@ -29,7 +31,7 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -public class DefaultSmokingCategory implements RecipeCategory { +public class DefaultSmokingCategory implements TransferRecipeCategory { @Override public Identifier getIdentifier() { @@ -80,4 +82,14 @@ public class DefaultSmokingCategory implements RecipeCategory widgets, Rectangle bounds, DefaultSmokingDisplay display, IntList redSlots) { + Point startPoint = new Point((int) bounds.getCenterX() - 41, (int) bounds.getCenterY() - 27); + GlStateManager.translatef(0, 0, 400); + if (redSlots.contains(0)) { + DrawableHelper.fill(startPoint.x + 1, startPoint.y + 1, startPoint.x + 1 + 16, startPoint.y + 1 + 16, 0x30ff0000); + } + GlStateManager.translatef(0, 0, -400); + } + } diff --git a/src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingDisplay.java b/src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingDisplay.java index 0c58b5baa..55d6a621d 100644 --- a/src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingDisplay.java +++ b/src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingDisplay.java @@ -5,7 +5,6 @@ package me.shedaniel.rei.plugin.smoking; -import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.api.TransferRecipeDisplay; import me.shedaniel.rei.plugin.DefaultPlugin; import me.shedaniel.rei.server.ContainerInfo; diff --git a/src/main/java/me/shedaniel/rei/server/ContainerInfo.java b/src/main/java/me/shedaniel/rei/server/ContainerInfo.java index 69408fb05..5dce46e75 100644 --- a/src/main/java/me/shedaniel/rei/server/ContainerInfo.java +++ b/src/main/java/me/shedaniel/rei/server/ContainerInfo.java @@ -1,3 +1,8 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + package me.shedaniel.rei.server; import net.minecraft.container.Container; diff --git a/src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java b/src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java index ca009695b..51f98cb2e 100644 --- a/src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java +++ b/src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java @@ -1,3 +1,8 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + package me.shedaniel.rei.server; import com.google.common.collect.Maps; diff --git a/src/main/java/me/shedaniel/rei/server/RecipeGridAligner.java b/src/main/java/me/shedaniel/rei/server/RecipeGridAligner.java index 12fa29769..26f544c51 100644 --- a/src/main/java/me/shedaniel/rei/server/RecipeGridAligner.java +++ b/src/main/java/me/shedaniel/rei/server/RecipeGridAligner.java @@ -15,12 +15,6 @@ public interface RecipeGridAligner { default void alignRecipeToGrid(int int_1, int int_2, int int_3, DefaultedList recipe_1, Iterator iterator_1, int int_4) { int int_5 = int_1; int int_6 = int_2; - // if (recipe_1 instanceof ShapedRecipe) { - // ShapedRecipe shapedRecipe_1 = (ShapedRecipe)recipe_1; - // int_5 = shapedRecipe_1.getWidth(); - // int_6 = shapedRecipe_1.getHeight(); - // } - int int_7 = 0; for (int int_8 = 0; int_8 < int_2; ++int_8) { -- cgit