BlockData -> BlockState

This commit is contained in:
dfsek
2021-06-25 19:13:42 -07:00
parent 002c7037f1
commit a3cbf9a945
90 changed files with 318 additions and 326 deletions

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.functions.Function;
@@ -34,7 +34,7 @@ public abstract class AbstractBlockFunction implements Function<Void> {
this.position = position;
}
void setBlock(ImplementationArguments implementationArguments, Map<String, Variable<?>> variableMap, TerraImplementationArguments arguments, BlockData rot) {
void setBlock(ImplementationArguments implementationArguments, Map<String, Variable<?>> variableMap, TerraImplementationArguments arguments, BlockState rot) {
Vector2 xz = new Vector2Impl(x.apply(implementationArguments, variableMap).doubleValue(), z.apply(implementationArguments, variableMap).doubleValue());
RotationUtil.rotateVector(xz, arguments.getRotation());

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
@@ -13,7 +13,7 @@ import com.dfsek.terra.api.structures.tokenizer.Position;
import java.util.Map;
public class BlockFunction extends AbstractBlockFunction {
private final BlockData data;
private final BlockState data;
public BlockFunction(Returnable<Number> x, Returnable<Number> y, Returnable<Number> z, Returnable<String> data, Returnable<Boolean> overwrite, TerraPlugin main, Position position) throws ParseException {
super(x, y, z, data, overwrite, main, position);
@@ -29,7 +29,7 @@ public class BlockFunction extends AbstractBlockFunction {
@Override
public Void apply(ImplementationArguments implementationArguments, Map<String, Variable<?>> variableMap) {
TerraImplementationArguments arguments = (TerraImplementationArguments) implementationArguments;
BlockData rot = data.clone();
BlockState rot = data.clone();
setBlock(implementationArguments, variableMap, arguments, rot);
return null;
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
import com.dfsek.terra.api.structures.parser.lang.variables.Variable;
@@ -12,7 +12,7 @@ import java.util.HashMap;
import java.util.Map;
public class DynamicBlockFunction extends AbstractBlockFunction {
private final Map<String, BlockData> data = new HashMap<>();
private final Map<String, BlockState> data = new HashMap<>();
private final Position position;
@@ -24,7 +24,7 @@ public class DynamicBlockFunction extends AbstractBlockFunction {
@Override
public Void apply(ImplementationArguments implementationArguments, Map<String, Variable<?>> variableMap) {
TerraImplementationArguments arguments = (TerraImplementationArguments) implementationArguments;
BlockData rot = data.computeIfAbsent(blockData.apply(implementationArguments, variableMap), main.getWorldHandle()::createBlockData).clone();
BlockState rot = data.computeIfAbsent(blockData.apply(implementationArguments, variableMap), main.getWorldHandle()::createBlockData).clone();
setBlock(implementationArguments, variableMap, arguments, rot);
return null;
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.structures.script.functions;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.structures.parser.exceptions.ParseException;
import com.dfsek.terra.api.structures.parser.lang.ImplementationArguments;
import com.dfsek.terra.api.structures.parser.lang.Returnable;
@@ -20,7 +20,7 @@ import net.jafama.FastMath;
import java.util.Map;
public class PullFunction implements Function<Void> {
private final BlockData data;
private final BlockState data;
private final Returnable<Number> x, y, z;
private final Position position;
@@ -40,7 +40,7 @@ public class PullFunction implements Function<Void> {
Vector2 xz = new Vector2Impl(x.apply(implementationArguments, variableMap).doubleValue(), z.apply(implementationArguments, variableMap).doubleValue());
RotationUtil.rotateVector(xz, arguments.getRotation());
BlockData rot = data.clone();
BlockState rot = data.clone();
RotationUtil.rotateBlockData(rot, arguments.getRotation().inverse());
arguments.getBuffer().addItem(new BufferedPulledBlock(rot), new Vector3Impl(FastMath.roundToInt(xz.getX()), y.apply(implementationArguments, variableMap).intValue(), FastMath.roundToInt(xz.getZ())));
return null;

View File

@@ -1,19 +1,19 @@
package com.dfsek.terra.api.structures.structure.buffer.items;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.data.Waterlogged;
import com.dfsek.terra.api.structure.buffer.BufferedItem;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.api.world.World;
public class BufferedBlock implements BufferedItem {
private final BlockData data;
private final BlockState data;
private final boolean overwrite;
private final TerraPlugin main;
private final boolean waterlog;
public BufferedBlock(BlockData data, boolean overwrite, TerraPlugin main, boolean waterlog) {
public BufferedBlock(BlockState data, boolean overwrite, TerraPlugin main, boolean waterlog) {
this.data = data;
this.overwrite = overwrite;
this.main = main;
@@ -23,7 +23,7 @@ public class BufferedBlock implements BufferedItem {
@Override
public void paste(Vector3 origin, World world) {
try {
BlockData current = world.getBlockData(origin);
BlockState current = world.getBlockData(origin);
if(overwrite || current.isAir()) {
if(waterlog && current instanceof Waterlogged && current.getBlockType().isWater())
((Waterlogged) current).setWaterlogged(true);

View File

@@ -1,14 +1,14 @@
package com.dfsek.terra.api.structures.structure.buffer.items;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.structure.buffer.BufferedItem;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.api.world.World;
public class BufferedPulledBlock implements BufferedItem {
private final BlockData data;
private final BlockState data;
public BufferedPulledBlock(BlockData data) {
public BufferedPulledBlock(BlockState data) {
this.data = data;
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.api.util;
import com.dfsek.terra.api.block.Axis;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.BlockFace;
import com.dfsek.terra.api.block.data.Directional;
import com.dfsek.terra.api.block.data.MultipleFacing;
@@ -249,7 +249,7 @@ public class RotationUtil {
return orig;
}
public static void rotateBlockData(BlockData data, Rotation r) {
public static void rotateBlockData(BlockState data, Rotation r) {
if(data instanceof Rotatable) {
BlockFace rt = getRotatedFace(((Rotatable) data).getRotation(), r);
((Rotatable) data).setRotation(rt);

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.util.collections;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.BlockType;
import java.util.Arrays;
@@ -21,7 +21,7 @@ public class MaterialSet extends HashSet<BlockType> {
return set;
}
public static MaterialSet get(BlockData... materials) {
public static MaterialSet get(BlockState... materials) {
MaterialSet set = new MaterialSet();
Arrays.stream(materials).forEach(set::add);
return set;
@@ -31,7 +31,7 @@ public class MaterialSet extends HashSet<BlockType> {
return new MaterialSet();
}
private void add(BlockData data) {
private void add(BlockState data) {
add(data.getBlockType());
}
}

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.world.palette;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.noise.NoiseSampler;
import java.util.List;
@@ -15,7 +15,7 @@ public class NoisePalette extends PaletteImpl {
}
@Override
public BlockData get(int layer, double x, double y, double z) {
public BlockState get(int layer, double x, double y, double z) {
PaletteLayer paletteLayer;
if(layer > this.getSize()) paletteLayer = this.getLayers().get(this.getLayers().size() - 1);
else {

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.api.world.palette;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.GlueList;
import com.dfsek.terra.api.util.ProbabilityCollection;
@@ -24,7 +24,7 @@ public abstract class PaletteImpl implements com.dfsek.terra.api.world.generator
}
@Override
public Palette add(BlockData m, int layers, NoiseSampler sampler) {
public Palette add(BlockState m, int layers, NoiseSampler sampler) {
for(int i = 0; i < layers; i++) {
pallet.add(new PaletteLayer(m, sampler));
}
@@ -32,7 +32,7 @@ public abstract class PaletteImpl implements com.dfsek.terra.api.world.generator
}
@Override
public Palette add(ProbabilityCollection<BlockData> m, int layers, NoiseSampler sampler) {
public Palette add(ProbabilityCollection<BlockState> m, int layers, NoiseSampler sampler) {
for(int i = 0; i < layers; i++) {
pallet.add(new PaletteLayer(m, sampler));
}
@@ -54,9 +54,9 @@ public abstract class PaletteImpl implements com.dfsek.terra.api.world.generator
*/
public static class PaletteLayer {
private final boolean col; // Is layer using a collection?
private ProbabilityCollection<BlockData> collection;
private ProbabilityCollection<BlockState> collection;
private final NoiseSampler sampler;
private BlockData m;
private BlockState m;
/**
* Constructs a PaletteLayerHolder with a ProbabilityCollection of materials and a number of layers.
@@ -64,7 +64,7 @@ public abstract class PaletteImpl implements com.dfsek.terra.api.world.generator
* @param type The collection of materials to choose from.
* @param sampler Noise sampler to use
*/
public PaletteLayer(ProbabilityCollection<BlockData> type, NoiseSampler sampler) {
public PaletteLayer(ProbabilityCollection<BlockState> type, NoiseSampler sampler) {
this.sampler = sampler;
this.col = true;
this.collection = type;
@@ -76,7 +76,7 @@ public abstract class PaletteImpl implements com.dfsek.terra.api.world.generator
* @param type The material to use.
* @param sampler Noise sampler to use
*/
public PaletteLayer(BlockData type, NoiseSampler sampler) {
public PaletteLayer(BlockState type, NoiseSampler sampler) {
this.sampler = sampler;
this.col = false;
this.m = type;
@@ -91,31 +91,31 @@ public abstract class PaletteImpl implements com.dfsek.terra.api.world.generator
*
* @return Material - the material..
*/
public BlockData get(Random random) {
public BlockState get(Random random) {
if(col) return this.collection.get(random);
return m;
}
public BlockData get(NoiseSampler random, double x, double y, double z, boolean is2D) {
public BlockState get(NoiseSampler random, double x, double y, double z, boolean is2D) {
if(col && is2D) return this.collection.get(random, x, z);
else if(col) return this.collection.get(random, x, y, z);
return m;
}
public ProbabilityCollection<BlockData> getCollection() {
public ProbabilityCollection<BlockState> getCollection() {
return collection;
}
}
public static class Singleton extends PaletteImpl {
private final BlockData item;
private final BlockState item;
public Singleton(BlockData item) {
public Singleton(BlockState item) {
this.item = item;
}
@Override
public BlockData get(int layer, double x, double y, double z) {
public BlockState get(int layer, double x, double y, double z) {
return item;
}
}

View File

@@ -1,23 +1,23 @@
package com.dfsek.terra.api.world.palette.holder;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.ProbabilityCollection;
import org.jetbrains.annotations.NotNull;
public class PaletteLayerHolder {
private final ProbabilityCollection<BlockData> layer;
private final ProbabilityCollection<BlockState> layer;
private final NoiseSampler sampler;
private final int size;
public PaletteLayerHolder(@NotNull ProbabilityCollection<BlockData> layer, NoiseSampler sampler, int size) {
public PaletteLayerHolder(@NotNull ProbabilityCollection<BlockState> layer, NoiseSampler sampler, int size) {
this.layer = layer;
this.sampler = sampler;
this.size = size;
}
@NotNull
public ProbabilityCollection<BlockData> getLayer() {
public ProbabilityCollection<BlockState> getLayer() {
return layer;
}

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.carving;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.util.ProbabilityCollection;
import com.dfsek.terra.api.util.collections.MaterialSet;
@@ -13,8 +13,8 @@ import java.util.TreeMap;
public class CarverPalette {
private final boolean blacklist;
private final MaterialSet replace;
private final TreeMap<Integer, ProbabilityCollection<BlockData>> map = new TreeMap<>();
private ProbabilityCollection<BlockData>[] layers;
private final TreeMap<Integer, ProbabilityCollection<BlockState>> map = new TreeMap<>();
private ProbabilityCollection<BlockState>[] layers;
private int offset = 0;
public CarverPalette(MaterialSet replaceable, boolean blacklist) {
@@ -22,12 +22,12 @@ public class CarverPalette {
this.replace = replaceable;
}
public CarverPalette add(ProbabilityCollection<BlockData> collection, int y) {
public CarverPalette add(ProbabilityCollection<BlockState> collection, int y) {
map.put(y, collection);
return this;
}
public ProbabilityCollection<BlockData> get(int y) {
public ProbabilityCollection<BlockState> get(int y) {
int index = y + offset;
return index >= 0
? index < layers.length
@@ -49,8 +49,8 @@ public class CarverPalette {
layers = new ProbabilityCollection[map.lastKey() + 1 - min];
for(int y = min; y <= FastMath.max(map.lastKey(), max); y++) {
ProbabilityCollection<BlockData> d = null;
for(Map.Entry<Integer, ProbabilityCollection<BlockData>> e : map.entrySet()) {
ProbabilityCollection<BlockState> d = null;
for(Map.Entry<Integer, ProbabilityCollection<BlockState>> e : map.entrySet()) {
if(e.getKey() >= y) {
d = e.getValue();
break;

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.commands.structure;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.api.block.state.Sign;
import com.dfsek.terra.api.command.CommandTemplate;
@@ -75,7 +75,7 @@ public class StructureExportCommand implements CommandTemplate {
for(int y = l1.getBlockY(); y <= l2.getBlockY(); y++) {
for(int z = l1.getBlockZ(); z <= l2.getBlockZ(); z++) {
BlockData data = player.world().getBlockData(x, y, z);
BlockState data = player.world().getBlockData(x, y, z);
if(data.isStructureVoid()) continue;
BlockEntity state = player.world().getBlockState(x, y, z);
if(state instanceof Sign) {

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.config.dummy;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.state.BlockEntity;
import com.dfsek.terra.api.entity.Entity;
import com.dfsek.terra.api.entity.EntityType;
@@ -37,12 +37,12 @@ public class DummyWorld implements World {
}
@Override
public BlockData getBlockData(int x, int y, int z) {
public BlockState getBlockData(int x, int y, int z) {
throw new UnsupportedOperationException("Cannot get block in DummyWorld");
}
@Override
public void setBlockData(int x, int y, int z, BlockData data, boolean physics) {
public void setBlockData(int x, int y, int z, BlockState data, boolean physics) {
throw new UnsupportedOperationException("Cannot set block in DummyWorld");
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.config.factories;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.config.templates.OreTemplate;
import com.dfsek.terra.world.population.items.ores.Ore;
import com.dfsek.terra.world.population.items.ores.VanillaOre;
@@ -9,7 +9,7 @@ import com.dfsek.terra.world.population.items.ores.VanillaOre;
public class OreFactory implements ConfigFactory<OreTemplate, Ore> {
@Override
public Ore build(OreTemplate config, TerraPlugin main) {
BlockData m = config.getMaterial();
BlockState m = config.getMaterial();
return new VanillaOre(m, config.getReplaceable(), config.doPhysics(), config.getSize(), main, config.getMaterialOverrides());
}
}

View File

@@ -1,6 +1,6 @@
package com.dfsek.terra.config.loaders;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.util.ProbabilityCollection;
import com.dfsek.terra.api.world.Flora;
import com.dfsek.terra.api.world.Tree;
@@ -28,7 +28,7 @@ public final class Types {
TERRA_BIOME_TERRA_BIOME_PROBABILITY_COLLECTION_MAP = getType("terraBiomeProbabilityCollectionMap");
}
private ProbabilityCollection<BlockData> blockDataProbabilityCollection;
private ProbabilityCollection<BlockState> blockStateProbabilityCollection;
private ProbabilityCollection<Flora> floraProbabilityCollection;
private ProbabilityCollection<Tree> treeProbabilityCollection;
private ProbabilityCollection<TerraBiome> terraBiomeProbabilityCollection;

View File

@@ -4,7 +4,7 @@ import com.dfsek.tectonic.config.Configuration;
import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.util.ProbabilityCollection;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.carving.CarverPalette;
@@ -24,7 +24,7 @@ public class CarverPaletteLoader implements TypeLoader<CarverPalette> {
CarverPalette palette = new CarverPalette((MaterialSet) configLoader.loadType(MaterialSet.class, configuration.get("replace")), (Boolean) configuration.get("replace-blacklist"));
for(Map<String, Object> map : (List<Map<String, Object>>) configuration.get("layers")) {
ProbabilityCollection<BlockData> layer = (ProbabilityCollection<BlockData>) configLoader.loadType(Types.BLOCK_DATA_PROBABILITY_COLLECTION_TYPE, map.get("materials"));
ProbabilityCollection<BlockState> layer = (ProbabilityCollection<BlockState>) configLoader.loadType(Types.BLOCK_DATA_PROBABILITY_COLLECTION_TYPE, map.get("materials"));
palette.add(layer, (Integer) map.get("y"));
}
palette.build();

View File

@@ -3,7 +3,7 @@ package com.dfsek.terra.config.loaders.palette;
import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
@@ -18,7 +18,7 @@ public class PaletteLayerLoader implements TypeLoader<PaletteLayerHolder> {
@Override
public PaletteLayerHolder load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
Map<String, Object> map = (Map<String, Object>) o;
ProbabilityCollection<BlockData> collection = (ProbabilityCollection<BlockData>) configLoader.loadType(Types.BLOCK_DATA_PROBABILITY_COLLECTION_TYPE, map.get("materials"));
ProbabilityCollection<BlockState> collection = (ProbabilityCollection<BlockState>) configLoader.loadType(Types.BLOCK_DATA_PROBABILITY_COLLECTION_TYPE, map.get("materials"));
NoiseSampler sampler = null;
if(map.containsKey("noise")) {

View File

@@ -3,7 +3,7 @@ package com.dfsek.terra.config.templates;
import com.dfsek.tectonic.annotations.Abstractable;
import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.collections.MaterialSet;
@@ -18,12 +18,12 @@ public class OreTemplate extends AbstractableTemplate {
@Value("material")
@Abstractable
private BlockData material;
private BlockState material;
@Value("material-overrides")
@Default
@Abstractable
private Map<BlockType, BlockData> materials = new HashMap<>();
private Map<BlockType, BlockState> materials = new HashMap<>();
@Value("replace")
@Abstractable
@@ -60,7 +60,7 @@ public class OreTemplate extends AbstractableTemplate {
return size;
}
public BlockData getMaterial() {
public BlockState getMaterial() {
return material;
}
@@ -76,7 +76,7 @@ public class OreTemplate extends AbstractableTemplate {
return id;
}
public Map<BlockType, BlockData> getMaterialOverrides() {
public Map<BlockType, BlockState> getMaterialOverrides() {
return materials;
}
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.world;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.event.events.world.TerraWorldLoadEvent;
import com.dfsek.terra.api.vector.Vector3;
@@ -19,7 +19,7 @@ public class TerraWorldImpl implements TerraWorld {
private final WorldConfigImpl config;
private final boolean safe;
private final World world;
private final BlockData air;
private final BlockState air;
public TerraWorldImpl(World w, ConfigPack c, TerraPlugin main) {
@@ -56,7 +56,7 @@ public class TerraWorldImpl implements TerraWorld {
@Override
public BlockData getUngeneratedBlock(int x, int y, int z) {
public BlockState getUngeneratedBlock(int x, int y, int z) {
UserDefinedBiome biome = (UserDefinedBiome) provider.getBiome(x, z);
Palette palette = biome.getGenerator(world).getPalette(y);
Sampler sampler = config.getSamplerCache().get(x, z);
@@ -76,7 +76,7 @@ public class TerraWorldImpl implements TerraWorld {
}
@Override
public BlockData getUngeneratedBlock(Vector3 v) {
public BlockState getUngeneratedBlock(Vector3 v) {
return getUngeneratedBlock(v.getBlockX(), v.getBlockY(), v.getBlockZ());
}
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.world.carving;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.world.ChunkAccess;
import com.dfsek.terra.api.world.World;
@@ -11,10 +11,10 @@ import com.dfsek.terra.world.generation.math.interpolation.ChunkInterpolator3D;
public class NoiseCarver implements Carver {
private final Range range;
private final BlockData data;
private final BlockState data;
private final TerraPlugin main;
public NoiseCarver(Range range, BlockData data, TerraPlugin main) {
public NoiseCarver(Range range, BlockState data, TerraPlugin main) {
this.range = range;
this.data = data;
this.main = main;

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.world.generation.generators;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.math.range.ConstantRange;
import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.api.util.PaletteUtil;
@@ -92,7 +92,7 @@ public class DefaultChunkGenerator2D implements TerraChunkGenerator {
int height = FastMath.min((int) sampler.sample(x, 0, z), world.getMaxHeight() - 1);
for(int y = FastMath.max(height, c.getSeaLevel()); y >= 0; y--) {
BlockData data = y > height ? seaPalette.get(seaPaletteLevel++, cx, y, cz) : PaletteUtil.getPalette(x, y, z, c, sampler).get(paletteLevel++, cx, y, cz);
BlockState data = y > height ? seaPalette.get(seaPaletteLevel++, cx, y, cz) : PaletteUtil.getPalette(x, y, z, c, sampler).get(paletteLevel++, cx, y, cz);
chunk.setBlock(x, y, z, data);
}
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.world.generation.generators;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.BlockFace;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.block.data.Bisected;
@@ -103,7 +103,7 @@ public class DefaultChunkGenerator3D implements TerraChunkGenerator {
Palette seaPalette = c.getOceanPalette();
boolean justSet = false;
BlockData data = null;
BlockState data = null;
for(int y = world.getMaxHeight() - 1; y >= world.getMinHeight(); y--) {
if(sampler.sample(x, y, z) > 0) {
justSet = true;
@@ -138,20 +138,20 @@ public class DefaultChunkGenerator3D implements TerraChunkGenerator {
}
}
private void prepareBlockPartFloor(BlockData down, BlockData orig, ChunkData chunk, Vector3 block, Map<BlockType, Palette> slabs,
private void prepareBlockPartFloor(BlockState down, BlockState orig, ChunkData chunk, Vector3 block, Map<BlockType, Palette> slabs,
Map<BlockType, Palette> stairs, double thresh, Sampler sampler) {
if(sampler.sample(block.getX(), block.getY() - 0.4, block.getZ()) > thresh) {
if(stairs != null) {
Palette stairPalette = stairs.get(down.getBlockType());
if(stairPalette != null) {
BlockData stair = stairPalette.get(0, block.getX(), block.getY(), block.getZ()).clone();
BlockState stair = stairPalette.get(0, block.getX(), block.getY(), block.getZ()).clone();
if(stair instanceof Stairs) {
Stairs stairNew = (Stairs) stair;
if(placeStair(orig, chunk, block, thresh, sampler, stairNew)) return; // Successfully placed part.
}
}
}
BlockData slab = slabs.getOrDefault(down.getBlockType(), blank).get(0, block.getX(), block.getY(), block.getZ());
BlockState slab = slabs.getOrDefault(down.getBlockType(), blank).get(0, block.getX(), block.getY(), block.getZ());
if(slab instanceof Waterlogged) {
((Waterlogged) slab).setWaterlogged(orig.getBlockType().equals(water));
} else if(orig.getBlockType().equals(water)) return;
@@ -159,13 +159,13 @@ public class DefaultChunkGenerator3D implements TerraChunkGenerator {
}
}
private void prepareBlockPartCeiling(BlockData up, BlockData orig, ChunkData chunk, Vector3 block, Map<BlockType, Palette> slabs,
private void prepareBlockPartCeiling(BlockState up, BlockState orig, ChunkData chunk, Vector3 block, Map<BlockType, Palette> slabs,
Map<BlockType, Palette> stairs, double thresh, Sampler sampler) {
if(sampler.sample(block.getX(), block.getY() + 0.4, block.getZ()) > thresh) {
if(stairs != null) {
Palette stairPalette = stairs.get(up.getBlockType());
if(stairPalette != null) {
BlockData stair = stairPalette.get(0, block.getX(), block.getY(), block.getZ()).clone();
BlockState stair = stairPalette.get(0, block.getX(), block.getY(), block.getZ()).clone();
if(stair instanceof Stairs) {
Stairs stairNew = (Stairs) stair.clone();
stairNew.setHalf(Bisected.Half.TOP);
@@ -173,7 +173,7 @@ public class DefaultChunkGenerator3D implements TerraChunkGenerator {
}
}
}
BlockData slab = slabs.getOrDefault(up.getBlockType(), blank).get(0, block.getX(), block.getY(), block.getZ()).clone();
BlockState slab = slabs.getOrDefault(up.getBlockType(), blank).get(0, block.getX(), block.getY(), block.getZ()).clone();
if(slab instanceof Bisected) ((Bisected) slab).setHalf(Bisected.Half.TOP);
if(slab instanceof Slab) ((Slab) slab).setType(Slab.Type.TOP);
if(slab instanceof Waterlogged) {
@@ -183,7 +183,7 @@ public class DefaultChunkGenerator3D implements TerraChunkGenerator {
}
}
private boolean placeStair(BlockData orig, ChunkData chunk, Vector3 block, double thresh, Sampler sampler, Stairs stairNew) {
private boolean placeStair(BlockState orig, ChunkData chunk, Vector3 block, double thresh, Sampler sampler, Stairs stairNew) {
if(sampler.sample(block.getBlockX() - 0.55, block.getY(), block.getZ()) > thresh) {

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.world.population;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.config.WorldConfig;
import com.dfsek.terra.api.handle.WorldHandle;
@@ -22,7 +22,7 @@ import java.util.Map;
import java.util.Random;
public class CavePopulator implements TerraBlockPopulator, Chunkified {
private static final Map<BlockType, BlockData> shiftStorage = new HashMap<>(); // Persist BlockData created for shifts, to avoid re-calculating each time.
private static final Map<BlockType, BlockState> shiftStorage = new HashMap<>(); // Persist BlockData created for shifts, to avoid re-calculating each time.
private final TerraPlugin main;
public CavePopulator(TerraPlugin main) {
@@ -34,7 +34,7 @@ public class CavePopulator implements TerraBlockPopulator, Chunkified {
public void populate(@NotNull World world, @NotNull Chunk chunk) {
TerraWorld tw = main.getWorld(world);
WorldHandle handle = main.getWorldHandle();
BlockData AIR = handle.createBlockData("minecraft:air");
BlockState AIR = handle.createBlockData("minecraft:air");
try(ProfileFrame ignore = main.getProfiler().profile("carving")) {
Random random = PopulationUtil.getRandom(chunk);
if(!tw.isSafe()) return;
@@ -43,10 +43,10 @@ public class CavePopulator implements TerraBlockPopulator, Chunkified {
for(UserDefinedCarver c : config.getRegistry(UserDefinedCarver.class).entries()) {
CarverTemplate template = c.getConfig();
Map<Vector3, BlockData> shiftCandidate = new HashMap<>();
Map<Vector3, BlockState> shiftCandidate = new HashMap<>();
c.carve(chunk.getX(), chunk.getZ(), world, (v, type) -> {
try(ProfileFrame ignored = main.getProfiler().profile("carving:" + c.getConfig().getID())) {
BlockData m = chunk.getBlock(v.getBlockX(), v.getBlockY(), v.getBlockZ());
BlockState m = chunk.getBlock(v.getBlockX(), v.getBlockY(), v.getBlockZ());
BlockType re = m.getBlockType();
switch(type) {
case CENTER:
@@ -76,10 +76,10 @@ public class CavePopulator implements TerraBlockPopulator, Chunkified {
}
}
});
for(Map.Entry<Vector3, BlockData> entry : shiftCandidate.entrySet()) {
for(Map.Entry<Vector3, BlockState> entry : shiftCandidate.entrySet()) {
Vector3 l = entry.getKey();
Vector3 mut = l.clone();
BlockData orig = chunk.getBlock(l.getBlockX(), l.getBlockY(), l.getBlockZ());
BlockState orig = chunk.getBlock(l.getBlockX(), l.getBlockY(), l.getBlockZ());
do mut.subtract(0, 1, 0);
while(mut.getY() > world.getMinHeight() && chunk.getBlock(mut.getBlockX(), mut.getBlockY(), mut.getBlockZ()).matches(orig));
try {

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.world.population.items.flora;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.BlockFace;
import com.dfsek.terra.api.block.data.Directional;
import com.dfsek.terra.api.block.data.MultipleFacing;
@@ -105,7 +105,7 @@ public class TerraFlora implements Flora {
for(int i = 0; FastMath.abs(i) < size; i += c) { // Down if ceiling, up if floor
int lvl = (FastMath.abs(i));
BlockData data = floraPalette.get((ceiling ? lvl : size - lvl - 1), location.getX(), location.getY(), location.getZ()).clone();
BlockState data = floraPalette.get((ceiling ? lvl : size - lvl - 1), location.getX(), location.getY(), location.getZ()).clone();
if(doRotation) {
BlockFace oneFace = faces.get(new FastRandom(location.getBlockX() ^ location.getBlockZ()).nextInt(faces.size())); // Get random face.
if(data instanceof Directional) {

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.world.population.items.ores;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.util.collections.MaterialSet;
import com.dfsek.terra.api.world.Chunk;
@@ -12,13 +12,13 @@ import java.util.Random;
public abstract class Ore {
private final BlockData material;
private final BlockState material;
private final MaterialSet replaceable;
private final boolean applyGravity;
protected TerraPlugin main;
private final Map<BlockType, BlockData> materials;
private final Map<BlockType, BlockState> materials;
public Ore(BlockData material, MaterialSet replaceable, boolean applyGravity, TerraPlugin main, Map<BlockType, BlockData> materials) {
public Ore(BlockState material, MaterialSet replaceable, boolean applyGravity, TerraPlugin main, Map<BlockType, BlockState> materials) {
this.material = material;
this.replaceable = replaceable;
this.applyGravity = applyGravity;
@@ -28,7 +28,7 @@ public abstract class Ore {
public abstract void generate(Vector3Impl origin, Chunk c, Random r);
public BlockData getMaterial(BlockType replace) {
public BlockState getMaterial(BlockType replace) {
return materials.getOrDefault(replace, material);
}

View File

@@ -1,7 +1,7 @@
package com.dfsek.terra.world.population.items.ores;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.block.BlockData;
import com.dfsek.terra.api.block.BlockState;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.collections.MaterialSet;
@@ -16,7 +16,7 @@ import java.util.Random;
public class VanillaOre extends Ore {
private final Range sizeRange;
public VanillaOre(BlockData material, MaterialSet replaceable, boolean applyGravity, Range size, TerraPlugin main, Map<BlockType, BlockData> materials) {
public VanillaOre(BlockState material, MaterialSet replaceable, boolean applyGravity, Range size, TerraPlugin main, Map<BlockType, BlockState> materials) {
super(material, replaceable, applyGravity, main, materials);
this.sizeRange = size;
}