working flora populator impl

This commit is contained in:
dfsek
2021-07-14 10:27:14 -07:00
parent 7a38284158
commit 089af42623
20 changed files with 116 additions and 35 deletions

View File

@@ -30,6 +30,7 @@ import com.dfsek.terra.api.util.generic.pair.ImmutablePair;
import com.dfsek.terra.api.util.seeded.BiomeProviderBuilder;
import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
import com.dfsek.terra.config.dummy.DummyWorld;
import com.dfsek.terra.config.fileloaders.FolderLoader;
import com.dfsek.terra.config.fileloaders.ZIPLoader;
@@ -243,7 +244,7 @@ public class ConfigPackImpl implements ConfigPack {
try {
Object loaded = ((ConfigFactory) configType.getFactory()).build(selfLoader.load(configType.getTemplate(this, main), config), main);
registry.register(config.getID(), loaded);
main.getEventManager().callEvent(new ConfigLoadEvent(this, config, template -> selfLoader.load(template, configuration), configType, loaded));
main.getEventManager().callEvent(new ConfigLoadEvent(this, config, template -> selfLoader.load(template, config), configType, loaded));
} catch(DuplicateEntryException e) {
throw new LoadException("Duplicate registry entry: ", e);
}
@@ -306,6 +307,11 @@ public class ConfigPackImpl implements ConfigPack {
return new WorldConfigImpl(world, this, main);
}
@Override
public List<GenerationStageProvider> getStages() {
return template.getStages();
}
@Override
public void registerConfigType(ConfigType<?, ?> type, String id, int priority) {
Set<String> contained = new HashSet<>();

View File

@@ -8,6 +8,7 @@ import com.dfsek.terra.api.world.generator.GenerationStageProvider;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@SuppressWarnings({"unused", "FieldMayBeFinal"})
@@ -56,7 +57,7 @@ public class ConfigPackTemplate implements ConfigTemplate {
private boolean disableSaplings = false;
@Value("stages")
private LinkedHashMap<String, GenerationStageProvider> stages;
private List<GenerationStageProvider> stages;
@Value("version")
@Default
@@ -89,7 +90,7 @@ public class ConfigPackTemplate implements ConfigTemplate {
return generatorProvider;
}
public LinkedHashMap<String, GenerationStageProvider> getStages() {
public List<GenerationStageProvider> getStages() {
return stages;
}

View File

@@ -8,12 +8,18 @@ import com.dfsek.terra.api.util.seeded.BiomeBuilder;
import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.GenerationStage;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
import com.dfsek.terra.api.world.generator.SamplerCache;
import com.dfsek.terra.api.world.generator.TerraGenerationStage;
import com.dfsek.terra.registry.LockedRegistryImpl;
import com.dfsek.terra.registry.OpenRegistryImpl;
import com.dfsek.terra.world.SamplerCacheImpl;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class WorldConfigImpl implements WorldConfig {

View File

@@ -17,7 +17,6 @@ import net.jafama.FastMath;
public class TerraWorldImpl implements TerraWorld {
private final BiomeProvider provider;
private final WorldConfigImpl config;
private final boolean safe;
private final World world;
private final BlockState air;
@@ -29,7 +28,6 @@ public class TerraWorldImpl implements TerraWorld {
this.provider = config.getProvider();
main.getEventManager().callEvent(new TerraWorldLoadEvent(this, c));
this.air = main.getWorldHandle().air();
safe = true;
}
@@ -49,11 +47,6 @@ public class TerraWorldImpl implements TerraWorld {
return config;
}
@Override
public boolean isSafe() {
return safe;
}
@Override
public BlockState getUngeneratedBlock(int x, int y, int z) {