Basic 3D interpolated terrain implementation

This commit is contained in:
dfsek
2020-09-08 02:43:33 -07:00
parent 9ed7616d4a
commit affef6196d
14 changed files with 331 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
package com.dfsek.terra.biome;
import com.dfsek.terra.biome.generators.MountainGenerator;
import org.polydev.gaea.biome.Biome;
import org.polydev.gaea.biome.BiomeTerrain;
import org.polydev.gaea.biome.Decorator;
import org.polydev.gaea.structures.features.Feature;
import java.util.List;
public enum TerraBiome implements Biome {
PLAINS(null), MOUNTAINS(new MountainGenerator());
private BiomeTerrain t;
TerraBiome(BiomeTerrain t) {
this.t = t;
}
public org.bukkit.block.Biome getVanillaBiome() {
return org.bukkit.block.Biome.PLAINS;
}
public BiomeTerrain getGenerator() {
return t;
}
public List<Feature> getStructureFeatures() {
return null;
}
public Decorator getDecorator() {
return null;
}
}

View File

@@ -0,0 +1,29 @@
package com.dfsek.terra.biome;
import org.bukkit.World;
import org.polydev.gaea.biome.BiomeGrid;
public class TerraBiomeGrid extends BiomeGrid {
private final TerraBiome[][] grid = new TerraBiome[][] {
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS},
{TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS, TerraBiome.MOUNTAINS}};
public TerraBiomeGrid(World w) {
super(w, 1f/256, 1f/512);
super.setGrid(grid);
}
}

View File

@@ -0,0 +1,21 @@
package com.dfsek.terra.biome.generators;
import org.bukkit.Material;
import org.polydev.gaea.biome.BiomeTerrain;
import org.polydev.gaea.math.FastNoise;
import org.polydev.gaea.world.BlockPalette;
public class MountainGenerator extends BiomeTerrain {
private final BlockPalette p = new BlockPalette().add(Material.STONE, 1);
public double getNoise(FastNoise fastNoise, int i, int i1) {
return 0;
}
public double getNoise(FastNoise fastNoise, int x, int y, int z) {
return (-Math.pow((float)y/96, 2))+1D + (fastNoise.getSimplexFractal(x, y, z)/2);
}
public BlockPalette getPalette() {
return p;
}
}