mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-26 05:50:08 +00:00
create biome structure config
This commit is contained in:
1 parent
5e5ce0722f
commit
ba7722ce45
3 files changed
+55
No files matched your search
+13
@@ -1,11 +1,14 @@
|
|||||||
package com.dfsek.terra.addons.generation.structure;
|
package com.dfsek.terra.addons.generation.structure;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.generation.structure.config.BiomeStructuresTemplate;
|
||||||
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
|
import com.dfsek.terra.addons.manifest.api.AddonInitializer;
|
||||||
import com.dfsek.terra.api.Platform;
|
import com.dfsek.terra.api.Platform;
|
||||||
import com.dfsek.terra.api.addon.BaseAddon;
|
import com.dfsek.terra.api.addon.BaseAddon;
|
||||||
|
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.event.functional.FunctionalEventHandler;
|
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
|
||||||
import com.dfsek.terra.api.inject.annotations.Inject;
|
import com.dfsek.terra.api.inject.annotations.Inject;
|
||||||
|
import com.dfsek.terra.api.world.biome.TerraBiome;
|
||||||
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
|
||||||
|
|
||||||
|
|
||||||
@@ -26,5 +29,15 @@ public class StructureGenerationAddon implements AddonInitializer {
|
|||||||
.register("STRUCTURE", pack -> new StructureGenerationStage(platform)))
|
.register("STRUCTURE", pack -> new StructureGenerationStage(platform)))
|
||||||
.failThrough();
|
.failThrough();
|
||||||
|
|
||||||
|
platform.getEventManager()
|
||||||
|
.getHandler(FunctionalEventHandler.class)
|
||||||
|
.register(addon, ConfigurationLoadEvent.class)
|
||||||
|
.then(event -> {
|
||||||
|
if(event.is(TerraBiome.class)) {
|
||||||
|
event.getLoadedObject(TerraBiome.class).getContext().put(event.load(new BiomeStructuresTemplate()).get());
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.failThrough();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
package com.dfsek.terra.addons.generation.structure.config;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.properties.Properties;
|
||||||
|
import com.dfsek.terra.api.structure.configured.ConfiguredStructure;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public class BiomeStructures implements Properties {
|
||||||
|
private final List<ConfiguredStructure> structures;
|
||||||
|
|
||||||
|
public BiomeStructures(List<ConfiguredStructure> structures) { this.structures = structures; }
|
||||||
|
|
||||||
|
public List<ConfiguredStructure> getStructures() {
|
||||||
|
return structures;
|
||||||
|
}
|
||||||
|
}
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
package com.dfsek.terra.addons.generation.structure.config;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
|
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||||
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.config.meta.Meta;
|
||||||
|
import com.dfsek.terra.api.structure.configured.ConfiguredStructure;
|
||||||
|
import com.dfsek.terra.api.structure.feature.Feature;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public class BiomeStructuresTemplate implements ObjectTemplate<BiomeStructures> {
|
||||||
|
@Value("features")
|
||||||
|
@Default
|
||||||
|
private @Meta List<@Meta ConfiguredStructure> features = Collections.emptyList();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BiomeStructures get() {
|
||||||
|
return new BiomeStructures(features);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user