Cave spawning & markers

This commit is contained in:
cyberpwn
2021-08-31 11:24:48 -04:00
parent 569c34bca0
commit b2aff55160
7 changed files with 151 additions and 19 deletions

View File

@@ -23,10 +23,7 @@ import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineTarget;
import com.volmit.iris.engine.object.IObjectPlacer;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.object.IrisFeaturePositional;
import com.volmit.iris.engine.object.TileData;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.data.B;
import com.volmit.iris.util.documentation.BlockCoordinates;
@@ -37,6 +34,8 @@ import com.volmit.iris.util.mantle.MantleChunk;
import com.volmit.iris.util.mantle.MantleFlag;
import com.volmit.iris.util.matter.Matter;
import com.volmit.iris.util.matter.MatterCavern;
import com.volmit.iris.util.matter.MatterMarker;
import com.volmit.iris.util.matter.slices.MarkerMatter;
import com.volmit.iris.util.matter.slices.UpdateMatter;
import com.volmit.iris.util.parallel.BurstExecutor;
import com.volmit.iris.util.parallel.MultiBurst;
@@ -65,6 +64,20 @@ public interface EngineMantle extends IObjectPlacer {
return getHighest(x, z, getData());
}
@ChunkCoordinates
default KList<IrisPosition> findMarkers(int x, int z, MatterMarker marker)
{
KList<IrisPosition> p = new KList<>();
getMantle().iterateChunk(x, z, MatterMarker.class, (xx, yy, zz, mm) -> {
if(marker.equals(mm))
{
p.add(new IrisPosition(xx + (x << 4), yy, zz + (z << 4)));
}
});
return p;
}
default int getHighest(int x, int z, boolean ignoreFluid) {
return getHighest(x, z, getData(), ignoreFluid);
}
@@ -229,7 +242,6 @@ public interface EngineMantle extends IObjectPlacer {
}
getMantle().iterateChunk(x, z, t, blocks::set);
getMantle().deleteChunkSlice(x, z, BlockData.class);
}
@BlockCoordinates