mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-08-30 13:50:46 +00:00
carvers
This commit is contained in:
@@ -1,11 +1,13 @@
|
|||||||
package com.dfsek.terra.carving;
|
package com.dfsek.terra.carving;
|
||||||
|
|
||||||
import com.dfsek.terra.TerraWorld;
|
import com.dfsek.terra.TerraWorld;
|
||||||
import com.dfsek.terra.config.base.ConfigPack;
|
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||||
|
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||||
import com.dfsek.terra.config.templates.CarverTemplate;
|
import com.dfsek.terra.config.templates.CarverTemplate;
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
import org.polydev.gaea.generation.GenerationPhase;
|
||||||
import org.polydev.gaea.math.Range;
|
import org.polydev.gaea.math.Range;
|
||||||
import org.polydev.gaea.util.FastRandom;
|
import org.polydev.gaea.util.FastRandom;
|
||||||
import org.polydev.gaea.world.carving.Carver;
|
import org.polydev.gaea.world.carving.Carver;
|
||||||
@@ -60,9 +62,11 @@ public class UserDefinedCarver extends Carver {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isChunkCarved(World w, int chunkX, int chunkZ, Random random) {
|
public boolean isChunkCarved(World w, int chunkX, int chunkZ, Random random) {
|
||||||
ConfigPack c = TerraWorld.getWorld(w).getConfig();
|
BiomeTemplate conf = ((UserDefinedBiome) TerraWorld.getWorld(w).getGrid().getBiome(chunkX << 4, chunkZ << 4, GenerationPhase.POPULATE)).getConfig();
|
||||||
|
if(conf.getCarvers().get(this) != null) {
|
||||||
|
return new FastRandom(random.nextLong() + hash).nextInt(100) < conf.getCarvers().get(this);
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
//return new FastRandom(random.nextLong() + hash).nextInt(100) < ((UserDefinedBiome) TerraWorld.getWorld(w).getGrid().getBiome(chunkX << 4, chunkZ << 4, GenerationPhase.POPULATE)).getConfig().getCarvers().get(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public CarverTemplate getConfig() {
|
public CarverTemplate getConfig() {
|
||||||
|
|||||||
@@ -76,7 +76,8 @@ public class ConfigPack {
|
|||||||
AbstractConfigLoader abstractConfigLoader = new AbstractConfigLoader();
|
AbstractConfigLoader abstractConfigLoader = new AbstractConfigLoader();
|
||||||
abstractConfigLoader
|
abstractConfigLoader
|
||||||
.registerLoader(Palette.class, paletteRegistry)
|
.registerLoader(Palette.class, paletteRegistry)
|
||||||
.registerLoader(Biome.class, biomeRegistry);
|
.registerLoader(Biome.class, biomeRegistry)
|
||||||
|
.registerLoader(UserDefinedCarver.class, carverRegistry);
|
||||||
ConfigUtil.registerAllLoaders(abstractConfigLoader);
|
ConfigUtil.registerAllLoaders(abstractConfigLoader);
|
||||||
|
|
||||||
List<PaletteTemplate> paletteTemplates = abstractConfigLoader.load(ConfigUtil.loadFromPath(new File(folder, "palettes").toPath()), PaletteTemplate::new);
|
List<PaletteTemplate> paletteTemplates = abstractConfigLoader.load(ConfigUtil.loadFromPath(new File(folder, "palettes").toPath()), PaletteTemplate::new);
|
||||||
|
|||||||
@@ -25,9 +25,10 @@ public class CarverPaletteLoader implements TypeLoader<CarverPalette> {
|
|||||||
CarverPalette palette = new CarverPalette((Set<Material>) configLoader.loadType(Types.MATERIAL_SET_TYPE, configuration.get("replace")), (Boolean) configuration.get("replace-blacklist"));
|
CarverPalette palette = new CarverPalette((Set<Material>) configLoader.loadType(Types.MATERIAL_SET_TYPE, configuration.get("replace")), (Boolean) configuration.get("replace-blacklist"));
|
||||||
|
|
||||||
for(Map<String, Object> map : (List<Map<String, Object>>) configuration.get("layers")) {
|
for(Map<String, Object> map : (List<Map<String, Object>>) configuration.get("layers")) {
|
||||||
ProbabilityCollection<BlockData> layer = (ProbabilityCollection<BlockData>) configLoader.loadType(Types.MATERIAL_PROBABILITY_COLLECTION_TYPE, map.get("materials"));
|
ProbabilityCollection<BlockData> layer = (ProbabilityCollection<BlockData>) configLoader.loadType(Types.BLOCK_DATA_PROBABILITY_COLLECTION_TYPE, map.get("materials"));
|
||||||
palette.add(layer, (Integer) map.get("y"));
|
palette.add(layer, (Integer) map.get("y"));
|
||||||
}
|
}
|
||||||
|
palette.build();
|
||||||
return palette;
|
return palette;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user