mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-14 19:56:19 +00:00
implement world api changes
This commit is contained in:
@@ -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.chunk.Chunk;
|
||||
import com.dfsek.terra.api.world.access.World;
|
||||
|
||||
|
||||
public interface Structure extends StringIdentifiable {
|
||||
boolean generate(Vector3 location, World world, Chunk chunk, Random random, Rotation rotation);
|
||||
boolean generate(Vector3 location, WorldAccess world, Chunk chunk, Random random, Rotation rotation);
|
||||
|
||||
boolean generate(Buffer buffer, World world, Random random, Rotation rotation, int recursions);
|
||||
boolean generate(Buffer buffer, WorldAccess world, Random random, Rotation rotation, int recursions);
|
||||
|
||||
boolean generate(Vector3 location, World world, Random random, Rotation rotation);
|
||||
boolean generate(Vector3 location, WorldAccess world, Random random, Rotation rotation);
|
||||
}
|
||||
|
||||
@@ -8,12 +8,13 @@
|
||||
package com.dfsek.terra.api.structure.buffer;
|
||||
|
||||
import com.dfsek.terra.api.util.vector.Vector3;
|
||||
import com.dfsek.terra.api.world.access.World;
|
||||
|
||||
import com.dfsek.terra.api.world.access.WorldAccess;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
|
||||
|
||||
@Experimental
|
||||
public interface BufferedItem {
|
||||
void paste(Vector3 origin, World world);
|
||||
void paste(Vector3 origin, WorldAccess world);
|
||||
}
|
||||
|
||||
@@ -13,6 +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.chunk.Chunk;
|
||||
import com.dfsek.terra.api.world.access.World;
|
||||
|
||||
@@ -25,10 +26,10 @@ import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
@Experimental
|
||||
public class DirectBuffer implements Buffer {
|
||||
private final Vector3 origin;
|
||||
private final World target;
|
||||
private final WorldAccess target;
|
||||
private final Map<Vector3, String> marks = new LinkedHashMap<>();
|
||||
|
||||
public DirectBuffer(Vector3 origin, World target) {
|
||||
public DirectBuffer(Vector3 origin, WorldAccess target) {
|
||||
this.origin = origin;
|
||||
this.target = target;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
package com.dfsek.terra.api.structure.buffer.items;
|
||||
|
||||
import com.dfsek.terra.api.world.access.WorldAccess;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -16,7 +18,7 @@ import com.dfsek.terra.api.block.state.BlockState;
|
||||
import com.dfsek.terra.api.block.state.properties.base.Properties;
|
||||
import com.dfsek.terra.api.structure.buffer.BufferedItem;
|
||||
import com.dfsek.terra.api.util.vector.Vector3;
|
||||
import com.dfsek.terra.api.world.access.World;
|
||||
|
||||
|
||||
@Experimental
|
||||
public class BufferedBlock implements BufferedItem {
|
||||
@@ -35,7 +37,7 @@ public class BufferedBlock implements BufferedItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void paste(Vector3 origin, World world) {
|
||||
public void paste(Vector3 origin, WorldAccess world) {
|
||||
try {
|
||||
BlockState current = world.getBlockData(origin);
|
||||
if(overwrite || current.isAir()) {
|
||||
|
||||
@@ -12,7 +12,8 @@ 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.World;
|
||||
|
||||
import com.dfsek.terra.api.world.access.WorldAccess;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus.Experimental;
|
||||
|
||||
@@ -23,7 +24,7 @@ public class Cell implements BufferedItem {
|
||||
private String mark;
|
||||
|
||||
@Override
|
||||
public void paste(Vector3 origin, World world) {
|
||||
public void paste(Vector3 origin, WorldAccess world) {
|
||||
items.forEach(item -> item.paste(origin.clone(), world));
|
||||
}
|
||||
|
||||
|
||||
@@ -9,10 +9,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;
|
||||
|
||||
|
||||
public interface Feature {
|
||||
Structure getStructure(World world, int x, int y, int z);
|
||||
Structure getStructure(WorldAccess world, int x, int y, int z);
|
||||
|
||||
Distributor getDistributor();
|
||||
|
||||
|
||||
@@ -19,5 +19,5 @@ public interface Locator {
|
||||
return column -> this.getSuitableCoordinates(column).or(that.getSuitableCoordinates(column));
|
||||
}
|
||||
|
||||
BinaryColumn getSuitableCoordinates(Column column);
|
||||
BinaryColumn getSuitableCoordinates(Column<?> column);
|
||||
}
|
||||
|
||||
@@ -16,14 +16,14 @@ import com.dfsek.terra.api.structure.feature.BinaryColumn;
|
||||
/**
|
||||
* A single vertical column of a world.
|
||||
*/
|
||||
public interface Column {
|
||||
public interface Column<T extends WorldAccess> {
|
||||
int getX();
|
||||
|
||||
int getZ();
|
||||
|
||||
BlockState getBlock(int y);
|
||||
|
||||
World getWorld();
|
||||
T getWorld();
|
||||
|
||||
int getMinY();
|
||||
|
||||
|
||||
@@ -7,10 +7,9 @@
|
||||
|
||||
package com.dfsek.terra.api.world.chunk.generation.stage;
|
||||
|
||||
import com.dfsek.terra.api.world.chunk.Chunk;
|
||||
import com.dfsek.terra.api.world.access.World;
|
||||
import com.dfsek.terra.api.world.chunk.generation.ProtoWorld;
|
||||
|
||||
|
||||
public interface GenerationStage {
|
||||
void populate(World world, Chunk chunk);
|
||||
void populate(ProtoWorld world);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user