mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-11 02:06:07 +00:00
Implement ores, begin work on caves.
This commit is contained in:
16
src/main/java/com/dfsek/terra/population/CavePopulator.java
Normal file
16
src/main/java/com/dfsek/terra/population/CavePopulator.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.dfsek.terra.population;
|
||||
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.polydev.gaea.world.carving.Carver;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class CavePopulator extends BlockPopulator {
|
||||
@Override
|
||||
public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,19 @@
|
||||
package com.dfsek.terra.population;
|
||||
|
||||
import com.dfsek.terra.Terra;
|
||||
import com.dfsek.terra.TerraProfiler;
|
||||
import com.dfsek.terra.biome.TerraBiomeGrid;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.polydev.gaea.biome.Biome;
|
||||
import org.polydev.gaea.population.GaeaBlockPopulator;
|
||||
import org.polydev.gaea.profiler.ProfileFuture;
|
||||
import org.polydev.gaea.world.Fauna;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class FaunaPopulator extends BlockPopulator {
|
||||
public class FaunaPopulator extends GaeaBlockPopulator {
|
||||
@Override
|
||||
public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) {
|
||||
ProfileFuture fauna = TerraProfiler.fromWorld(world).measure("FaunaTime");
|
||||
@@ -23,9 +22,9 @@ public class FaunaPopulator extends BlockPopulator {
|
||||
Biome biome = TerraBiomeGrid.fromWorld(world).getBiome((chunk.getX() << 4) + x, (chunk.getZ() << 4) + z);
|
||||
if(biome.getDecorator().getFaunaChance() <= 0 || random.nextInt(100) > biome.getDecorator().getFaunaChance())
|
||||
continue;
|
||||
Fauna item = biome.getDecorator().getFauna().get(random);
|
||||
Block highest = item.getHighestValidSpawnAt(chunk, x, z);
|
||||
try {
|
||||
Fauna item = biome.getDecorator().getFauna().get(random);
|
||||
Block highest = item.getHighestValidSpawnAt(chunk, x, z);
|
||||
if(highest != null) item.plant(highest.getLocation());
|
||||
} catch(NullPointerException ignored) {}
|
||||
}
|
||||
|
||||
34
src/main/java/com/dfsek/terra/population/OrePopulator.java
Normal file
34
src/main/java/com/dfsek/terra/population/OrePopulator.java
Normal file
@@ -0,0 +1,34 @@
|
||||
package com.dfsek.terra.population;
|
||||
|
||||
import com.dfsek.terra.biome.BiomeZone;
|
||||
import com.dfsek.terra.biome.TerraBiomeGrid;
|
||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||
import com.dfsek.terra.config.BiomeConfig;
|
||||
import com.dfsek.terra.config.OreConfig;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.polydev.gaea.biome.Biome;
|
||||
import org.polydev.gaea.population.GaeaBlockPopulator;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
public class OrePopulator extends GaeaBlockPopulator {
|
||||
@Override
|
||||
public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) {
|
||||
Location l = chunk.getBlock(8, 0, 0).getLocation();
|
||||
Biome b = TerraBiomeGrid.fromWorld(world).getBiome(l.getBlockX(), l.getBlockZ());
|
||||
for(Map.Entry<OreConfig, BiomeConfig.MaxMin> e : ((UserDefinedBiome) b).getConfig().getOres().entrySet()) {
|
||||
int num = e.getValue().get(random);
|
||||
for(int i = 0; i < num; i++) {
|
||||
int x = random.nextInt(16);
|
||||
int z = random.nextInt(16);
|
||||
int y = ((UserDefinedBiome) b).getConfig().getOreHeight(e.getKey()).get(random);
|
||||
e.getKey().doVein(chunk.getBlock(x, y, z).getLocation(), random);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,11 +17,6 @@ import org.polydev.gaea.util.WorldUtil;
|
||||
import java.util.Random;
|
||||
|
||||
public class TreePopulator extends GaeaBlockPopulator {
|
||||
|
||||
public TreePopulator(PopulationManager manager) {
|
||||
super(manager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void populate(@NotNull World world, @NotNull Random random, @NotNull Chunk chunk) {
|
||||
ProfileFuture tree = TerraProfiler.fromWorld(world).measure("TreeGenTime");
|
||||
|
||||
Reference in New Issue
Block a user