From ad25d59d47d2f802fa3731be905b272c798fcdc0 Mon Sep 17 00:00:00 2001 From: Algent Date: Mon, 3 Aug 2026 17:20:41 +0200 Subject: [PATCH] Preserve relocation structure deduplication --- src/main/scala/mrtjp/relocation/movement.scala | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/scala/mrtjp/relocation/movement.scala b/src/main/scala/mrtjp/relocation/movement.scala index a72a458..4b1a36a 100644 --- a/src/main/scala/mrtjp/relocation/movement.scala +++ b/src/main/scala/mrtjp/relocation/movement.scala @@ -280,7 +280,12 @@ class WorldStructs { false } - def addStruct(b: BlockStruct) = synchronized { + def addStruct(b: BlockStruct): Unit = synchronized { + var i = 0 + while (i < numStructs) { + if (structsArr(i).id == b.id) return + i += 1 + } if (numStructs == structsArr.length) { val ns = new Array[BlockStruct](structsArr.length * 2) System.arraycopy(structsArr, 0, ns, 0, numStructs) @@ -469,6 +474,8 @@ class BlockStruct { case _ => false } + override def hashCode() = id + def writeDesc(out: MCDataOutput) { out.writeFloat(progress.toFloat) out.writeFloat(speed.toFloat)