diff --git a/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java b/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java index f8a778dc2..4302407ae 100644 --- a/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java +++ b/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java @@ -16,7 +16,7 @@ public class PlannedStructure { private IrisJigsawStructure structure; private IrisPosition position; private IrisDataManager data; - private KMap objectRotationCache; + private static KMap objectRotationCache; private RNG rng; private boolean verbose; private boolean terminating; @@ -368,12 +368,17 @@ public class PlannedStructure { return false; } - public IrisObject rotated(IrisJigsawPiece piece, IrisObjectRotation rotation) { + public synchronized IrisObject rotated(IrisJigsawPiece piece, IrisObjectRotation rotation) { String key = piece.getObject() + "-" + rotation.hashCode(); if(objectRotationCache.containsKey(key)) { - return objectRotationCache.get(key); + IrisObject o = objectRotationCache.get(key); + + if(o != null) + { + return o; + } } IrisObject o = rotation.rotateCopy(data.getObjectLoader().load(piece.getObject()));