9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-28 03:29:06 +00:00

Carving slice

This commit is contained in:
cyberpwn
2021-08-27 10:24:13 -04:00
parent a09829ed4b
commit 2fa5c7eca4
6 changed files with 74 additions and 17 deletions

View File

@@ -35,6 +35,8 @@ import com.volmit.iris.util.hunk.Hunk;
import com.volmit.iris.util.mantle.Mantle;
import com.volmit.iris.util.mantle.MantleChunk;
import com.volmit.iris.util.mantle.MantleFlag;
import com.volmit.iris.util.matter.slices.CavernMatter;
import com.volmit.iris.util.matter.slices.UpdateMatter;
import com.volmit.iris.util.parallel.BurstExecutor;
import com.volmit.iris.util.parallel.MultiBurst;
import org.bukkit.Chunk;
@@ -226,7 +228,12 @@ public interface EngineMantle extends IObjectPlacer {
@BlockCoordinates
default void updateBlock(int x, int y, int z) {
getMantle().set(x, y, z, true);
getMantle().set(x, y, z, UpdateMatter.ON);
}
@BlockCoordinates
default void cavernBlock(int x, int y, int z) {
getMantle().set(x, y, z, CavernMatter.ON);
}
@ChunkCoordinates

View File

@@ -33,6 +33,7 @@ import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.data.B;
import com.volmit.iris.util.json.JSONObject;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.matter.slices.CavernMatter;
import com.volmit.iris.util.plugin.VolmitSender;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -56,9 +57,6 @@ public class IrisCave extends IrisRegistrant {
@Desc("Define potential forking features")
private IrisCarving fork = new IrisCarving();
@Desc("Change the air block to fill worms with as caves")
private IrisBlockData fill = new IrisBlockData("cave_air");
@Desc("Limit the worm from ever getting higher or lower than this range")
private IrisRange verticalRange = new IrisRange(3, 255);
@@ -77,7 +75,7 @@ public class IrisCave extends IrisRegistrant {
writer.setLine(getWorm().generate(rng, engine.getData(), writer, verticalRange, x, y, z,
(at) -> fork.doCarving(writer, rng, engine, at.getX(), at.getY(), at.getZ())),
getWorm().getGirth().get(rng, x, z, engine.getData()), true,
fill.getBlockData(engine.getData()));
CavernMatter.ON);
}
@Override

View File

@@ -29,6 +29,7 @@ import com.volmit.iris.engine.object.noise.IrisGeneratorStyle;
import com.volmit.iris.engine.object.noise.IrisStyledRange;
import com.volmit.iris.engine.object.noise.NoiseStyle;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.matter.slices.CavernMatter;
import lombok.Data;
@Desc("Represents an procedural eliptical shape")
@@ -40,9 +41,6 @@ public class IrisElipsoid implements IRare
@MinNumber(1)
private int rarity = 1;
@Desc("Change the air block to fill elipsoids with as caves")
private IrisBlockData fill = new IrisBlockData("cave_air");
@Desc("The styled random radius for x")
private IrisStyledRange xRadius = new IrisStyledRange(1, 5, new IrisGeneratorStyle(NoiseStyle.STATIC));
@@ -57,7 +55,7 @@ public class IrisElipsoid implements IRare
writer.setElipsoid(x, y, z,
xRadius.get(rng, z, y, engine.getData()),
yRadius.get(rng, x, z, engine.getData()),
zRadius.get(rng, y, x, engine.getData()), true, fill.getBlockData(engine.getData()));
zRadius.get(rng, y, x, engine.getData()), true, CavernMatter.ON);
}
public double maxSize() {

View File

@@ -29,6 +29,7 @@ import com.volmit.iris.engine.object.noise.IrisGeneratorStyle;
import com.volmit.iris.engine.object.noise.IrisStyledRange;
import com.volmit.iris.engine.object.noise.NoiseStyle;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.matter.slices.CavernMatter;
import lombok.Data;
@Desc("Represents an procedural eliptical shape")
@@ -40,15 +41,12 @@ public class IrisPyramid implements IRare
@MinNumber(1)
private int rarity = 1;
@Desc("Change the air block to fill elipsoids with as caves")
private IrisBlockData fill = new IrisBlockData("cave_air");
@Desc("The styled random radius for x")
private IrisStyledRange baseWidth = new IrisStyledRange(1, 5, new IrisGeneratorStyle(NoiseStyle.STATIC));
public void generate(RNG rng, Engine engine, MantleWriter writer, int x, int y, int z)
{
writer.setPyramid(x, y, z, fill.getBlockData(engine.getData()),
writer.setPyramid(x, y, z, CavernMatter.ON,
(int)baseWidth.get(rng, z, y, engine.getData()), true);
}

View File

@@ -29,6 +29,7 @@ import com.volmit.iris.engine.object.noise.IrisGeneratorStyle;
import com.volmit.iris.engine.object.noise.IrisStyledRange;
import com.volmit.iris.engine.object.noise.NoiseStyle;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.matter.slices.CavernMatter;
import lombok.Data;
@Desc("Represents an procedural eliptical shape")
@@ -40,15 +41,12 @@ public class IrisSphere implements IRare
@MinNumber(1)
private int rarity = 1;
@Desc("Change the air block to fill elipsoids with as caves")
private IrisBlockData fill = new IrisBlockData("cave_air");
@Desc("The styled random radius for x")
private IrisStyledRange radius = new IrisStyledRange(1, 5, new IrisGeneratorStyle(NoiseStyle.STATIC));
public void generate(RNG rng, Engine engine, MantleWriter writer, int x, int y, int z)
{
writer.setSphere(x, y, z, radius.get(rng, z, y, engine.getData()),true, fill.getBlockData(engine.getData()));
writer.setSphere(x, y, z, radius.get(rng, z, y, engine.getData()),true, CavernMatter.ON);
}
public double maxSize() {