From 42d3b4c3268fd6290452c10e9d6334c9387e0ba1 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Fri, 20 Aug 2021 01:34:24 -0400 Subject: [PATCH] Auto stash before revert of "Test" --- .../iris/engine/object/cave/IrisCavePlacer.java | 13 +++++++++++-- .../volmit/iris/engine/object/noise/IrisWorm.java | 2 +- .../java/com/volmit/iris/util/mantle/Mantle.java | 1 - .../com/volmit/iris/util/noise/WormIterator3.java | 14 +++++++++++--- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/object/cave/IrisCavePlacer.java b/src/main/java/com/volmit/iris/engine/object/cave/IrisCavePlacer.java index a3142e307..3f1ac227d 100644 --- a/src/main/java/com/volmit/iris/engine/object/cave/IrisCavePlacer.java +++ b/src/main/java/com/volmit/iris/engine/object/cave/IrisCavePlacer.java @@ -25,6 +25,7 @@ import com.volmit.iris.engine.object.annotations.Desc; import com.volmit.iris.engine.object.annotations.MinNumber; import com.volmit.iris.engine.object.annotations.RegistryListResource; import com.volmit.iris.engine.object.annotations.Required; +import com.volmit.iris.engine.object.basic.IrisPosition; import com.volmit.iris.engine.object.common.IRare; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.data.B; @@ -32,11 +33,13 @@ import com.volmit.iris.util.mantle.Mantle; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.noise.Worm3; import com.volmit.iris.util.noise.WormIterator3; +import com.volmit.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import org.bukkit.block.data.BlockData; +import org.bukkit.util.BlockVector; import org.bukkit.util.Vector; import java.util.concurrent.atomic.AtomicBoolean; @@ -56,6 +59,7 @@ public class IrisCavePlacer implements IRare { @MinNumber(1) @Required + @Desc("The cave to place") @RegistryListResource(IrisCave.class) private String cave; @@ -85,14 +89,19 @@ public class IrisCavePlacer implements IRare { WormIterator3 w = cave.getWorm().iterate3D(rng, data, x, y, z); KList points = new KList<>(); - + int itr = 0; while(w.hasNext()) { + itr++; Worm3 wx = w.next(); points.add(new Vector(wx.getX().getPosition(), wx.getY().getPosition(), wx.getZ().getPosition())); } - mantle.setSpline(points, cave.getWorm().getGirth().get(rng, x, z, data), true, CAVE_AIR); + + Iris.info(x + " " + y + " " + z + " /." + " POS: " + points.convert((i) -> "[" + i.getBlockX() + "," + i.getBlockY() + "," + i.getBlockZ() + "]").toString(", ")); + + mantle.setLine(points.convert(IrisPosition::new), cave.getWorm().getGirth().get(rng, x, z, data), true, CAVE_AIR); + // TODO decorate somehow } diff --git a/src/main/java/com/volmit/iris/engine/object/noise/IrisWorm.java b/src/main/java/com/volmit/iris/engine/object/noise/IrisWorm.java index 4ea19c752..97b862308 100644 --- a/src/main/java/com/volmit/iris/engine/object/noise/IrisWorm.java +++ b/src/main/java/com/volmit/iris/engine/object/noise/IrisWorm.java @@ -66,7 +66,7 @@ public class IrisWorm { public NoiseProvider getAngleProvider(RNG rng, IrisData data) { - return angleProviderCache.aquire(() -> (xx, zz) -> angleStyle.create(rng, data).noise(xx, zz) * segmentDistance.get(rng, xx, zz, data)); + return angleProviderCache.aquire(() -> (xx, zz) -> angleStyle.create(rng, data).fitDouble(-0.5, 0.5, xx, zz) * segmentDistance.get(rng, xx, zz, data)); } public WormIterator2 iterate2D(RNG rng, IrisData data, int x, int z) diff --git a/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/src/main/java/com/volmit/iris/util/mantle/Mantle.java index 8113ef80b..a5ad56d6b 100644 --- a/src/main/java/com/volmit/iris/util/mantle/Mantle.java +++ b/src/main/java/com/volmit/iris/util/mantle/Mantle.java @@ -795,7 +795,6 @@ public class Mantle { } } - public void set(IrisPosition pos, T data) { set(pos.getX(), pos.getY(), pos.getZ(), data); diff --git a/src/main/java/com/volmit/iris/util/noise/WormIterator3.java b/src/main/java/com/volmit/iris/util/noise/WormIterator3.java index 6f9204d21..dfe2b7e00 100644 --- a/src/main/java/com/volmit/iris/util/noise/WormIterator3.java +++ b/src/main/java/com/volmit/iris/util/noise/WormIterator3.java @@ -18,6 +18,7 @@ package com.volmit.iris.util.noise; +import com.volmit.iris.Iris; import com.volmit.iris.util.function.NoiseProvider; import lombok.Builder; import lombok.Data; @@ -35,9 +36,15 @@ public class WormIterator3 { public boolean hasNext() { + if(worm == null) + { + return true; + } + double dist = maxDistance - (Math.max(Math.max(Math.abs(worm.getX().getVelocity()), Math.abs(worm.getZ().getVelocity())), Math.abs(worm.getY().getVelocity())) + 1); + return maxIterations > 0 && ((x * x) - (worm.getX().getPosition() * worm.getX().getPosition())) + ((y * y) - (worm.getY().getPosition() * worm.getY().getPosition())) @@ -46,15 +53,16 @@ public class WormIterator3 { public Worm3 next() { + maxIterations--; if(worm == null) { worm = new Worm3(x, y, z, 0, 0, 0); return worm; } - worm.getX().setVelocity(noise.noise(worm.getX().getPosition(), 0)); - worm.getY().setVelocity(noise.noise(worm.getY().getPosition(), 0)); - worm.getZ().setVelocity(noise.noise(worm.getZ().getPosition(), 0)); + worm.getX().setVelocity(worm.getX().getVelocity() + noise.noise(worm.getX().getPosition() + 10000, 0)); + worm.getY().setVelocity(worm.getY().getVelocity() + noise.noise(worm.getY().getPosition() + 1000, 0)); + worm.getZ().setVelocity(worm.getZ().getVelocity() + noise.noise(worm.getZ().getPosition() - 10000, 0)); worm.step(); return worm;