diff options
Diffstat (limited to 'api/src/main/java/me')
3 files changed, 20 insertions, 15 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java index 085eb772b..43be06845 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/TooltipContext.java @@ -28,6 +28,7 @@ import me.shedaniel.math.impl.PointHelper; import me.shedaniel.rei.impl.ClientInternals; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.world.item.Item; import net.minecraft.world.item.TooltipFlag; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -35,24 +36,24 @@ import org.jetbrains.annotations.Nullable; @Environment(EnvType.CLIENT) @ApiStatus.NonExtendable public interface TooltipContext { - static TooltipContext of() { - return TooltipContext.of(new Point()); + static TooltipContext of(Item.TooltipContext vanillaContext) { + return TooltipContext.of(new Point(), vanillaContext); } - static TooltipContext of(Point point) { - return TooltipContext.of(point, null); + static TooltipContext of(Point point, Item.TooltipContext vanillaContext) { + return TooltipContext.of(point, vanillaContext, null); } - static TooltipContext of(Point point, @Nullable TooltipFlag flag) { - return TooltipContext.of(point, flag, false); + static TooltipContext of(Point point, Item.TooltipContext vanillaContext, @Nullable TooltipFlag flag) { + return TooltipContext.of(point, vanillaContext, flag, false); } - static TooltipContext of(Point point, @Nullable TooltipFlag flag, boolean isSearch) { - return ClientInternals.createTooltipContext(point, flag, isSearch); + static TooltipContext of(Point point, Item.TooltipContext vanillaContext, @Nullable TooltipFlag flag, boolean isSearch) { + return ClientInternals.createTooltipContext(point, flag, isSearch, vanillaContext); } - static TooltipContext ofMouse() { - return TooltipContext.of(PointHelper.ofMouse()); + static TooltipContext ofMouse(Item.TooltipContext vanillaContext) { + return TooltipContext.of(PointHelper.ofMouse(), vanillaContext); } TooltipFlag getFlag(); @@ -60,4 +61,6 @@ public interface TooltipContext { Point getPoint(); boolean isSearch(); + + Item.TooltipContext vanillaContext(); } diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/DumpHandler.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/DumpHandler.java index 9f1fe8593..dda6344df 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/DumpHandler.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/simple/DumpHandler.java @@ -55,6 +55,6 @@ public interface DumpHandler<T extends AbstractContainerMenu, D extends Display> } static boolean canStackAddMore(ItemStack existingStack, ItemStack stack) { - return !existingStack.isEmpty() && ItemStack.isSameItemSameTags(existingStack, stack) && existingStack.isStackable() && existingStack.getCount() + stack.getCount() <= existingStack.getMaxStackSize(); + return !existingStack.isEmpty() && ItemStack.isSameItemSameComponents(existingStack, stack) && existingStack.isStackable() && existingStack.getCount() + stack.getCount() <= existingStack.getMaxStackSize(); } } diff --git a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java index 27e4280d1..f4f36769c 100644 --- a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java +++ b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java @@ -47,14 +47,16 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +import net.minecraft.data.models.blockstates.PropertyDispatch; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.FormattedText; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.inventory.tooltip.TooltipComponent; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import org.apache.commons.lang3.function.TriFunction; +import org.apache.commons.io.function.IOQuadFunction; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import org.joml.Matrix4f; @@ -83,7 +85,7 @@ public final class ClientInternals { private static Function<Boolean, ClickArea.Result> clickAreaHandlerResult = (result) -> throwNotSetup(); private static BiConsumer<List<ClientTooltipComponent>, TooltipComponent> clientTooltipComponentProvider = (tooltip, result) -> throwNotSetup(); private static BiFunction<@Nullable Point, Collection<Tooltip.Entry>, Tooltip> tooltipProvider = (point, texts) -> throwNotSetup(); - private static TriFunction<Point, @Nullable TooltipFlag, Boolean, TooltipContext> tooltipContextProvider = (point, texts, search) -> throwNotSetup(); + private static PropertyDispatch.QuadFunction<Point, @Nullable TooltipFlag, Boolean, Item.TooltipContext, TooltipContext> tooltipContextProvider = (point, texts, search, context) -> throwNotSetup(); private static Function<Object, Tooltip.Entry> tooltipEntryProvider = (component) -> throwNotSetup(); private static Supplier<List<String>> jeiCompatMods = ClientInternals::throwNotSetup; private static Supplier<Object> builtinClientPlugin = ClientInternals::throwNotSetup; @@ -146,8 +148,8 @@ public final class ClientInternals { return tooltipProvider.apply(point, texts); } - public static TooltipContext createTooltipContext(Point point, @Nullable TooltipFlag flag, boolean isSearch) { - return tooltipContextProvider.apply(point, flag, isSearch); + public static TooltipContext createTooltipContext(Point point, @Nullable TooltipFlag flag, boolean isSearch, Item.TooltipContext context) { + return tooltipContextProvider.apply(point, flag, isSearch, context); } public static Tooltip.Entry createTooltipEntry(Object component) { |
