diff --git a/src/main/java/carpet/script/utils/ShapesRenderer.java b/src/main/java/carpet/script/utils/ShapesRenderer.java index 2259f5ff..a9da47b5 100644 --- a/src/main/java/carpet/script/utils/ShapesRenderer.java +++ b/src/main/java/carpet/script/utils/ShapesRenderer.java @@ -148,7 +148,7 @@ public class ShapesRenderer RenderedShape existing = shapes.computeIfAbsent(dim, d -> new Long2ObjectOpenHashMap<>()).get(key); if (existing != null) { // promoting previous shape - existing.expiryTick = rshape.expiryTick; + existing.promoteWith(rshape); } else { @@ -201,6 +201,11 @@ public class ShapesRenderer { return false; } + + public void promoteWith(RenderedShape rshape) + { + expiryTick = rshape.expiryTick; + } } public static class RenderedText extends RenderedShape @@ -290,6 +295,20 @@ public class ShapesRenderer { return true; } + + @Override + public void promoteWith(RenderedShape rshape) + { + super.promoteWith(rshape); + try + { + this.shape.value = ((ShapeDispatcher.Text) rshape.shape).value; + } + catch (ClassCastException ignored) + { + CarpetSettings.LOG.error("shape "+rshape.shape.getClass()+" cannot cast to a Label"); + } + } } public static class RenderedBox extends RenderedShape