mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-27 02:59:06 +00:00
Auto stash before revert of "Test"
This commit is contained in:
@@ -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<Vector> 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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -795,7 +795,6 @@ public class Mantle {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public <T> void set(IrisPosition pos, T data)
|
||||
{
|
||||
set(pos.getX(), pos.getY(), pos.getZ(), data);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user