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 031d7eb78..9acdab106 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 @@ -1,9 +1,12 @@ package com.dfsek.terra.addons.generation.feature; import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.structure.feature.BinaryColumn; import com.dfsek.terra.api.world.Column; import com.dfsek.terra.api.world.World; +import java.util.function.IntConsumer; + public class ColumnImpl implements Column { private final int x; @@ -45,4 +48,16 @@ public class ColumnImpl implements Column { public int getMaxY() { return world.getMaxHeight(); } + + @Override + public void forEach(IntConsumer function) { + for(int y = world.getMinHeight(); y < world.getMaxHeight(); y++) { + function.accept(y); + } + } + + @Override + public BinaryColumn newBinaryColumn() { + return new BinaryColumn(getMinY(), getMaxY()); + } } diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/world/Column.java b/common/api/core/src/main/java/com/dfsek/terra/api/world/Column.java index dd70538a6..49a54e93f 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/world/Column.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/world/Column.java @@ -1,6 +1,9 @@ package com.dfsek.terra.api.world; import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.structure.feature.BinaryColumn; + +import java.util.function.IntConsumer; /** @@ -18,4 +21,8 @@ public interface Column { int getMinY(); int getMaxY(); + + void forEach(IntConsumer function); + + BinaryColumn newBinaryColumn(); }