From 6cd4b7c433016a63989f6dbc5fd3a9cdd02ce129 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Thu, 14 Jan 2021 08:36:04 -0500 Subject: [PATCH] Improve rotation performance for worlds using jigsaw --- .../volmit/iris/scaffold/jigsaw/PlannedStructure.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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()));