From 57b089ac89e78a1daa8589f4c1ac068f46cefd45 Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Wed, 10 Mar 2021 13:04:34 +0100 Subject: [PATCH] Add entityCount in jigsaw, add chance in object replace --- .../java/com/volmit/iris/object/IrisDimension.java | 2 +- .../iris/object/IrisJigsawPieceConnector.java | 6 ++++++ .../java/com/volmit/iris/object/IrisObject.java | 9 +++++---- .../com/volmit/iris/object/IrisObjectReplace.java | 13 +++++++------ .../iris/scaffold/jigsaw/PlannedStructure.java | 4 +++- 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/volmit/iris/object/IrisDimension.java b/src/main/java/com/volmit/iris/object/IrisDimension.java index 5d37f747f..3dd81807d 100644 --- a/src/main/java/com/volmit/iris/object/IrisDimension.java +++ b/src/main/java/com/volmit/iris/object/IrisDimension.java @@ -166,7 +166,7 @@ public class IrisDimension extends IrisRegistrant @DontObfuscate @Desc("Generate ravines or not") - private boolean ravines = true; + private boolean ravines = false; @MinNumber(1) @DontObfuscate diff --git a/src/main/java/com/volmit/iris/object/IrisJigsawPieceConnector.java b/src/main/java/com/volmit/iris/object/IrisJigsawPieceConnector.java index 1020e2ca4..b6823cfcb 100644 --- a/src/main/java/com/volmit/iris/object/IrisJigsawPieceConnector.java +++ b/src/main/java/com/volmit/iris/object/IrisJigsawPieceConnector.java @@ -45,6 +45,12 @@ public class IrisJigsawPieceConnector @Desc("Pick an entity to spawn on this connector") private String spawnEntity; + @DontObfuscate + @MaxNumber(50) + @MinNumber(1) + @Desc("The amount of entities to spawn (must be a whole number)") + private int entityCount = 1; + @DontObfuscate @Desc("The relative position this connector is located at for connecting to other pieces") @Required diff --git a/src/main/java/com/volmit/iris/object/IrisObject.java b/src/main/java/com/volmit/iris/object/IrisObject.java index 6b307908f..989a6e8e3 100644 --- a/src/main/java/com/volmit/iris/object/IrisObject.java +++ b/src/main/java/com/volmit/iris/object/IrisObject.java @@ -680,11 +680,12 @@ public class IrisObject extends IrisRegistrant for(IrisObjectReplace j : config.getEdit()) { - for(BlockData k : j.getFind(rdata)) - { - if(j.isExact() ? k.matches(data) : k.getMaterial().equals(data.getMaterial())) + if (rng.chance(j.getChance())) { + for(BlockData k : j.getFind(rdata)) { - data = j.getReplace(rng, i.getX() + x, i.getY() + y, i.getZ() + z, rdata).clone(); + if (j.isExact() ? k.matches(data) : k.getMaterial().equals(data.getMaterial())) { + data = j.getReplace(rng, i.getX() + x, i.getY() + y, i.getZ() + z, rdata).clone(); + } } } } diff --git a/src/main/java/com/volmit/iris/object/IrisObjectReplace.java b/src/main/java/com/volmit/iris/object/IrisObjectReplace.java index 5bffed207..259c97cb3 100644 --- a/src/main/java/com/volmit/iris/object/IrisObjectReplace.java +++ b/src/main/java/com/volmit/iris/object/IrisObjectReplace.java @@ -3,12 +3,7 @@ package com.volmit.iris.object; import com.volmit.iris.scaffold.cache.AtomicCache; import com.volmit.iris.manager.IrisDataManager; import com.volmit.iris.generator.noise.CNG; -import com.volmit.iris.util.ArrayType; -import com.volmit.iris.util.Desc; -import com.volmit.iris.util.DontObfuscate; -import com.volmit.iris.util.KList; -import com.volmit.iris.util.RNG; -import com.volmit.iris.util.Required; +import com.volmit.iris.util.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -38,6 +33,12 @@ public class IrisObjectReplace @DontObfuscate private boolean exact = false; + @MinNumber(0) + @MaxNumber(1) + @Desc("Modifies the chance the block is replaced") + @DontObfuscate + private float chance = 1; + private final transient AtomicCache replaceGen = new AtomicCache<>(); private final transient AtomicCache> findData = new AtomicCache<>(); private final transient AtomicCache> replaceData = new AtomicCache<>(); 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 d01ac2f5d..b6c82d901 100644 --- a/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java +++ b/src/main/java/com/volmit/iris/scaffold/jigsaw/PlannedStructure.java @@ -135,7 +135,9 @@ public class PlannedStructure { if (j.getSpawnEntity().equals("villager")){ Iris.msg("Spawning villager on jigsaw @" + p.getX() + "/" + p.getY() + "/" + p.getZ()); } - e.getParallaxAccess().setEntity(p.getX(), p.getY(), p.getZ(), j.getSpawnEntity()); + for (int k = 0; k < j.getEntityCount(); k++) { + e.getParallaxAccess().setEntity(p.getX(), p.getY(), p.getZ(), j.getSpawnEntity()); + } } }