From fc94fe30d0342a2d3871c4fde81aaa9f2ce51296 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Wed, 8 Sep 2021 08:40:55 -0400 Subject: [PATCH] Fixes for pieces --- .../iris/engine/jigsaw/PlannedStructure.java | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java index c39146439..0bc6cd63f 100644 --- a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java +++ b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java @@ -21,6 +21,7 @@ package com.volmit.iris.engine.jigsaw; import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; import com.volmit.iris.Iris; import com.volmit.iris.core.loader.IrisData; +import com.volmit.iris.engine.data.cache.Cache; import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.interpolation.InterpolationMethod; @@ -101,6 +102,7 @@ public class PlannedStructure { int sz = (v.getD() / 2); int xx = i.getPosition().getX() + sx; int zz = i.getPosition().getZ() + sz; + RNG rngf = new RNG(Cache.key(xx, zz)); int offset = i.getPosition().getY() - startHeight; int height = 0; @@ -124,25 +126,7 @@ public class PlannedStructure { int h = vo.place(xx, height, zz, placer, options, rng, (b) -> e.set(b.getX(), b.getY(), b.getZ(), v.getLoadKey() + "@" + id), null, getData()); - for (IrisJigsawPieceConnector j : i.getAvailableConnectors()) { - if (j.getSpawnEntity() != null)// && h != -1) - { - IrisPosition p; - if (j.getEntityPosition() == null) { - p = i.getWorldPosition(j).add(new IrisPosition(j.getDirection().toVector().multiply(2))); - } else { - p = i.getWorldPosition(j).add(j.getEntityPosition()); - } - - if (options.getMode().equals(ObjectPlaceMode.PAINT) || options.isVacuum()) { - p.setY(placer.getHighest(xx, zz, getData()) + offset + (v.getH() / 2)); - } else { - p.setY(height); - } - } - } - - if (options.usesFeatures()) { + if (options.isVacuum()) { double a = Math.max(v.getW(), v.getD()); IrisFeature f = new IrisFeature(); f.setConvergeToHeight(h - (v.getH() >> 1) - 1); @@ -152,6 +136,17 @@ public class PlannedStructure { f.setStrength(1D); e.set(xx, 0, zz, new IrisFeaturePositional(xx, zz, f)); } + + if(options.getAddFeatures().isNotEmpty()) + { + for (IrisFeaturePotential j : options.getAddFeatures()) + { + if(rngf.nextInt(j.getRarity()) == 0) + { + e.set(xx, 0, zz, new IrisFeaturePositional(xx, zz, j.getZone())); + } + } + } } public void place(World world) {