diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-03-16 16:19:25 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-03-16 16:19:25 +0800 |
| commit | 9e990de7685960391d78ca2cca0ff68bebe1a8cd (patch) | |
| tree | 1ce7e36a326d11d0d278bb070df9ba7984515c01 /src/main/java/me | |
| parent | 921fbe77b6ebbbb7e5a78dc996ca5c98faf5fcc5 (diff) | |
| download | RoughlyEnoughItems-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/me')
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 me.shedaniel.rei.impl.widgets.PanelWidget; import net.minecraft.client.gui.DrawableHelper; import net.minecraft.util.Identifier; import org.jetbrains.annotations.ApiStatus; @@ -87,7 +87,7 @@ public interface RecipeCategory<T extends RecipeDisplay> { @ApiStatus.ScheduledForRemoval @Deprecated default List<Widget> setupDisplay(Supplier<T> recipeDisplaySupplier, me.shedaniel.math.api.Rectangle bounds) { - return Collections.singletonList(new RecipeBaseWidget(bounds)); + |
