From 71258318db54fb4333790b60d2cf6e3a5ca19685 Mon Sep 17 00:00:00 2001 From: D4rkr34lm Date: Sun, 24 May 2026 23:39:50 +0200 Subject: [PATCH] Replace trace rendering by fallingblockentity with display entity for better accuracy --- .../tracer/rendering/TraceEntity.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/TraceEntity.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/TraceEntity.java index c00d976d..ff3cbcea 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/TraceEntity.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/TraceEntity.java @@ -24,13 +24,16 @@ import de.steamwar.bausystem.configplayer.Config; import de.steamwar.bausystem.features.tracer.TNTPoint; import de.steamwar.bausystem.features.tracer.Trace; import de.steamwar.bausystem.features.tracer.TraceManager; +import de.steamwar.entity.RBlockDisplay; import de.steamwar.entity.REntityServer; -import de.steamwar.entity.RFallingBlockEntity; import lombok.Getter; import net.md_5.bungee.api.chat.ClickEvent; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; +import org.bukkit.util.Transformation; +import org.joml.Quaternionf; +import org.joml.Vector3f; import yapion.hierarchy.types.YAPIONValue; import java.util.List; @@ -41,7 +44,16 @@ import static de.steamwar.bausystem.features.util.TNTClickListener.TNT_CLICK_DET /** * Wrapper for the rendering of a record bundle */ -public class TraceEntity extends RFallingBlockEntity { +public class TraceEntity extends RBlockDisplay { + + private static final float TNT_VISUAL_SCALE = 0.98F; + private static final float TNT_VISUAL_OFFSET = -TNT_VISUAL_SCALE / 2.0F; + private static final Transformation TNT_VISUAL_TRANSFORM = new Transformation( + new Vector3f(TNT_VISUAL_OFFSET, 0.0F, TNT_VISUAL_OFFSET), + new Quaternionf(0, 0, 0, 1), + new Vector3f(TNT_VISUAL_SCALE, TNT_VISUAL_SCALE, TNT_VISUAL_SCALE), + new Quaternionf(0, 0, 0, 1) + ); /** * The records represented by this REntity @@ -57,11 +69,13 @@ public class TraceEntity extends RFallingBlockEntity { private final Trace trace; public TraceEntity(REntityServer server, Location location, boolean isExplosion, List records, Trace trace) { - super(server, location, isExplosion ? Material.RED_STAINED_GLASS : Material.TNT); + super(server, location); + Material material = isExplosion ? Material.RED_STAINED_GLASS : Material.TNT; this.records = records; this.trace = trace; uniqueTntIdsString = records.stream().map(TNTPoint::getTntId).distinct().map(Object::toString).collect(Collectors.joining(" ")); - setNoGravity(true); + setTransform(TNT_VISUAL_TRANSFORM); + setBlock(material.createBlockData()); } /**