diff --git a/src/main/java/com/volmit/iris/object/IrisJigsawStructure.java b/src/main/java/com/volmit/iris/object/IrisJigsawStructure.java index 6d6998c78..6138804a6 100644 --- a/src/main/java/com/volmit/iris/object/IrisJigsawStructure.java +++ b/src/main/java/com/volmit/iris/object/IrisJigsawStructure.java @@ -1,5 +1,6 @@ package com.volmit.iris.object; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.cache.AtomicCache; import com.volmit.iris.util.*; import lombok.AllArgsConstructor; @@ -34,12 +35,18 @@ public class IrisJigsawStructure extends IrisRegistrant @Desc("If set to true, iris will look for any pieces with only one connector in valid pools for edge connectors and attach them to 'terminate' the paths/piece connectors. Essentially it caps off ends. For example in a village, Iris would add houses to the ends of roads where possible. For terminators to be selected, they can only have one connector or they wont be chosen.") private boolean terminate = true; - private AtomicCache maxDimension = new AtomicCache<>(); + private transient AtomicCache maxDimension = new AtomicCache<>(); private void loadPool(String p, KList pools, KList pieces) { IrisJigsawPool pool = getLoader().getJigsawPoolLoader().load(p); + if(pool == null) + { + Iris.warn("Can't find jigsaw pool: " + p); + return; + } + for(String i : pool.getPieces()) { if(pieces.addIfMissing(i)) @@ -52,13 +59,20 @@ public class IrisJigsawStructure extends IrisRegistrant private void loadPiece(String p, KList pools, KList pieces) { IrisJigsawPiece piece = getLoader().getJigsawPieceLoader().load(p); + + if(piece == null) + { + Iris.warn("Can't find jigsaw piece: " + p); + return; + } + for(IrisJigsawPieceConnector i : piece.getConnectors()) { for(String j : i.getPools()) { if(pools.addIfMissing(j)) { - loadPool(p, pools, pieces); + loadPool(j, pools, pieces); } } }