From 1360994a67f6f9390524591cce02d920a565c4db Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 29 Mar 2021 11:56:16 -0700 Subject: [PATCH] Add options to disable default populators --- .../terra/config/pack/ConfigPackTemplate.java | 40 +++++++++++++++++++ .../terra/world/population/CavePopulator.java | 1 + .../world/population/FloraPopulator.java | 2 + .../terra/world/population/OrePopulator.java | 2 + .../world/population/StructurePopulator.java | 2 + .../terra/world/population/TreePopulator.java | 2 + 6 files changed, 49 insertions(+) diff --git a/common/src/main/java/com/dfsek/terra/config/pack/ConfigPackTemplate.java b/common/src/main/java/com/dfsek/terra/config/pack/ConfigPackTemplate.java index c49d2b667..bfebcb717 100644 --- a/common/src/main/java/com/dfsek/terra/config/pack/ConfigPackTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/pack/ConfigPackTemplate.java @@ -73,6 +73,46 @@ public class ConfigPackTemplate implements ConfigTemplate { @Default private String version = "0.1.0"; + @Value("disable.carvers") + @Default + private boolean disableCarvers = false; + + @Value("disable.structures") + @Default + private boolean disableStructures = false; + + @Value("disable.ores") + @Default + private boolean disableOres = false; + + @Value("disable.trees") + @Default + private boolean disableTrees = false; + + @Value("disable.flora") + @Default + private boolean disableFlora = false; + + public boolean disableCarvers() { + return disableCarvers; + } + + public boolean disableFlora() { + return disableFlora; + } + + public boolean disableOres() { + return disableOres; + } + + public boolean disableStructures() { + return disableStructures; + } + + public boolean disableTrees() { + return disableTrees; + } + public LinkedHashMap getFunctions() { return functions; } diff --git a/common/src/main/java/com/dfsek/terra/world/population/CavePopulator.java b/common/src/main/java/com/dfsek/terra/world/population/CavePopulator.java index 53bd28d13..ee3aa0553 100644 --- a/common/src/main/java/com/dfsek/terra/world/population/CavePopulator.java +++ b/common/src/main/java/com/dfsek/terra/world/population/CavePopulator.java @@ -42,6 +42,7 @@ public class CavePopulator implements TerraBlockPopulator, Chunkified { Random random = PopulationUtil.getRandom(chunk); if(!tw.isSafe()) return; WorldConfig config = tw.getConfig(); + if(config.getTemplate().disableCarvers()) return; for(UserDefinedCarver c : config.getCarvers()) { CarverTemplate template = c.getConfig(); diff --git a/common/src/main/java/com/dfsek/terra/world/population/FloraPopulator.java b/common/src/main/java/com/dfsek/terra/world/population/FloraPopulator.java index 281854cce..4bb62c2db 100644 --- a/common/src/main/java/com/dfsek/terra/world/population/FloraPopulator.java +++ b/common/src/main/java/com/dfsek/terra/world/population/FloraPopulator.java @@ -33,6 +33,8 @@ public class FloraPopulator implements TerraBlockPopulator { public void populate(@NotNull World world, @NotNull Chunk chunk) { TerraWorld tw = main.getWorld(world); try(ProfileFuture ignored = tw.getProfiler().measure("FloraTime")) { + if(tw.getConfig().getTemplate().disableCarvers()) return; + if(!tw.isSafe()) return; BiomeProvider provider = tw.getBiomeProvider(); Map> layers = new HashMap<>(); diff --git a/common/src/main/java/com/dfsek/terra/world/population/OrePopulator.java b/common/src/main/java/com/dfsek/terra/world/population/OrePopulator.java index a67944409..d6a0f7779 100644 --- a/common/src/main/java/com/dfsek/terra/world/population/OrePopulator.java +++ b/common/src/main/java/com/dfsek/terra/world/population/OrePopulator.java @@ -28,6 +28,8 @@ public class OrePopulator implements TerraBlockPopulator { public void populate(@NotNull World world, @NotNull Chunk chunk) { TerraWorld tw = main.getWorld(world); try(ProfileFuture ignored = tw.getProfiler().measure("OreTime")) { + if(tw.getConfig().getTemplate().disableCarvers()) return; + if(!tw.isSafe()) return; for(int cx = -1; cx <= 1; cx++) { for(int cz = -1; cz <= 1; cz++) { diff --git a/common/src/main/java/com/dfsek/terra/world/population/StructurePopulator.java b/common/src/main/java/com/dfsek/terra/world/population/StructurePopulator.java index 6dc3f3379..4a0ae6826 100644 --- a/common/src/main/java/com/dfsek/terra/world/population/StructurePopulator.java +++ b/common/src/main/java/com/dfsek/terra/world/population/StructurePopulator.java @@ -33,6 +33,8 @@ public class StructurePopulator implements TerraBlockPopulator, Chunkified { public void populate(@NotNull World world, @NotNull Chunk chunk) { TerraWorld tw = main.getWorld(world); try(ProfileFuture ignored = tw.getProfiler().measure("StructureTime")) { + if(tw.getConfig().getTemplate().disableCarvers()) return; + int cx = (chunk.getX() << 4); int cz = (chunk.getZ() << 4); if(!tw.isSafe()) return; diff --git a/common/src/main/java/com/dfsek/terra/world/population/TreePopulator.java b/common/src/main/java/com/dfsek/terra/world/population/TreePopulator.java index 82bf925c7..5700da165 100644 --- a/common/src/main/java/com/dfsek/terra/world/population/TreePopulator.java +++ b/common/src/main/java/com/dfsek/terra/world/population/TreePopulator.java @@ -33,6 +33,8 @@ public class TreePopulator implements TerraBlockPopulator { public void populate(@NotNull World world, @NotNull Chunk chunk) { TerraWorld tw = main.getWorld(world); try(ProfileFuture ignored = tw.getProfiler().measure("TreeTime")) { + if(tw.getConfig().getTemplate().disableCarvers()) return; + if(!tw.isSafe()) return; BiomeProvider provider = tw.getBiomeProvider(); Random random = PopulationUtil.getRandom(chunk);