split flora addon into separate config and generation addons

This commit is contained in:
dfsek 2021-07-17 13:25:00 -07:00
parent 3ec536dc03
commit 53b5ee2ca9
10 changed files with 24 additions and 27 deletions

View File

@ -1,7 +1,6 @@
package com.dfsek.terra.addons.flora; package com.dfsek.terra.addons.flora;
import com.dfsek.terra.addons.flora.config.BlockLayerTemplate; import com.dfsek.terra.addons.flora.config.BlockLayerTemplate;
import com.dfsek.terra.addons.flora.flora.FloraLayer;
import com.dfsek.terra.addons.flora.flora.gen.BlockLayer; import com.dfsek.terra.addons.flora.flora.gen.BlockLayer;
import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.addon.TerraAddon;
@ -9,12 +8,9 @@ import com.dfsek.terra.api.addon.annotations.Addon;
import com.dfsek.terra.api.addon.annotations.Author; import com.dfsek.terra.api.addon.annotations.Author;
import com.dfsek.terra.api.addon.annotations.Version; import com.dfsek.terra.api.addon.annotations.Version;
import com.dfsek.terra.api.event.EventListener; import com.dfsek.terra.api.event.EventListener;
import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.registry.exception.DuplicateEntryException; import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
@Addon("config-flora") @Addon("config-flora")
@Author("Terra") @Author("Terra")
@ -30,14 +26,6 @@ public class FloraAddon extends TerraAddon implements EventListener {
public void onPackLoad(ConfigPackPreLoadEvent event) throws DuplicateEntryException { public void onPackLoad(ConfigPackPreLoadEvent event) throws DuplicateEntryException {
event.getPack().registerConfigType(new FloraConfigType(event.getPack()), "FLORA", 2); event.getPack().registerConfigType(new FloraConfigType(event.getPack()), "FLORA", 2);
event.getPack().getOrCreateRegistry(GenerationStageProvider.class).register("FLORA", pack -> new FloraPopulator(main)); event.getPack().applyLoader(BlockLayer.class, BlockLayerTemplate::new);
event.getPack().applyLoader(FloraLayer.class, FloraLayerLoader::new)
.applyLoader(BlockLayer.class, BlockLayerTemplate::new);
}
public void onBiomeLoad(ConfigurationLoadEvent event) {
if(BiomeBuilder.class.isAssignableFrom(event.getType().getTypeClass())) {
event.getLoadedObject(BiomeBuilder.class).getContext().put(event.load(new BiomeFloraTemplate()).get());
}
} }
} }

View File

@ -1,6 +1,6 @@
package com.dfsek.terra.addons.flora; package com.dfsek.terra.addons.flora;
import com.dfsek.terra.addons.flora.flora.TerraFlora; import com.dfsek.terra.addons.flora.flora.gen.TerraFlora;
import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.config.ConfigFactory; import com.dfsek.terra.api.config.ConfigFactory;
import com.dfsek.terra.api.world.Flora; import com.dfsek.terra.api.world.Flora;

View File

@ -3,8 +3,8 @@ package com.dfsek.terra.addons.flora;
import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Final; import com.dfsek.tectonic.annotations.Final;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.flora.flora.TerraFlora;
import com.dfsek.terra.addons.flora.flora.gen.BlockLayer; import com.dfsek.terra.addons.flora.flora.gen.BlockLayer;
import com.dfsek.terra.addons.flora.flora.gen.TerraFlora;
import com.dfsek.terra.api.config.AbstractableTemplate; import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.util.collection.MaterialSet; import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.util.seeded.NoiseSeeded;

View File

@ -1,4 +1,4 @@
package com.dfsek.terra.addons.flora.flora; package com.dfsek.terra.addons.flora.flora.gen;
import com.dfsek.terra.addons.flora.flora.gen.BlockLayer; import com.dfsek.terra.addons.flora.flora.gen.BlockLayer;
import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.TerraPlugin;

View File

@ -1,6 +1,5 @@
package com.dfsek.terra.addons.flora; package com.dfsek.terra.addons.generation.flora;
import com.dfsek.terra.addons.flora.flora.FloraLayer;
import com.dfsek.terra.api.properties.Properties; import com.dfsek.terra.api.properties.Properties;
import java.util.List; import java.util.List;

View File

@ -1,10 +1,8 @@
package com.dfsek.terra.addons.flora; package com.dfsek.terra.addons.generation.flora;
import com.dfsek.tectonic.annotations.Default; import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.tectonic.loading.object.ObjectTemplate; import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.addons.flora.flora.FloraLayer;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;

View File

@ -6,7 +6,11 @@ import com.dfsek.terra.api.addon.annotations.Addon;
import com.dfsek.terra.api.addon.annotations.Author; import com.dfsek.terra.api.addon.annotations.Author;
import com.dfsek.terra.api.addon.annotations.Version; import com.dfsek.terra.api.addon.annotations.Version;
import com.dfsek.terra.api.event.EventListener; import com.dfsek.terra.api.event.EventListener;
import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.util.seeded.BiomeBuilder;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
@Addon("generation-stage-flora") @Addon("generation-stage-flora")
@Version("1.0.0") @Version("1.0.0")
@ -20,4 +24,15 @@ public class FloraGenerationAddon extends TerraAddon implements EventListener {
public void initialize() { public void initialize() {
main.getEventManager().registerListener(this, this); main.getEventManager().registerListener(this, this);
} }
public void onPackLoad(ConfigPackPreLoadEvent event) {
event.getPack().applyLoader(FloraLayer.class, FloraLayerLoader::new);
event.getPack().getOrCreateRegistry(GenerationStageProvider.class).register("FLORA", pack -> new FloraPopulator(main));
}
public void onBiomeLoad(ConfigurationLoadEvent event) {
if(BiomeBuilder.class.isAssignableFrom(event.getType().getTypeClass())) {
event.getLoadedObject(BiomeBuilder.class).getContext().put(event.load(new BiomeFloraTemplate()).get());
}
}
} }

View File

@ -1,4 +1,4 @@
package com.dfsek.terra.addons.flora.flora; package com.dfsek.terra.addons.generation.flora;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.Range;

View File

@ -1,8 +1,7 @@
package com.dfsek.terra.addons.flora; package com.dfsek.terra.addons.generation.flora;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate; import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.addons.flora.flora.FloraLayer;
import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.util.seeded.NoiseSeeded;

View File

@ -1,6 +1,5 @@
package com.dfsek.terra.addons.flora; package com.dfsek.terra.addons.generation.flora;
import com.dfsek.terra.addons.flora.flora.FloraLayer;
import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.profiler.ProfileFrame; import com.dfsek.terra.api.profiler.ProfileFrame;
import com.dfsek.terra.api.util.PopulationUtil; import com.dfsek.terra.api.util.PopulationUtil;
@ -8,7 +7,6 @@ import com.dfsek.terra.api.vector.Vector2;
import com.dfsek.terra.api.world.Chunk; import com.dfsek.terra.api.world.Chunk;
import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.TerraGenerationStage; import com.dfsek.terra.api.world.generator.TerraGenerationStage;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;