Object tweaks & mantle fixes

This commit is contained in:
Daniel Mills 2021-08-09 09:38:52 -04:00
parent a99f2b78a1
commit 734847db68
2 changed files with 11 additions and 2 deletions

View File

@ -34,6 +34,7 @@ import com.volmit.iris.engine.object.regional.IrisRegion;
import com.volmit.iris.engine.object.tile.TileData; import com.volmit.iris.engine.object.tile.TileData;
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;
import com.volmit.iris.util.documentation.BlockCoordinates;
import com.volmit.iris.util.documentation.ChunkCoordinates; import com.volmit.iris.util.documentation.ChunkCoordinates;
import com.volmit.iris.util.hunk.Hunk; import com.volmit.iris.util.hunk.Hunk;
import com.volmit.iris.util.mantle.Mantle; import com.volmit.iris.util.mantle.Mantle;
@ -218,4 +219,11 @@ 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);
}
} }

View File

@ -29,6 +29,7 @@ import com.volmit.iris.engine.object.feature.IrisFeaturePotential;
import com.volmit.iris.engine.object.objects.IrisObject; import com.volmit.iris.engine.object.objects.IrisObject;
import com.volmit.iris.engine.object.objects.IrisObjectPlacement; import com.volmit.iris.engine.object.objects.IrisObjectPlacement;
import com.volmit.iris.engine.object.regional.IrisRegion; 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.documentation.ChunkCoordinates;
import com.volmit.iris.util.mantle.MantleFlag; import com.volmit.iris.util.mantle.MantleFlag;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
@ -66,7 +67,6 @@ public class MantleObjectComponent extends IrisMantleComponent {
@ChunkCoordinates @ChunkCoordinates
private void placeObjects(RNG rng, int x, int z, IrisBiome biome, IrisRegion region, Consumer<Runnable> post) { private void placeObjects(RNG rng, int x, int z, IrisBiome biome, IrisRegion region, Consumer<Runnable> post) {
for (IrisObjectPlacement i : biome.getSurfaceObjects()) { for (IrisObjectPlacement i : biome.getSurfaceObjects()) {
if (rng.chance(i.getChance() + rng.d(-0.005, 0.005)) && rng.chance(getComplex().getObjectChanceStream().get(x << 4, z << 4))) { if (rng.chance(i.getChance() + rng.d(-0.005, 0.005)) && rng.chance(getComplex().getObjectChanceStream().get(x << 4, z << 4))) {
try { try {
@ -96,6 +96,7 @@ public class MantleObjectComponent extends IrisMantleComponent {
} }
} }
@BlockCoordinates
private void placeObject(RNG rng, int x, int z, IrisObjectPlacement objectPlacement, Consumer<Runnable> post) { private void placeObject(RNG rng, int x, int z, IrisObjectPlacement objectPlacement, Consumer<Runnable> post) {
for (int i = 0; i < objectPlacement.getDensity(); i++) { for (int i = 0; i < objectPlacement.getDensity(); i++) {
IrisObject v = objectPlacement.getScale().get(rng, objectPlacement.getObject(getComplex(), rng)); IrisObject v = objectPlacement.getScale().get(rng, objectPlacement.getObject(getComplex(), rng));