diff options
Diffstat (limited to 'runtime')
3 files changed, 31 insertions, 21 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java index 3f9cfe4cc..96a19c34d 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java @@ -362,11 +362,9 @@ public class EntryWidget extends Slot implements DraggableStackProviderWidget { RenderSystem.disableDepthTest(); RenderSystem.colorMask(true, true, true, false); Rectangle bounds = getInnerBounds(); - setZ(300); fillGradient(matrices, bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), 0x80ffffff, 0x80ffffff); int darkColor = 0x111111 | ((int) (90 * darkHighlightedAlpha.value()) << 24); fillGradient(matrices, bounds.x, bounds.y, bounds.getMaxX(), bounds.getMaxY(), darkColor, darkColor); - setZ(0); RenderSystem.colorMask(true, true, true, true); RenderSystem.enableDepthTest(); } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/QueuedTooltip.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/QueuedTooltip.java index 586eae71a..5c992d197 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/QueuedTooltip.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/QueuedTooltip.java @@ -29,6 +29,7 @@ import me.shedaniel.math.Point; import me.shedaniel.math.impl.PointHelper; import me.shedaniel.rei.api.client.gui.widgets.Tooltip; import me.shedaniel.rei.api.common.entry.EntryStack; +import me.shedaniel.rei.api.common.util.CollectionUtils; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; @@ -46,17 +47,15 @@ import java.util.List; @Environment(EnvType.CLIENT) public class QueuedTooltip implements Tooltip { private Point location; - private List<Tooltip.Entry> entries; - private List<TooltipComponent> components; + private List<TooltipEntryImpl> entries; private EntryStack<?> stack = EntryStack.empty(); - private QueuedTooltip(Point location, Collection<Tooltip.Entry> entries) { + private QueuedTooltip(Point location, Collection<? extends Tooltip.Entry> entries) { this.location = location; if (this.location == null) { this.location = PointHelper.ofMouse(); } - this.entries = Lists.newArrayList(entries); - this.components = Lists.newArrayList(); + this.entries = (List<TooltipEntryImpl>) Lists.newArrayList(entries); } public static QueuedTooltip impl(Point location, Collection<Tooltip.Entry> text) { @@ -75,12 +74,12 @@ public class QueuedTooltip implements Tooltip { @Override public List<Entry> entries() { - return entries; + return (List<Entry>) (List<? extends Entry>) entries; } @Override public List<TooltipComponent> components() { - return components; + return CollectionUtils.filterAndMap(entries, TooltipEntryImpl::isTooltipComponent, TooltipEntryImpl::getAsTooltipComponent); } @Override @@ -97,7 +96,7 @@ public class QueuedTooltip implements Tooltip { @Override public Tooltip add(TooltipComponent component) { - components.add(component); + entries.add(new TooltipEntryImpl(component)); return this; } @@ -107,6 +106,13 @@ public class QueuedTooltip implements Tooltip { } @Override + public Tooltip copy() { + QueuedTooltip tooltip = new QueuedTooltip(location.clone(), entries); + tooltip.withContextStack(getContextStack()); + return tooltip; + } + + @Override public EntryStack<?> getContextStack() { return stack; } @@ -128,8 +134,25 @@ public class QueuedTooltip implements Tooltip { return obj instanceof Component; } + public boolean isTooltipComponent() { + return obj instanceof TooltipComponent; + } + + public boolean isClientComponent() { + return obj instanceof ClientTooltipComponent; + } + + @Override + public TooltipComponent getAsTooltipComponent() { + return (TooltipComponent) obj; + } + @Override public ClientTooltipComponent getAsComponent() { + if (isTooltipComponent()) { + return ClientTooltipComponent.create((TooltipComponent) obj); + } + return (ClientTooltipComponent) obj; } } diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java index 41c2bda04..f5efc2e4e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java +++ b/runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java @@ -295,17 +295,6 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySer Minecraft.getInstance().getItemRenderer().render(value, ItemTransforms.TransformType.GUI, false, matrices, immediate, ITEM_LIGHT, OverlayTexture.NO_OVERLAY, model); matrices.popPose(); - - /*ItemStack value = entry.getValue(); - matrices.pushPose(); - matrices.last().pose().load(RenderSystem.getModelViewStack().last().pose()); - matrices.scale(bounds.getWidth(), (bounds.getWidth() + bounds.getHeight()) / -2f, 1.0F); - RenderSystem.modelViewMatrix = matrices.last().pose(); - PoseStack stack = new PoseStack(); - stack.translate(bounds.getCenterX() / (double) bounds.getWidth(),bounds.getCenterY() * -2.0 / (bounds.getWidth() + bounds.getHeight()),100.0F + entry.getZ()); - Minecraft.getInstance().getItemRenderer().render(value, ItemTransforms.TransformType.GUI, false, stack, immediate, - 0xf000f0, OverlayTexture.NO_OVERLAY, getModelFromStack(value)); - matrices.popPose();*/ } } |
