aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-08-18 00:27:57 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-08-18 00:27:57 +0800
commit06dd7b84849ab01417e6449b0adbb1c83e8c38e0 (patch)
tree966c4beb26e41d3c59bc45174411b7c0f968c64a /src
parent0958de019acaf28cf3324a4e2dc4715ad612353e (diff)
downloadRoughlyEnoughItems-06dd7b84849ab01417e6449b0adbb1c83e8c38e0.tar.gz
RoughlyEnoughItems-06dd7b84849ab01417e6449b0adbb1c83e8c38e0.tar.bz2
RoughlyEnoughItems-06dd7b84849ab01417e6449b0adbb1c83e8c38e0.zip
I guess this is quite good
Diffstat (limited to 'src')
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java2
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java3
-rw-r--r--src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java7
-rw-r--r--src/main/java/me/shedaniel/rei/api/RecipeCategory.java2
-rw-r--r--src/main/java/me/shedaniel/rei/api/Renderer.java1
-rw-r--r--src/main/java/me/shedaniel/rei/api/TransferRecipeCategory.java16
-rw-r--r--src/main/java/me/shedaniel/rei/api/TransferRecipeDisplay.java5
-rw-r--r--src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java2
-rw-r--r--src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java4
-rw-r--r--src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java4
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java2
-rw-r--r--src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java2
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java26
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java2
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java2
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java2
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultAutoCraftingPlugin.java2
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java2
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java5
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java1
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java16
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingDisplay.java1
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/campfire/DefaultCampfireCategory.java2
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java5
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java18
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java16
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java16
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingDisplay.java1
-rw-r--r--src/main/java/me/shedaniel/rei/server/ContainerInfo.java5
-rw-r--r--src/main/java/me/shedaniel/rei/server/ContainerInfoHandler.java5
-rw-r--r--src/main/java/me/shedaniel/rei/server/RecipeGridAligner.java6
-rwxr-xr-xsrc/main/resources/assets/roughlyenoughitems/lang/en_us.json3
32 files changed, 142 insertions, 44 deletions
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<Integer, List<ItemStack>> 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<T extends RecipeDisplay> extends RecipeCategory<T> {
+ void renderRedSlots(List<Widget> 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<Widget> 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<ButtonAreaSupplier> 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<Widget> 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<RecipeDisplay> displaySupplier, List<Widget> setupDisplay) {
+ public AutoCraftingButtonWidget(Rectangle displayBounds, Rectangle rectangle, String text, Supplier<RecipeDisplay> displaySupplier, List<Widget> setupDisplay, RecipeCategory<?> recipeCategory) {
super(rectangle, text);
+ this.displayBounds = displayBounds;
this.displaySupplier = () -> displaySupplier.get();
Optional<Identifier> 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<RecipeDisplay>) 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<DefaultBlastingDisplay> {
+public class DefaultBlastingCategory implements TransferRecipeCategory<DefaultBlastingDisplay> {
@Override
public Identifier getIdentifier() {
@@ -81,4 +83,14 @@ public class DefaultBlastingCategory implements RecipeCategory<DefaultBlastingDi
return widgets;
}
+ @Override
+ public void renderRedSlots(List<Widget> 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.GlS