mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-06-18 14:50:57 +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.MinNumber;
|
||||||
import com.volmit.iris.engine.object.annotations.RegistryListResource;
|
import com.volmit.iris.engine.object.annotations.RegistryListResource;
|
||||||
import com.volmit.iris.engine.object.annotations.Required;
|
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.engine.object.common.IRare;
|
||||||
import com.volmit.iris.util.collection.KList;
|
import com.volmit.iris.util.collection.KList;
|
||||||
import com.volmit.iris.util.data.B;
|
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.math.RNG;
|
||||||
import com.volmit.iris.util.noise.Worm3;
|
import com.volmit.iris.util.noise.Worm3;
|
||||||
import com.volmit.iris.util.noise.WormIterator3;
|
import com.volmit.iris.util.noise.WormIterator3;
|
||||||
|
import com.volmit.iris.util.plugin.VolmitSender;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
|
import org.bukkit.util.BlockVector;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
@@ -56,6 +59,7 @@ public class IrisCavePlacer implements IRare {
|
|||||||
|
|
||||||
@MinNumber(1)
|
@MinNumber(1)
|
||||||
@Required
|
@Required
|
||||||
|
@Desc("The cave to place")
|
||||||
@RegistryListResource(IrisCave.class)
|
@RegistryListResource(IrisCave.class)
|
||||||
private String cave;
|
private String cave;
|
||||||
|
|
||||||
@@ -85,14 +89,19 @@ public class IrisCavePlacer implements IRare {
|
|||||||
|
|
||||||
WormIterator3 w = cave.getWorm().iterate3D(rng, data, x, y, z);
|
WormIterator3 w = cave.getWorm().iterate3D(rng, data, x, y, z);
|
||||||
KList<Vector> points = new KList<>();
|
KList<Vector> points = new KList<>();
|
||||||
|
int itr = 0;
|
||||||
while(w.hasNext())
|
while(w.hasNext())
|
||||||
{
|
{
|
||||||
|
itr++;
|
||||||
Worm3 wx = w.next();
|
Worm3 wx = w.next();
|
||||||
points.add(new Vector(wx.getX().getPosition(), wx.getY().getPosition(), wx.getZ().getPosition()));
|
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
|
// TODO decorate somehow
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public class IrisWorm {
|
|||||||
|
|
||||||
public NoiseProvider getAngleProvider(RNG rng, IrisData data)
|
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)
|
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)
|
public <T> void set(IrisPosition pos, T data)
|
||||||
{
|
{
|
||||||
set(pos.getX(), pos.getY(), pos.getZ(), data);
|
set(pos.getX(), pos.getY(), pos.getZ(), data);
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package com.volmit.iris.util.noise;
|
package com.volmit.iris.util.noise;
|
||||||
|
|
||||||
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.util.function.NoiseProvider;
|
import com.volmit.iris.util.function.NoiseProvider;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -35,9 +36,15 @@ public class WormIterator3 {
|
|||||||
|
|
||||||
public boolean hasNext()
|
public boolean hasNext()
|
||||||
{
|
{
|
||||||
|
if(worm == null)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
double dist = maxDistance - (Math.max(Math.max(Math.abs(worm.getX().getVelocity()),
|
double dist = maxDistance - (Math.max(Math.max(Math.abs(worm.getX().getVelocity()),
|
||||||
Math.abs(worm.getZ().getVelocity())),
|
Math.abs(worm.getZ().getVelocity())),
|
||||||
Math.abs(worm.getY().getVelocity())) + 1);
|
Math.abs(worm.getY().getVelocity())) + 1);
|
||||||
|
|
||||||
return maxIterations > 0 &&
|
return maxIterations > 0 &&
|
||||||
((x * x) - (worm.getX().getPosition() * worm.getX().getPosition()))
|
((x * x) - (worm.getX().getPosition() * worm.getX().getPosition()))
|
||||||
+ ((y * y) - (worm.getY().getPosition() * worm.getY().getPosition()))
|
+ ((y * y) - (worm.getY().getPosition() * worm.getY().getPosition()))
|
||||||
@@ -46,15 +53,16 @@ public class WormIterator3 {
|
|||||||
|
|
||||||
public Worm3 next()
|
public Worm3 next()
|
||||||
{
|
{
|
||||||
|
maxIterations--;
|
||||||
if(worm == null)
|
if(worm == null)
|
||||||
{
|
{
|
||||||
worm = new Worm3(x, y, z, 0, 0, 0);
|
worm = new Worm3(x, y, z, 0, 0, 0);
|
||||||
return worm;
|
return worm;
|
||||||
}
|
}
|
||||||
|
|
||||||
worm.getX().setVelocity(noise.noise(worm.getX().getPosition(), 0));
|
worm.getX().setVelocity(worm.getX().getVelocity() + noise.noise(worm.getX().getPosition() + 10000, 0));
|
||||||
worm.getY().setVelocity(noise.noise(worm.getY().getPosition(), 0));
|
worm.getY().setVelocity(worm.getY().getVelocity() + noise.noise(worm.getY().getPosition() + 1000, 0));
|
||||||
worm.getZ().setVelocity(noise.noise(worm.getZ().getPosition(), 0));
|
worm.getZ().setVelocity(worm.getZ().getVelocity() + noise.noise(worm.getZ().getPosition() - 10000, 0));
|
||||||
worm.step();
|
worm.step();
|
||||||
|
|
||||||
return worm;
|
return worm;
|
||||||
|
|||||||
Reference in New Issue
Block a user