diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java index 96b35ff80..253a013b4 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/generators/NoiseChunkGenerator3D.java @@ -7,7 +7,7 @@ package com.dfsek.terra.addons.chunkgenerator.generation.generators; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import net.jafama.FastMath; import org.jetbrains.annotations.NotNull; @@ -49,7 +49,7 @@ public class NoiseChunkGenerator3D implements ChunkGenerator { @Override @SuppressWarnings("try") - public void generateChunkData(@NotNull ProtoChunk chunk, @NotNull WorldAccess world, + public void generateChunkData(@NotNull ProtoChunk chunk, @NotNull WritableWorld world, int chunkZ, int chunkX) { try(ProfileFrame ignore = platform.getProfiler().profile("chunk_base_3d")) { diff --git a/common/addons/config-feature/src/main/java/com/dfsek/terra/addons/feature/ConfiguredFeature.java b/common/addons/config-feature/src/main/java/com/dfsek/terra/addons/feature/ConfiguredFeature.java index 666a71e58..d3adda90d 100644 --- a/common/addons/config-feature/src/main/java/com/dfsek/terra/addons/feature/ConfiguredFeature.java +++ b/common/addons/config-feature/src/main/java/com/dfsek/terra/addons/feature/ConfiguredFeature.java @@ -13,8 +13,7 @@ import com.dfsek.terra.api.structure.feature.Distributor; import com.dfsek.terra.api.structure.feature.Feature; import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.access.World; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; public class ConfiguredFeature implements Feature { @@ -33,7 +32,7 @@ public class ConfiguredFeature implements Feature { } @Override - public Structure getStructure(WorldAccess world, int x, int y, int z) { + public Structure getStructure(WritableWorld world, int x, int y, int z) { return structures.get(structureSelector, x, y, z, world.getSeed()); } diff --git a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/flora/gen/TerraFlora.java b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/flora/gen/TerraFlora.java index 0553c5302..19ecc9265 100644 --- a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/flora/gen/TerraFlora.java +++ b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/flora/gen/TerraFlora.java @@ -7,7 +7,7 @@ package com.dfsek.terra.addons.flora.flora.gen; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import net.jafama.FastMath; @@ -27,7 +27,6 @@ import com.dfsek.terra.api.util.collection.MaterialSet; import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.vector.Vector3; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.access.World; public class TerraFlora implements Structure { @@ -58,7 +57,7 @@ public class TerraFlora implements Structure { }); } - private void test(EnumSet faces, Direction f, Vector3 b, WorldAccess world) { + private void test(EnumSet faces, Direction f, Vector3 b, WritableWorld world) { if(testRotation.contains( world.getBlockData(b.getBlockX() + f.getModX(), b.getBlockY() + f.getModY(), b.getBlockZ() + f.getModZ()).getBlockType())) faces.add(f); @@ -68,7 +67,7 @@ public class TerraFlora implements Structure { return layers.get(FastMath.max(FastMath.min(layer, layers.size() - 1), 0)); } - private EnumSet getFaces(Vector3 b, WorldAccess world) { + private EnumSet getFaces(Vector3 b, WritableWorld world) { EnumSet faces = EnumSet.noneOf(Direction.class); test(faces, Direction.NORTH, b, world); test(faces, Direction.SOUTH, b, world); @@ -83,17 +82,17 @@ public class TerraFlora implements Structure { } @Override - public boolean generate(Vector3 location, WorldAccess world, Chunk chunk, Random random, Rotation rotation) { + public boolean generate(Vector3 location, WritableWorld world, Chunk chunk, Random random, Rotation rotation) { return generate(location, world, random, rotation); } @Override - public boolean generate(Buffer buffer, WorldAccess world, Random random, Rotation rotation, int recursions) { + public boolean generate(Buffer buffer, WritableWorld world, Random random, Rotation rotation, int recursions) { return generate(buffer.getOrigin(), world, random, rotation); } @Override - public boolean generate(Vector3 location, WorldAccess world, Random random, Rotation rotation) { + public boolean generate(Vector3 location, WritableWorld world, Random random, Rotation rotation) { boolean doRotation = testRotation.size() > 0; int size = layers.size(); int c = ceiling ? -1 : 1; diff --git a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/ColumnImpl.java b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/ColumnImpl.java index 46a5015d7..e669dcf7f 100644 --- a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/ColumnImpl.java +++ b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/ColumnImpl.java @@ -12,11 +12,10 @@ import java.util.function.IntConsumer; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.structure.feature.BinaryColumn; import com.dfsek.terra.api.world.access.Column; -import com.dfsek.terra.api.world.access.World; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; -public class ColumnImpl implements Column { +public class ColumnImpl implements Column { private final int x; private final int z; private final T world; diff --git a/common/addons/structure-sponge-loader/src/main/java/com/dfsek/terra/addons/sponge/SpongeStructure.java b/common/addons/structure-sponge-loader/src/main/java/com/dfsek/terra/addons/sponge/SpongeStructure.java index ec46072a8..89bb66aa3 100644 --- a/common/addons/structure-sponge-loader/src/main/java/com/dfsek/terra/addons/sponge/SpongeStructure.java +++ b/common/addons/structure-sponge-loader/src/main/java/com/dfsek/terra/addons/sponge/SpongeStructure.java @@ -7,7 +7,7 @@ package com.dfsek.terra.addons.sponge; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import net.jafama.FastMath; @@ -38,7 +38,7 @@ public class SpongeStructure implements Structure { } @Override - public boolean generate(Vector3 location, WorldAccess world, Chunk chunk, Random random, Rotation rotation) { + public boolean generate(Vector3 location, WritableWorld world, Chunk chunk, Random random, Rotation rotation) { int bX = location.getBlockX(); int bY = location.getBlockY(); int bZ = location.getBlockZ(); @@ -61,7 +61,7 @@ public class SpongeStructure implements Structure { } @Override - public boolean generate(Buffer buffer, WorldAccess world, Random random, Rotation rotation, int recursions) { + public boolean generate(Buffer buffer, WritableWorld world, Random random, Rotation rotation, int recursions) { for(int x = 0; x < blocks.length; x++) { for(int z = 0; z < blocks[x].length; z++) { Vector2Int r = Vector2Int.of(x, z).rotate(rotation); @@ -78,7 +78,7 @@ public class SpongeStructure implements Structure { } @Override - public boolean generate(Vector3 location, WorldAccess world, Random random, Rotation rotation) { + public boolean generate(Vector3 location, WritableWorld world, Random random, Rotation rotation) { int bX = location.getBlockX(); int bY = location.getBlockY(); int bZ = location.getBlockZ(); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java index 70fc1c146..ddf9925a4 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedEntity.java @@ -13,7 +13,7 @@ import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.event.events.world.generation.EntitySpawnEvent; import com.dfsek.terra.api.structure.buffer.BufferedItem; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; public class BufferedEntity implements BufferedItem { @@ -27,7 +27,7 @@ public class BufferedEntity implements BufferedItem { } @Override - public void paste(Vector3 origin, WorldAccess world) { + public void paste(Vector3 origin, WritableWorld world) { Entity entity = world.spawnEntity(origin.clone().add(0.5, 0, 0.5), type); platform.getEventManager().callEvent(new EntitySpawnEvent(entity.world().getConfig().getPack(), entity)); } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java index 1cad5a68f..3ccfe9c3a 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedLootApplication.java @@ -18,7 +18,7 @@ import com.dfsek.terra.api.structure.LootTable; import com.dfsek.terra.api.structure.buffer.BufferedItem; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,7 +38,7 @@ public class BufferedLootApplication implements BufferedItem { } @Override - public void paste(Vector3 origin, WorldAccess world) { + public void paste(Vector3 origin, WritableWorld world) { try { BlockEntity data = world.getBlockState(origin); if(!(data instanceof Container container)) { diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedPulledBlock.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedPulledBlock.java index 6698d966a..471505fc1 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedPulledBlock.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedPulledBlock.java @@ -10,7 +10,7 @@ package com.dfsek.terra.addons.terrascript.buffer.items; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.structure.buffer.BufferedItem; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; public class BufferedPulledBlock implements BufferedItem { @@ -21,7 +21,7 @@ public class BufferedPulledBlock implements BufferedItem { } @Override - public void paste(Vector3 origin, WorldAccess world) { + public void paste(Vector3 origin, WritableWorld world) { Vector3 mutable = origin.clone(); while(mutable.getY() > world.getMinHeight()) { if(!world.getBlockData(mutable).isAir()) { diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedStateManipulator.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedStateManipulator.java index d6e5c00f9..c4a81c9c3 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedStateManipulator.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/buffer/items/BufferedStateManipulator.java @@ -11,7 +11,7 @@ import com.dfsek.terra.api.block.entity.BlockEntity; import com.dfsek.terra.api.structure.buffer.BufferedItem; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,7 +27,7 @@ public class BufferedStateManipulator implements BufferedItem { } @Override - public void paste(Vector3 origin, WorldAccess world) { + public void paste(Vector3 origin, WritableWorld world) { try { BlockEntity state = world.getBlockState(origin); state.applyState(data); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index 35c649ac1..2bf90078a 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -7,7 +7,7 @@ package com.dfsek.terra.addons.terrascript.script; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; @@ -138,7 +138,7 @@ public class StructureScript implements Structure { @Override @SuppressWarnings("try") - public boolean generate(Vector3 location, WorldAccess world, Chunk chunk, Random random, Rotation rotation) { + public boolean generate(Vector3 location, WritableWorld world, Chunk chunk, Random random, Rotation rotation) { try(ProfileFrame ignore = platform.getProfiler().profile("terrascript_chunk:" + id)) { StructureBuffer buffer = computeBuffer(location, world, random, rotation); buffer.paste(location, chunk); @@ -148,7 +148,7 @@ public class StructureScript implements Structure { @Override @SuppressWarnings("try") - public boolean generate(Buffer buffer, WorldAccess world, Random random, Rotation rotation, int recursions) { + public boolean generate(Buffer buffer, WritableWorld world, Random random, Rotation rotation, int recursions) { try(ProfileFrame ignore = platform.getProfiler().profile("terrascript_recursive:" + id)) { return applyBlock(new TerraImplementationArguments(buffer, rotation, random, world, recursions)); } @@ -156,7 +156,7 @@ public class StructureScript implements Structure { @Override @SuppressWarnings("try") - public boolean generate(Vector3 location, WorldAccess world, Random random, Rotation rotation) { + public boolean generate(Vector3 location, WritableWorld world, Random random, Rotation rotation) { try(ProfileFrame ignore = platform.getProfiler().profile("terrascript_direct:" + id)) { DirectBuffer buffer = new DirectBuffer(location, world); return applyBlock(new TerraImplementationArguments(buffer, rotation, random, world, 0)); @@ -171,7 +171,7 @@ public class StructureScript implements Structure { } } - private StructureBuffer computeBuffer(Vector3 location, WorldAccess world, Random random, Rotation rotation) { + private StructureBuffer computeBuffer(Vector3 location, WritableWorld world, Random random, Rotation rotation) { try { return cache.get(location, () -> { StructureBuffer buf = new StructureBuffer(location); diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/TerraImplementationArguments.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/TerraImplementationArguments.java index bc5ce74ab..4ebac76fb 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/TerraImplementationArguments.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/TerraImplementationArguments.java @@ -12,19 +12,18 @@ import java.util.Random; import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.api.structure.buffer.Buffer; import com.dfsek.terra.api.util.Rotation; -import com.dfsek.terra.api.world.access.World; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; public class TerraImplementationArguments implements ImplementationArguments { private final Buffer buffer; private final Rotation rotation; private final Random random; - private final WorldAccess world; + private final WritableWorld world; private final int recursions; private boolean waterlog = false; - public TerraImplementationArguments(Buffer buffer, Rotation rotation, Random random, WorldAccess world, int recursions) { + public TerraImplementationArguments(Buffer buffer, Rotation rotation, Random random, WritableWorld world, int recursions) { this.buffer = buffer; this.rotation = rotation; this.random = random; @@ -56,7 +55,7 @@ public class TerraImplementationArguments implements ImplementationArguments { this.waterlog = waterlog; } - public WorldAccess getWorld() { + public WritableWorld getWorld() { return world; } } diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java index 0c1cf9198..ddd474660 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/functions/CheckFunction.java @@ -7,7 +7,7 @@ package com.dfsek.terra.addons.terrascript.script.functions; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import net.jafama.FastMath; @@ -23,7 +23,6 @@ import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.util.RotationUtil; import com.dfsek.terra.api.util.vector.Vector2; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.World; import com.dfsek.terra.api.world.generator.SamplerCache; @@ -70,7 +69,7 @@ public class CheckFunction implements Function { return ReturnType.STRING; } - private String apply(Vector3 vector, WorldAccess world) { + private String apply(Vector3 vector, WritableWorld world) { int y = vector.getBlockY(); if(y >= world.getMaxHeight() || y < 0) return "AIR"; SamplerCache cache = world.getConfig().getSamplerCache(); diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/structure/Structure.java b/common/api/core/src/main/java/com/dfsek/terra/api/structure/Structure.java index 72251bbd5..2d5ec7d1b 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/structure/Structure.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/structure/Structure.java @@ -13,14 +13,14 @@ import com.dfsek.terra.api.structure.buffer.Buffer; import com.dfsek.terra.api.util.Rotation; import com.dfsek.terra.api.util.StringIdentifiable; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import com.dfsek.terra.api.world.chunk.Chunk; public interface Structure extends StringIdentifiable { - boolean generate(Vector3 location, WorldAccess world, Chunk chunk, Random random, Rotation rotation); + boolean generate(Vector3 location, WritableWorld world, Chunk chunk, Random random, Rotation rotation); - boolean generate(Buffer buffer, WorldAccess world, Random random, Rotation rotation, int recursions); + boolean generate(Buffer buffer, WritableWorld world, Random random, Rotation rotation, int recursions); - boolean generate(Vector3 location, WorldAccess world, Random random, Rotation rotation); + boolean generate(Vector3 location, WritableWorld world, Random random, Rotation rotation); } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/BufferedItem.java b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/BufferedItem.java index 24122341e..24138b7e9 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/BufferedItem.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/BufferedItem.java @@ -9,12 +9,12 @@ package com.dfsek.terra.api.structure.buffer; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import org.jetbrains.annotations.ApiStatus.Experimental; @Experimental public interface BufferedItem { - void paste(Vector3 origin, WorldAccess world); + void paste(Vector3 origin, WritableWorld world); } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/DirectBuffer.java b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/DirectBuffer.java index 00ce1c450..5964926c7 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/DirectBuffer.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/buffers/DirectBuffer.java @@ -13,7 +13,7 @@ import java.util.Map; import com.dfsek.terra.api.structure.buffer.Buffer; import com.dfsek.terra.api.structure.buffer.BufferedItem; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import com.dfsek.terra.api.world.chunk.Chunk; import com.dfsek.terra.api.world.access.World; @@ -26,10 +26,10 @@ import org.jetbrains.annotations.ApiStatus.Experimental; @Experimental public class DirectBuffer implements Buffer { private final Vector3 origin; - private final WorldAccess target; + private final WritableWorld target; private final Map marks = new LinkedHashMap<>(); - public DirectBuffer(Vector3 origin, WorldAccess target) { + public DirectBuffer(Vector3 origin, WritableWorld target) { this.origin = origin; this.target = target; } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/items/BufferedBlock.java b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/items/BufferedBlock.java index 96ff1f59e..ab6ff0bac 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/items/BufferedBlock.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/items/BufferedBlock.java @@ -7,7 +7,7 @@ package com.dfsek.terra.api.structure.buffer.items; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import org.jetbrains.annotations.ApiStatus.Experimental; import org.slf4j.Logger; @@ -37,7 +37,7 @@ public class BufferedBlock implements BufferedItem { } @Override - public void paste(Vector3 origin, WorldAccess world) { + public void paste(Vector3 origin, WritableWorld world) { try { BlockState current = world.getBlockData(origin); if(overwrite || current.isAir()) { diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/items/Cell.java b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/items/Cell.java index 205eb7bbd..ee72b6b18 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/items/Cell.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/structure/buffer/items/Cell.java @@ -13,7 +13,7 @@ import java.util.List; import com.dfsek.terra.api.structure.buffer.BufferedItem; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import org.jetbrains.annotations.ApiStatus.Experimental; @@ -24,7 +24,7 @@ public class Cell implements BufferedItem { private String mark; @Override - public void paste(Vector3 origin, WorldAccess world) { + public void paste(Vector3 origin, WritableWorld world) { items.forEach(item -> item.paste(origin.clone(), world)); } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/structure/feature/Feature.java b/common/api/core/src/main/java/com/dfsek/terra/api/structure/feature/Feature.java index 72894f277..aeda3bfa4 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/structure/feature/Feature.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/structure/feature/Feature.java @@ -8,12 +8,11 @@ package com.dfsek.terra.api.structure.feature; import com.dfsek.terra.api.structure.Structure; -import com.dfsek.terra.api.world.access.World; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; public interface Feature { - Structure getStructure(WorldAccess world, int x, int y, int z); + Structure getStructure(WritableWorld world, int x, int y, int z); Distributor getDistributor(); diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/access/Column.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/access/Column.java index 7dc8b43d4..206701a13 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/access/Column.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/access/Column.java @@ -16,7 +16,7 @@ import com.dfsek.terra.api.structure.feature.BinaryColumn; /** * A single vertical column of a world. */ -public interface Column { +public interface Column { int getX(); int getZ(); diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/access/World.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/access/World.java index e78534ea1..fef6a659f 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/access/World.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/access/World.java @@ -7,16 +7,11 @@ package com.dfsek.terra.api.world.access; -import com.dfsek.terra.api.config.WorldConfig; -import com.dfsek.terra.api.entity.Entity; -import com.dfsek.terra.api.entity.EntityType; import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.chunk.Chunk; -import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; -public interface World extends WorldAccess { +public interface World extends WritableWorld { Chunk getChunkAt(int x, int z); default Chunk getChunkAt(Vector3 location) { diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/access/WorldAccess.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/access/WritableWorld.java similarity index 97% rename from common/api/core/src/main/java/com/dfsek/terra/api/world/access/WorldAccess.java rename to common/api/core/src/main/java/com/dfsek/terra/api/world/access/WritableWorld.java index 1585cf989..669b30a79 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/access/WorldAccess.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/access/WritableWorld.java @@ -11,7 +11,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; -public interface WorldAccess extends Handle { +public interface WritableWorld extends Handle { default void setBlockData(Vector3 position, BlockState data, boolean physics) { setBlockData(position.getBlockX(), position.getBlockY(), position.getBlockZ(), data, physics); } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java index b5dd15f65..cdf136575 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ChunkGenerator.java @@ -9,7 +9,7 @@ package com.dfsek.terra.api.world.chunk.generation; import com.dfsek.terra.api.util.vector.integer.Vector3Int; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage; import org.jetbrains.annotations.NotNull; @@ -26,7 +26,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; public interface ChunkGenerator { - void generateChunkData(@NotNull ProtoChunk chunk, @NotNull WorldAccess world, + void generateChunkData(@NotNull ProtoChunk chunk, @NotNull WritableWorld world, int chunkZ, int chunkX); Sampler createSampler(int chunkX, int chunkZ, BiomeProvider provider, World world, int elevationSmooth); diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ProtoWorld.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ProtoWorld.java index 9819a498e..088ba60b1 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ProtoWorld.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/chunk/generation/ProtoWorld.java @@ -1,10 +1,10 @@ package com.dfsek.terra.api.world.chunk.generation; import com.dfsek.terra.api.world.access.World; -import com.dfsek.terra.api.world.access.WorldAccess; +import com.dfsek.terra.api.world.access.WritableWorld; -public interface ProtoWorld extends WorldAccess { +public interface ProtoWorld extends WritableWorld { int centerChunkX(); int centerChunkZ();