mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-10 09:46:24 +00:00
Reimplement fractal trees
This commit is contained in:
@@ -6,6 +6,7 @@ import com.dfsek.terra.api.generic.TerraPlugin;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.block.MaterialData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.util.MaterialSet;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -18,9 +19,11 @@ import java.util.function.Consumer;
|
||||
public abstract class FractalTree {
|
||||
private final Map<Location, BlockData> treeAssembler = new HashMap<>();
|
||||
private final List<EntitySpawnHolder> entities = new GlueList<>();
|
||||
private final Location origin;
|
||||
private final Random random;
|
||||
private final TerraPlugin main;
|
||||
protected final Location origin;
|
||||
protected final Random random;
|
||||
protected final TerraPlugin main;
|
||||
|
||||
public abstract MaterialSet getSpawnable();
|
||||
|
||||
/**
|
||||
* Instantiates a TreeGrower at an origin location.
|
||||
|
||||
@@ -4,10 +4,17 @@ import com.dfsek.terra.api.gaea.tree.fractal.FractalTree;
|
||||
import com.dfsek.terra.api.generic.TerraPlugin;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.util.MaterialSet;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class Cactus extends FractalTree {
|
||||
@Override
|
||||
public MaterialSet getSpawnable() {
|
||||
return MaterialSet.get(main.getWorldHandle().createMaterialData("minecraft:sand"),
|
||||
main.getWorldHandle().createMaterialData("minecraft:red_sand"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a TreeGrower at an origin location.
|
||||
*
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.api.generic.world.vector.Vector3;
|
||||
import com.dfsek.terra.util.MaterialSet;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@@ -16,6 +17,14 @@ public class IceSpike extends FractalTree {
|
||||
private final TreeGeometry geo;
|
||||
private final ProbabilityCollection<BlockData> ice;
|
||||
|
||||
@Override
|
||||
public MaterialSet getSpawnable() {
|
||||
return MaterialSet.get(main.getWorldHandle().createMaterialData("minecraft:stone"),
|
||||
main.getWorldHandle().createMaterialData("minecraft:gravel"),
|
||||
main.getWorldHandle().createMaterialData("minecraft:snow_block"),
|
||||
main.getWorldHandle().createMaterialData("minecraft:grass_block"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a TreeGrower at an origin location.
|
||||
*
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.dfsek.terra.api.generic.TerraPlugin;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.api.generic.world.vector.Vector3;
|
||||
import com.dfsek.terra.util.MaterialSet;
|
||||
import net.jafama.FastMath;
|
||||
|
||||
import java.util.Random;
|
||||
@@ -14,6 +15,12 @@ import java.util.Random;
|
||||
public class OakTree extends FractalTree {
|
||||
private final TreeGeometry geo;
|
||||
|
||||
@Override
|
||||
public MaterialSet getSpawnable() {
|
||||
return MaterialSet.get(main.getWorldHandle().createMaterialData("minecraft:podzol"),
|
||||
main.getWorldHandle().createMaterialData("minecraft:grass_block"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a TreeGrower at an origin location.
|
||||
*
|
||||
|
||||
@@ -4,10 +4,17 @@ import com.dfsek.terra.api.gaea.tree.fractal.FractalTree;
|
||||
import com.dfsek.terra.api.generic.TerraPlugin;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.util.MaterialSet;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ShatteredPillar extends FractalTree {
|
||||
|
||||
@Override
|
||||
public MaterialSet getSpawnable() {
|
||||
return MaterialSet.get(main.getWorldHandle().createMaterialData("minecraft:end_stone"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a TreeGrower at an origin location.
|
||||
*
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.api.generic.world.vector.Vector3;
|
||||
import com.dfsek.terra.util.MaterialSet;
|
||||
import net.jafama.FastMath;
|
||||
|
||||
import java.util.Random;
|
||||
@@ -17,6 +18,11 @@ public class ShatteredTree extends FractalTree {
|
||||
private final ProbabilityCollection<BlockData> bark;
|
||||
private final ProbabilityCollection<BlockData> leaves;
|
||||
|
||||
@Override
|
||||
public MaterialSet getSpawnable() {
|
||||
return MaterialSet.get(main.getWorldHandle().createMaterialData("minecraft:end_stone"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a TreeGrower at an origin location.
|
||||
*
|
||||
|
||||
@@ -4,10 +4,17 @@ import com.dfsek.terra.api.gaea.tree.fractal.FractalTree;
|
||||
import com.dfsek.terra.api.generic.TerraPlugin;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.util.MaterialSet;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class SmallShatteredPillar extends FractalTree {
|
||||
|
||||
@Override
|
||||
public MaterialSet getSpawnable() {
|
||||
return MaterialSet.get(main.getWorldHandle().createMaterialData("minecraft:end_stone"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a TreeGrower at an origin location.
|
||||
*
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.dfsek.terra.api.generic.world.WorldHandle;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.api.generic.world.vector.Vector3;
|
||||
import com.dfsek.terra.util.MaterialSet;
|
||||
import net.jafama.FastMath;
|
||||
|
||||
import java.util.Random;
|
||||
@@ -17,6 +18,11 @@ public class SmallShatteredTree extends FractalTree {
|
||||
private final ProbabilityCollection<BlockData> bark;
|
||||
private final ProbabilityCollection<BlockData> leaves;
|
||||
|
||||
@Override
|
||||
public MaterialSet getSpawnable() {
|
||||
return MaterialSet.get(main.getWorldHandle().createMaterialData("minecraft:end_stone"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a TreeGrower at an origin location.
|
||||
*
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.dfsek.terra.api.generic.TerraPlugin;
|
||||
import com.dfsek.terra.api.generic.world.block.BlockData;
|
||||
import com.dfsek.terra.api.generic.world.vector.Location;
|
||||
import com.dfsek.terra.api.generic.world.vector.Vector3;
|
||||
import com.dfsek.terra.util.MaterialSet;
|
||||
import net.jafama.FastMath;
|
||||
|
||||
import java.util.Random;
|
||||
@@ -13,6 +14,12 @@ import java.util.Random;
|
||||
public class SpruceTree extends FractalTree {
|
||||
private final TreeGeometry geo;
|
||||
|
||||
@Override
|
||||
public MaterialSet getSpawnable() {
|
||||
return MaterialSet.get(main.getWorldHandle().createMaterialData("minecraft:podzol"),
|
||||
main.getWorldHandle().createMaterialData("minecraft:grass_block"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a TreeGrower at an origin location.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user