aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryWidget.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/QueuedTooltip.java39
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java11
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();*/
}
}