aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-03-16 16:19:25 +0800
committershedaniel <daniel@shedaniel.me>2020-03-16 16:19:25 +0800
commit9e990de7685960391d78ca2cca0ff68bebe1a8cd (patch)
tree1ce7e36a326d11d0d278bb070df9ba7984515c01 /src/main/java
parent921fbe77b6ebbbb7e5a78dc996ca5c98faf5fcc5 (diff)
downloadRoughlyEnoughItems-9e990de7685960391d78ca2cca0ff68bebe1a8cd.tar.gz
RoughlyEnoughItems-9e990de7685960391d78ca2cca0ff68bebe1a8cd.tar.bz2
RoughlyEnoughItems-9e990de7685960391d78ca2cca0ff68bebe1a8cd.zip
4.0.13
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java22
-rw-r--r--src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java4
-rw-r--r--src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java28
-rw-r--r--src/main/java/me/shedaniel/rei/api/DrawableConsumer.java3
-rw-r--r--src/main/java/me/shedaniel/rei/api/EntryStack.java19
-rw-r--r--src/main/java/me/shedaniel/rei/api/REIHelper.java13
-rw-r--r--src/main/java/me/shedaniel/rei/api/RecipeCategory.java6
-rw-r--r--src/main/java/me/shedaniel/rei/api/RecipeHelper.java6
-rw-r--r--src/main/java/me/shedaniel/rei/api/widgets/Slot.java16
-rw-r--r--src/main/java/me/shedaniel/rei/api/widgets/Tooltip.java59
-rw-r--r--src/main/java/me/shedaniel/rei/api/widgets/Widgets.java77
-rw-r--r--src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java48
-rw-r--r--src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java32
-rw-r--r--src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java19
-rw-r--r--src/main/java/me/shedaniel/rei/gui/config/entry/FilteringEntry.java6
-rw-r--r--src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java6
-rw-r--r--src/main/java/me/shedaniel/rei/gui/entries/RecipeEntry.java9
-rw-r--r--src/main/java/me/shedaniel/rei/gui/entries/SimpleRecipeEntry.java28
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java17
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java5
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/CategoryBaseWidget.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java5
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java3
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/EntryWidget.java13
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java3
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/LabelWidget.java3
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/QueuedTooltip.java37
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java6
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/RecipeChoosePageWidget.java8
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/SlotBaseWidget.java7
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java5
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/Widget.java4
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java4
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java2
-rw-r--r--src/main/java/me/shedaniel/rei/impl/DisplayHelperImpl.java1
-rw-r--r--src/main/java/me/shedaniel/rei/impl/EmptyEntryStack.java6
-rw-r--r--src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java7
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java7
-rw-r--r--src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java12
-rw-r--r--src/main/java/me/shedaniel/rei/impl/RenderingEntry.java4
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ScreenHelper.java50
-rw-r--r--src/main/java/me/shedaniel/rei/impl/SearchArgument.java5
-rw-r--r--src/main/java/me/shedaniel/rei/impl/widgets/BurningFireWidget.java3
-rw-r--r--src/main/java/me/shedaniel/rei/impl/widgets/DrawableWidget.java4
-rw-r--r--src/main/java/me/shedaniel/rei/impl/widgets/FillRectangleDrawableConsumer.java6
-rw-r--r--src/main/java/me/shedaniel/rei/impl/widgets/LabelWidget.java12
-rw-r--r--src/main/java/me/shedaniel/rei/impl/widgets/PanelWidget.java12
-rw-r--r--src/main/java/me/shedaniel/rei/impl/widgets/TexturedDrawableConsumer.java6
-rw-r--r--src/main/java/me/shedaniel/rei/listeners/AbstractInventoryScreenHooks.java2
-rw-r--r--src/main/java/me/shedaniel/rei/listeners/ContainerScreenHooks.java4
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java26
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultPotionEffectExclusionZones.java4
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java8
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/DefaultServerContainerPlugin.java2
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java4
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultRecipeBookHandler.java20
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/beacon/DefaultBeaconBaseCategory.java18
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java8
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/containers/CraftingContainerInfoWrapper.java8
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java4
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/fuel/DefaultFuelCategory.java8
-rw-r--r--src/main/java/me/shedaniel/rei/plugin/information/DefaultInformationCategory.java8
63 files changed, 498 insertions, 300 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
index 7145848f8..617f246b0 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
@@ -40,10 +40,10 @@ import net.fabricmc.loader.api.ModContainer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.screen.Screen;
-import net.minecraft.client.gui.screen.ingame.CraftingTableScreen;
+import net.minecraft.client.gui.screen.ingame.CraftingScreen;
import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
+import net.minecraft.client.gui.screen.ingame.HandledScreen;
import net.minecraft.client.gui.screen.ingame.InventoryScreen;
-import net.minecraft.client.gui.screen.ingame.ScreenWithHandler;
import net.minecraft.client.gui.screen.recipebook.RecipeBookGhostSlots;
import net.minecraft.client.gui.screen.recipebook.RecipeBookProvider;
import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget;
@@ -54,7 +54,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.recipe.Ingredient;
import net.minecraft.recipe.RecipeManager;
-import net.minecraft.screen.CraftingTableScreenHandler;
+import net.minecraft.screen.CraftingScreenHandler;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.LiteralText;
import net.minecraft.util.ActionResult;
@@ -188,7 +188,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
});
ClientSidePacketRegistry.INSTANCE.register(RoughlyEnoughItemsNetwork.NOT_ENOUGH_ITEMS_PACKET, (packetContext, packetByteBuf) -> {
Screen currentScreen = MinecraftClient.getInstance().currentScreen;
- if (currentScreen instanceof CraftingTableScreen) {
+ if (currentScreen instanceof CraftingScreen) {
RecipeBookWidget recipeBookGui = ((RecipeBookProvider) currentScreen).getRecipeBookWidget();
RecipeBookGhostSlots ghostSlots = ((RecipeBookGuiHooks) recipeBookGui).rei_getGhostSlots();
ghostSlots.reset();
@@ -205,12 +205,12 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
}
ghostSlots.addSlot(Ingredient.ofItems(Items.STONE), 381203812, 12738291);
- CraftingTableScreenHandler screenHandler = ((CraftingTableScreen) currentScreen).getScreenHandler();
+ CraftingScreenHandler screenHandler = ((CraftingScreen) currentScreen).getScreenHandler();
for (int i = 0; i < input.size(); i++) {
List<ItemStack> stacks = input.get(i);
if (!stacks.isEmpty()) {
Slot slot = screenHandler.getSlot(i + screenHandler.getCraftingResultSlotIndex() + 1);
- ghostSlots.addSlot(Ingredient.ofStacks(stacks.toArray(new ItemStack[0])), slot.xPosition, slot.yPosition);
+ ghostSlots.addSlot(Ingredient.ofStacks(stacks.toArray(new ItemStack[0])), slot.x, slot.y);
}
}
}
@@ -253,7 +253,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
continue;
ActionResult result = decider.shouldScreenBeOverlayed(screen);
if (result != ActionResult.PASS)
- return result == ActionResult.FAIL || ScreenHelper.getLastScreenWithHandlerHooks() == null;
+ return result == ActionResult.FAIL || ScreenHelper.getLastHandledScreen() == null;
}
return true;
}
@@ -263,7 +263,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
long[] lastSync = {-1};
ClothClientHooks.SYNC_RECIPES.register((minecraftClient, recipeManager, synchronizeRecipesS2CPacket) -> syncRecipes(lastSync));
ClothClientHooks.SCREEN_ADD_BUTTON.register((minecraftClient, screen, abstractButtonWidget) -> {
- if (ConfigObject.getInstance().doesDisableRecipeBook() && screen instanceof ScreenWithHandler && abstractButtonWidget instanceof TexturedButtonWidget)
+ if (ConfigObject.getInstance().doesDisableRecipeBook() && screen instanceof HandledScreen && abstractButtonWidget instanceof TexturedButtonWidget)
if (((RecipeBookButtonWidgetHooks) abstractButtonWidget).rei_getTexture().equals(recipeButtonTex))
return ActionResult.FAIL;
return ActionResult.PASS;
@@ -273,8 +273,8 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
return;
if (shouldReturn(screen.getClass()))
return;
- if (screen instanceof ScreenWithHandler)
- ScreenHelper.setLastScreenWithHandler((ScreenWithHandler<?>) screen);
+ if (screen instanceof HandledScreen)
+ ScreenHelper.setLastHandledScreen((HandledScreen<?>) screen);
boolean alreadyAdded = false;
for (Element element : Lists.newArrayList(screenHooks.cloth_getChildren()))
if (ContainerScreenOverlay.class.isAssignableFrom(element.getClass()))
@@ -335,7 +335,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
return ActionResult.PASS;
if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2))
return ActionResult.SUCCESS;
- if (screen instanceof ScreenWithHandler && ConfigObject.getInstance().doesDisableRecipeBook() && ConfigObject.getInstance().doesFixTabCloseContainer())
+ if (screen instanceof HandledScreen && ConfigObject.getInstance().doesDisableRecipeBook() && ConfigObject.getInstance().doesFixTabCloseContainer())
if (i == 258 && minecraftClient.options.keyInventory.matchesKey(i, i1)) {
minecraftClient.player.closeHandledScreen();
return ActionResult.SUCCESS;
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
index 2519bace6..f62fef279 100644
--- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
+++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
@@ -31,7 +31,7 @@ import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.network.ServerSidePacketRegistry;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.item.ItemStack;
-import net.minecraft.screen.CraftingScreenHandler;
+import net.minecraft.screen.AbstractRecipeScreenHandler;
import net.minecraft.screen.PlayerScreenHandler;
import net.minecraft.screen.ScreenHandler;
import net.minecraft.server.network.ServerPlayerEntity;
@@ -96,7 +96,7 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer {
try {
InputSlotCrafter.start(category, screenHandler, player, input, shift);
} catch (InputSlotCrafter.NotEnoughMaterialsException e) {
- if (!(screenHandler instanceof CraftingScreenHandler))
+ if (!(screenHandler instanceof AbstractRecipeScreenHandler))
return;
PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer());
buf.writeInt(input.size());
diff --git a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java
index 70ba2dd55..63f1d08a1 100644
--- a/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java
+++ b/src/main/java/me/shedaniel/rei/api/AutoTransferHandler.java
@@ -28,7 +28,7 @@ import it.unimi.dsi.fastutil.ints.IntList;
import me.shedaniel.rei.gui.ContainerScreenOverlay;
import me.shedaniel.rei.impl.ScreenHelper;
import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.screen.ingame.ScreenWithHandler;
+import net.minecraft.client.gui.screen.ingame.HandledScreen;
import net.minecraft.screen.ScreenHandler;
import org.jetbrains.annotations.ApiStatus;
@@ -82,8 +82,8 @@ public interface AutoTransferHandler {
}
interface Context {
- static Context create(boolean actuallyCrafting, ScreenWithHandler<?> containerScreen, RecipeDisplay recipeDisplay) {
- return new ContextImpl(actuallyCrafting, containerScreen, () -> recipeDisplay);
+ static Context create(boolean actuallyCrafting, HandledScreen<?> handledScreen, RecipeDisplay recipeDisplay) {
+ return new ContextImpl(actuallyCrafting, handledScreen, () -> recipeDisplay);
}
default MinecraftClient getMinecraft() {
@@ -92,12 +92,18 @@ public interface AutoTransferHandler {
boolean isActuallyCrafting();
- ScreenWithHandler<?> getScreenWithHandler();
+ HandledScreen<?> getHandledScreen();
@Deprecated
@ApiStatus.ScheduledForRemoval
- default ScreenWithHandler<?> getContainerScreen() {
- return getScreenWithHandler();
+ default HandledScreen<?> getScreenWithHandler() {
+ return getHandledScreen();
+ }
+
+ @Deprecated
+ @ApiStatus.ScheduledForRemoval
+ default HandledScreen<?> getContainerScreen() {
+ return getHandledScreen();
}
RecipeDisplay getRecipe();
@@ -174,12 +180,12 @@ public interface AutoTransferHandler {
@ApiStatus.Internal
final class ContextImpl implements Context {
boolean actuallyCrafting;
- ScreenWithHandler<?> screenWithHandler;
+ HandledScreen<?> handledScreen;
Supplier<RecipeDisplay> recipeDisplaySupplier;
- private ContextImpl(boolean actuallyCrafting, ScreenWithHandler<?> screenWithHandler, Supplier<RecipeDisplay> recipeDisplaySupplier) {
+ private ContextImpl(boolean actuallyCrafting, HandledScreen<?> handledScreen, Supplier<RecipeDisplay> recipeDisplaySupplier) {
this.actuallyCrafting = actuallyCrafting;
- this.screenWithHandler = screenWithHandler;
+ this.handledScreen = handledScreen;
this.recipeDisplaySupplier = recipeDisplaySupplier;
}
@@ -189,8 +195,8 @@ public interface AutoTransferHandler {
}
@Override
- public ScreenWithHandler<?> getScreenWithHandler() {
- return screenWithHandler;
+ public HandledScreen<?> getHandledScreen() {
+ return handledScreen;
}
@Override
diff --git a/src/main/java/me/shedaniel/rei/api/DrawableConsumer.java b/src/main/java/me/shedaniel/rei/api/DrawableConsumer.java
index 77ebfd9f7..cef309c89 100644
--- a/src/main/java/me/shedaniel/rei/api/DrawableConsumer.java
+++ b/src/main/java/me/shedaniel/rei/api/DrawableConsumer.java
@@ -24,10 +24,11 @@
package me.shedaniel.rei.api;
import net.minecraft.client.gui.DrawableHelper;
+import org.jetbrains.annotations.NotNull;
/**
* Consumer of a {@link DrawableHelper} and information of mouse and delta.
*/
public interface DrawableConsumer {
- void render(DrawableHelper helper, int mouseX, int mouseY, float delta);
+ void render(@NotNull DrawableHelper helper, int mouseX, int mouseY, float delta);
}
diff --git a/src/main/java/me/shedaniel/rei/api/EntryStack.java b/src/main/java/me/shedaniel/rei/api/EntryStack.java
index 376ae2aef..c2d5241e2 100644
--- a/src/main/java/me/shedaniel/rei/api/EntryStack.java
+++ b/src/main/java/me/shedaniel/rei/api/EntryStack.java
@@ -25,7 +25,9 @@ package me.shedaniel.rei.api;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
+import me.shedaniel.math.Point;
import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.rei.api.widgets.Tooltip;
import me.shedaniel.rei.gui.widget.QueuedTooltip;
import me.shedaniel.rei.impl.EmptyEntryStack;
import me.shedaniel.rei.impl.FluidEntryStack;
@@ -229,7 +231,22 @@ public interface EntryStack {
<T> T get(Settings<T> settings);
- @Nullable QueuedTooltip getTooltip(int mouseX, int mouseY);
+ /**
+ * @deprecated Use {@link #getTooltip(Point)}
+ */
+ @Nullable
+ @Deprecated
+ @ApiStatus.ScheduledForRemoval
+ default QueuedTooltip getTooltip(int mouseX, int mouseY) {
+ return null;
+ }
+
+ @Nullable
+ default Tooltip getTooltip(Point point) {
+ QueuedTooltip tooltip = getTooltip(point.x, point.y);
+ if (tooltip == null) return null;
+ return Tooltip.create(new Point(tooltip.getX(), tooltip.getY()), tooltip.getText());
+ }
void render(Rectangle bounds, int mouseX, int mouseY, float delta);
diff --git a/src/main/java/me/shedaniel/rei/api/REIHelper.java b/src/main/java/me/shedaniel/rei/api/REIHelper.java
index 578d3d4bf..5c8c80209 100644
--- a/src/main/java/me/shedaniel/rei/api/REIHelper.java
+++ b/src/main/java/me/shedaniel/rei/api/REIHelper.java
@@ -23,10 +23,12 @@
package me.shedaniel.rei.api;
+import me.shedaniel.rei.api.widgets.Tooltip;
import me.shedaniel.rei.gui.widget.QueuedTooltip;
import me.shedaniel.rei.gui.widget.TextFieldWidget;
import me.shedaniel.rei.impl.ScreenHelper;
import net.minecraft.item.ItemStack;
+import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import java.util.List;
@@ -46,6 +48,15 @@ public interface REIHelper {
List<ItemStack> getInventoryStacks();
- void addTooltip(@Nullable QueuedTooltip tooltip);
+ /**
+ * @deprecated Use {@link #queueTooltip(Tooltip)} or {@link Tooltip#queue()}
+ */
+ @Deprecated
+ @ApiStatus.ScheduledForRemoval
+ default void addTooltip(@Nullable QueuedTooltip tooltip) {
+ queueTooltip(tooltip);
+ }
+
+ void queueTooltip(@Nullable Tooltip tooltip);
}
diff --git a/src/main/java/me/shedaniel/rei/api/RecipeCategory.java b/src/main/java/me/shedaniel/rei/api/RecipeCategory.java
index 631217963..d491231b8 100644
--- a/src/main/java/me/shedaniel/rei/api/RecipeCategory.java
+++ b/src/main/java/me/shedaniel/rei/api/RecipeCategory.java
@@ -24,12 +24,12 @@
package me.shedaniel.rei.api;
import me.shedaniel.math.Rectangle;
+import me.shedaniel.rei.api.widgets.Widgets;
import me.shedaniel.rei.gui.RecipeViewingScreen;
import me.shedaniel.rei.gui.entries.RecipeEntry;
import me.shedaniel.rei.gui.entries.SimpleRecipeEntry;
-import me.shedaniel.rei.gui.widget.PanelWidget;
-import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
import me.shedaniel.rei.gui.widget.Widget;
+import