From 100e45051408cfa290d477aca343462a9a748acc Mon Sep 17 00:00:00 2001 From: CrazyDev22 Date: Tue, 23 Apr 2024 13:48:47 +0200 Subject: [PATCH 1/3] fix jigsaw piece collision --- .../java/com/volmit/iris/engine/jigsaw/PlannedPiece.java | 3 +++ .../java/com/volmit/iris/engine/jigsaw/PlannedStructure.java | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java b/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java index d2b0d43ea..08088ac38 100644 --- a/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java +++ b/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java @@ -30,6 +30,7 @@ import com.volmit.iris.util.math.AxisAlignedBB; import com.volmit.iris.util.math.BlockPosition; import com.volmit.iris.util.math.RNG; import lombok.Data; +import lombok.EqualsAndHashCode; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; @@ -50,10 +51,12 @@ public class PlannedPiece { private IrisObject ogObject; private IrisJigsawPiece piece; private IrisObjectRotation rotation; + @EqualsAndHashCode.Exclude private IrisData data; private KList connected; private boolean dead = false; private AxisAlignedBB box; + @EqualsAndHashCode.Exclude private PlannedStructure structure; public PlannedPiece(PlannedStructure structure, IrisPosition position, IrisJigsawPiece piece) { diff --git a/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java b/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java index 36cdcaa00..dc2bf6b68 100644 --- a/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java +++ b/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java @@ -31,6 +31,7 @@ import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.matter.slices.container.JigsawPieceContainer; import com.volmit.iris.util.matter.slices.container.JigsawStructuresContainer; import lombok.Data; +import lombok.EqualsAndHashCode; import org.bukkit.Axis; import org.bukkit.World; @@ -319,6 +320,10 @@ public class PlannedStructure { public boolean collidesWith(PlannedPiece piece, PlannedPiece ignore) { for (PlannedPiece i : pieces) { + if (i.equals(ignore)) { + continue; + } + if (i.collidesWith(piece)) { return true; } From c1d5ba55cd4ac65bb523dfe42204eefcab9a418c Mon Sep 17 00:00:00 2001 From: CrazyDev22 Date: Tue, 23 Apr 2024 13:49:10 +0200 Subject: [PATCH 2/3] fix null pointer --- .../main/java/com/volmit/iris/engine/object/IrisObject.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/java/com/volmit/iris/engine/object/IrisObject.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObject.java index c4306c115..665b60c77 100644 --- a/core/src/main/java/com/volmit/iris/engine/object/IrisObject.java +++ b/core/src/main/java/com/volmit/iris/engine/object/IrisObject.java @@ -279,6 +279,8 @@ public class IrisObject extends IrisRegistrant { public synchronized IrisObject copy() { IrisObject o = new IrisObject(w, h, d); o.setLoadKey(o.getLoadKey()); + o.setLoader(getLoader()); + o.setLoadFile(getLoadFile()); o.setCenter(getCenter().clone()); for (BlockVector i : getBlocks().keySet()) { @@ -898,6 +900,7 @@ public class IrisObject extends IrisRegistrant { } } } catch (Throwable e) { + e.printStackTrace(); Iris.reportError(e); } readLock.unlock(); From 6470b2f4a9875c9bf1ba65f434054fd3d439a6a6 Mon Sep 17 00:00:00 2001 From: CrazyDev22 Date: Tue, 23 Apr 2024 13:49:30 +0200 Subject: [PATCH 3/3] fix another null pointer --- .../java/com/volmit/iris/core/commands/CommandJigsaw.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java b/core/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java index a59aa2a69..edab02cdb 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java +++ b/core/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java @@ -34,6 +34,7 @@ import com.volmit.iris.util.decree.specialhandlers.ObjectHandler; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.RNG; +import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.scheduling.PrecisionStopwatch; import java.io.File; @@ -56,8 +57,9 @@ public class CommandJigsaw implements DecreeExecutor { ) { PrecisionStopwatch p = PrecisionStopwatch.start(); PlannedStructure ps = new PlannedStructure(structure, new IrisPosition(player().getLocation()), new RNG()); - sender().sendMessage(C.GREEN + "Generated " + ps.getPieces().size() + " pieces in " + Form.duration(p.getMilliseconds(), 2)); - ps.place(world(), failed -> sender().sendMessage(failed == 0 ? C.GREEN + "Placed the structure!" : C.RED + "Failed to place " + failed + " pieces!")); + VolmitSender sender = sender(); + sender.sendMessage(C.GREEN + "Generated " + ps.getPieces().size() + " pieces in " + Form.duration(p.getMilliseconds(), 2)); + ps.place(world(), failed -> sender.sendMessage(failed == 0 ? C.GREEN + "Placed the structure!" : C.RED + "Failed to place " + failed + " pieces!")); } @Decree(description = "Create a jigsaw piece")