mutator meta

This commit is contained in:
dfsek committed 2021-06-14 19:15:52 -07:00
1 parent 7473119238
commit 2010c48664
5 files changed
+23 -19

No files matched your search

@@ -1,6 +1,7 @@
package com.dfsek.terra.config.loaders.config.biome.templates.stage.mutator; package com.dfsek.terra.config.loaders.config.biome.templates.stage.mutator;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.api.config.meta.MetaValue;
import com.dfsek.terra.api.util.collections.ProbabilityCollection; import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.pipeline.mutator.BiomeMutator; import com.dfsek.terra.api.world.biome.pipeline.mutator.BiomeMutator;
@@ -13,24 +14,24 @@ import java.util.Map;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class BorderListMutatorTemplate extends MutatorStageTemplate { public class BorderListMutatorTemplate extends MutatorStageTemplate {
@Value("from") @Value("from")
private String from; private MetaValue<String> from;
@Value("default-replace") @Value("default-replace")
private String defaultReplace; private MetaValue<String> defaultReplace;
@Value("default-to") @Value("default-to")
private ProbabilityCollection<BiomeBuilder> defaultTo; private ProbabilityCollection<MetaValue<BiomeBuilder>> defaultTo;
@Value("replace") @Value("replace")
private Map<BiomeBuilder, ProbabilityCollection<BiomeBuilder>> replace; private Map<BiomeBuilder, ProbabilityCollection<MetaValue<BiomeBuilder>>> replace;
@Override @Override
public BiomeMutator build(long seed) { public BiomeMutator build(long seed) {
Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>(); Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>();
replace.forEach((keyBuilder, replacements) -> replaceMap.put(keyBuilder.apply(seed), replacements.map(replacement -> replacement.apply(seed), true))); replace.forEach((keyBuilder, replacements) -> replaceMap.put(keyBuilder.apply(seed), replacements.map(replacement -> replacement.get().apply(seed), true)));
return new BorderListMutator(replaceMap, from, defaultReplace, noise.get().apply(seed), defaultTo.map(biomeBuilder -> biomeBuilder.apply(seed), true)); return new BorderListMutator(replaceMap, from.get(), defaultReplace.get(), noise.get().apply(seed), defaultTo.map(biomeBuilder -> biomeBuilder.get().apply(seed), true));
} }
} }
@@ -1,6 +1,7 @@
package com.dfsek.terra.config.loaders.config.biome.templates.stage.mutator; package com.dfsek.terra.config.loaders.config.biome.templates.stage.mutator;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.api.config.meta.MetaValue;
import com.dfsek.terra.api.util.collections.ProbabilityCollection; import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.pipeline.mutator.BiomeMutator; import com.dfsek.terra.api.world.biome.pipeline.mutator.BiomeMutator;
import com.dfsek.terra.api.world.biome.pipeline.mutator.BorderMutator; import com.dfsek.terra.api.world.biome.pipeline.mutator.BorderMutator;
@@ -9,16 +10,16 @@ import com.dfsek.terra.config.builder.BiomeBuilder;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class BorderMutatorTemplate extends MutatorStageTemplate { public class BorderMutatorTemplate extends MutatorStageTemplate {
@Value("from") @Value("from")
private String from; private MetaValue<String> from;
@Value("replace") @Value("replace")
private String replace; private MetaValue<String> replace;
@Value("to") @Value("to")
private ProbabilityCollection<BiomeBuilder> to; private ProbabilityCollection<MetaValue<BiomeBuilder>> to;
@Override @Override
public BiomeMutator build(long seed) { public BiomeMutator build(long seed) {
return new BorderMutator(from, replace, noise.apply(seed), to.map(biomeBuilder -> biomeBuilder.apply(seed), true)); return new BorderMutator(from.get(), replace.get(), noise.get().apply(seed), to.map(biomeBuilder -> biomeBuilder.get().apply(seed), true));
} }
} }
@@ -1,6 +1,7 @@
package com.dfsek.terra.config.loaders.config.biome.templates.stage.mutator; package com.dfsek.terra.config.loaders.config.biome.templates.stage.mutator;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.api.config.meta.MetaValue;
import com.dfsek.terra.api.util.collections.ProbabilityCollection; import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.pipeline.mutator.BiomeMutator; import com.dfsek.terra.api.world.biome.pipeline.mutator.BiomeMutator;
@@ -13,20 +14,20 @@ import java.util.Map;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class ReplaceListMutatorTemplate extends MutatorStageTemplate { public class ReplaceListMutatorTemplate extends MutatorStageTemplate {
@Value("default-from") @Value("default-from")
private String defaultFrom; private MetaValue<String> defaultFrom;
@Value("default-to") @Value("default-to")
private ProbabilityCollection<BiomeBuilder> defaultTo; private ProbabilityCollection<MetaValue<BiomeBuilder>> defaultTo;
@Value("to") @Value("to")
private Map<BiomeBuilder, ProbabilityCollection<BiomeBuilder>> replace; private Map<BiomeBuilder, ProbabilityCollection<MetaValue<BiomeBuilder>>> replace;
@Override @Override
public BiomeMutator build(long seed) { public BiomeMutator build(long seed) {
Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>(); Map<TerraBiome, ProbabilityCollection<TerraBiome>> replaceMap = new HashMap<>();
replace.forEach((biomeBuilder, biomeBuilders) -> replaceMap.put(biomeBuilder.apply(seed), biomeBuilders.map(builder -> builder.apply(seed), true))); replace.forEach((biomeBuilder, biomeBuilders) -> replaceMap.put(biomeBuilder.apply(seed), biomeBuilders.map(builder -> builder.get().apply(seed), true)));
return new ReplaceListMutator(replaceMap, defaultFrom, defaultTo.map(biomeBuilder -> biomeBuilder.apply(seed), true), noise.apply(seed)); return new ReplaceListMutator(replaceMap, defaultFrom.get(), defaultTo.map(biomeBuilder -> biomeBuilder.get().apply(seed), true), noise.get().apply(seed));
} }
} }
@@ -1,6 +1,7 @@
package com.dfsek.terra.config.loaders.config.biome.templates.stage.mutator; package com.dfsek.terra.config.loaders.config.biome.templates.stage.mutator;
import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.api.config.meta.MetaValue;
import com.dfsek.terra.api.util.collections.ProbabilityCollection; import com.dfsek.terra.api.util.collections.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.pipeline.mutator.BiomeMutator; import com.dfsek.terra.api.world.biome.pipeline.mutator.BiomeMutator;
import com.dfsek.terra.api.world.biome.pipeline.mutator.ReplaceMutator; import com.dfsek.terra.api.world.biome.pipeline.mutator.ReplaceMutator;
@@ -9,13 +10,13 @@ import com.dfsek.terra.config.builder.BiomeBuilder;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class ReplaceMutatorTemplate extends MutatorStageTemplate { public class ReplaceMutatorTemplate extends MutatorStageTemplate {
@Value("from") @Value("from")
private String from; private MetaValue<String> from;
@Value("to") @Value("to")
private ProbabilityCollection<BiomeBuilder> to; private ProbabilityCollection<MetaValue<BiomeBuilder>> to;
@Override @Override
public BiomeMutator build(long seed) { public BiomeMutator build(long seed) {
return new ReplaceMutator(from, to.map(biomeBuilder -> biomeBuilder.apply(seed), true), noise.apply(seed)); return new ReplaceMutator(from.get(), to.map(biomeBuilder -> biomeBuilder.get().apply(seed), true), noise.get().apply(seed));
} }
} }
@@ -6,6 +6,6 @@ import com.dfsek.terra.api.world.biome.pipeline.mutator.SmoothMutator;
public class SmoothMutatorTemplate extends MutatorStageTemplate { public class SmoothMutatorTemplate extends MutatorStageTemplate {
@Override @Override
public BiomeMutator build(long seed) { public BiomeMutator build(long seed) {
return new SmoothMutator(noise.apply(seed)); return new SmoothMutator(noise.get().apply(seed));
} }
} }