This commit is contained in:
Daniel Mills
2021-08-10 07:26:41 -04:00
parent 2ebb9f2763
commit 70b659acbe
53 changed files with 244 additions and 453 deletions

View File

@@ -31,7 +31,6 @@ import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.data.B;
import com.volmit.iris.util.documentation.BlockCoordinates;
import com.volmit.iris.util.documentation.ChunkCoordinates;
import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.hunk.Hunk;
import com.volmit.iris.util.mantle.Mantle;
import com.volmit.iris.util.mantle.MantleFlag;
@@ -46,7 +45,6 @@ import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
// TODO: MOVE PLACER OUT OF MATTER INTO ITS OWN THING
@@ -156,28 +154,23 @@ public interface EngineMantle extends IObjectPlacer {
getMantle().close();
}
default void saveAllNow()
{
default void saveAllNow() {
getMantle().saveAll();
}
default void save()
{
default void save() {
}
default void trim()
{
default void trim() {
getMantle().trim(60000);
}
default MultiBurst burst()
{
default MultiBurst burst() {
return getEngine().burst();
}
default int getRealRadius()
{
default int getRealRadius() {
try {
return (int) Math.ceil(getRadius().get() / 2D);
} catch (InterruptedException e) {
@@ -191,8 +184,7 @@ public interface EngineMantle extends IObjectPlacer {
@ChunkCoordinates
default void generateMatter(int x, int z)
{
default void generateMatter(int x, int z) {
if (!getEngine().getDimension().isUseMantle()) {
return;
}
@@ -217,14 +209,12 @@ public interface EngineMantle extends IObjectPlacer {
burst().burst(post);
}
default void generateMantleComponent(int x, int z, MantleComponent c, Consumer<Runnable> post)
{
default void generateMantleComponent(int x, int z, MantleComponent c, Consumer<Runnable> post) {
getMantle().raiseFlag(x, z, c.getFlag(), () -> c.generateLayer(x, z, post));
}
@ChunkCoordinates
default <T> void insertMatter(int x, int z, Class<T> t, Hunk<T> blocks)
{
default <T> void insertMatter(int x, int z, Class<T> t, Hunk<T> blocks) {
if (!getEngine().getDimension().isUseMantle()) {
return;
}
@@ -233,23 +223,20 @@ public interface EngineMantle extends IObjectPlacer {
}
@BlockCoordinates
default void updateBlock(int x, int y, int z)
{
getMantle().flag(x>>4, z>>4, MantleFlag.UPDATE, true);
getMantle().set(x,y,z,true);
default void updateBlock(int x, int y, int z) {
getMantle().flag(x >> 4, z >> 4, MantleFlag.UPDATE, true);
getMantle().set(x, y, z, true);
}
@ChunkCoordinates
default KList<IrisFeaturePositional> getFeaturesInChunk(Chunk c)
{
default KList<IrisFeaturePositional> getFeaturesInChunk(Chunk c) {
return getFeaturesInChunk(c.getX(), c.getZ());
}
@ChunkCoordinates
default KList<IrisFeaturePositional> getFeaturesInChunk(int x, int z)
{
default KList<IrisFeaturePositional> getFeaturesInChunk(int x, int z) {
KList<IrisFeaturePositional> pos = new KList<>();
getMantle().iterateChunk(x, z, IrisFeaturePositional.class, (a,b,c,f) -> pos.add(f), MantleFlag.FEATURE);
getMantle().iterateChunk(x, z, IrisFeaturePositional.class, (a, b, c, f) -> pos.add(f), MantleFlag.FEATURE);
return pos;
}

View File

@@ -22,7 +22,7 @@ import com.volmit.iris.util.mantle.MantleFlag;
import lombok.Data;
@Data
public abstract class IrisMantleComponent implements MantleComponent{
public abstract class IrisMantleComponent implements MantleComponent {
private final EngineMantle engineMantle;
private final MantleFlag flag;
}

View File

@@ -27,44 +27,35 @@ import com.volmit.iris.util.mantle.MantleFlag;
import com.volmit.iris.util.parallel.BurstExecutor;
import java.util.function.Consumer;
import java.util.function.Supplier;
public interface MantleComponent
{
default int getRadius()
{
public interface MantleComponent {
default int getRadius() {
return getEngineMantle().getRealRadius();
}
default IrisData getData()
{
default IrisData getData() {
return getEngineMantle().getData();
}
default IrisDimension getDimension()
{
default IrisDimension getDimension() {
return getEngineMantle().getEngine().getDimension();
}
default IrisComplex getComplex()
{
default IrisComplex getComplex() {
return getEngineMantle().getComplex();
}
default long seed()
{
default long seed() {
return getEngineMantle().getEngine().getTarget().getWorld().seed();
}
default BurstExecutor burst()
{
default BurstExecutor burst() {
return getEngineMantle().getEngine().burst().burst();
}
EngineMantle getEngineMantle();
default Mantle getMantle()
{
default Mantle getMantle() {
return getEngineMantle().getMantle();
}

View File

@@ -29,7 +29,6 @@ import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.documentation.ChunkCoordinates;
import com.volmit.iris.util.mantle.MantleFlag;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.parallel.BurstExecutor;
import java.util.function.Consumer;

View File

@@ -33,13 +33,11 @@ import com.volmit.iris.util.documentation.ChunkCoordinates;
import com.volmit.iris.util.mantle.MantleFlag;
import com.volmit.iris.util.math.Position2;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.parallel.BurstExecutor;
import java.util.List;
import java.util.function.Consumer;
public class MantleJigsawComponent extends IrisMantleComponent
{
public class MantleJigsawComponent extends IrisMantleComponent {
public MantleJigsawComponent(EngineMantle engineMantle) {
super(engineMantle, MantleFlag.JIGSAW);
}

View File

@@ -31,11 +31,8 @@ import com.volmit.iris.engine.object.objects.IrisObjectPlacement;
import com.volmit.iris.engine.object.regional.IrisRegion;
import com.volmit.iris.util.documentation.BlockCoordinates;
import com.volmit.iris.util.documentation.ChunkCoordinates;
import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.mantle.MantleFlag;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.parallel.BurstExecutor;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import java.util.function.Consumer;
@@ -111,12 +108,12 @@ public class MantleObjectComponent extends IrisMantleComponent {
f.setInterpolationRadius(objectPlacement.getVacuumInterpolationRadius());
f.setInterpolator(objectPlacement.getVacuumInterpolationMethod());
f.setStrength(1D);
getMantle().set(xx,0,zz,new IrisFeaturePositional(xx, zz, f));
getMantle().set(xx, 0, zz, new IrisFeaturePositional(xx, zz, f));
}
for (IrisFeaturePotential j : objectPlacement.getAddFeatures()) {
if (j.hasZone(rng, xx >> 4, zz >> 4)) {
getMantle().set(xx,0,zz,new IrisFeaturePositional(xx, zz, j.getZone()));
getMantle().set(xx, 0, zz, new IrisFeaturePositional(xx, zz, j.getZone()));
}
}
}
@@ -124,10 +121,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
if (objectPlacement.usesFeatures()) {
r.run();
}
else
{
} else {
post.accept(r);
}
}