From 74731192389c067530b7509e06ebc68d65dbe9cd Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 14 Jun 2021 19:13:16 -0700 Subject: [PATCH] improve ProbabilityCollection#map impl --- .../terra/api/util/collections/ProbabilityCollection.java | 7 +------ .../config/biome/templates/stage/StageTemplate.java | 3 ++- .../templates/stage/expander/ExpanderStageTemplate.java | 2 +- .../templates/stage/mutator/BorderListMutatorTemplate.java | 2 +- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java b/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java index 7907482b7..9aa42e9c3 100644 --- a/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java +++ b/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java @@ -49,12 +49,7 @@ public class ProbabilityCollection implements Collection { public ProbabilityCollection map(Function mapper, boolean carryNull) { ProbabilityCollection newCollection = new ProbabilityCollection<>(); - newCollection.array = new Object[array.length]; - - for(int i = 0; i < array.length; i++) { - if(carryNull && array[i] == null) continue; - newCollection.array[i] = mapper.apply((E) array[i]); - } + cont.forEach((o, count) -> newCollection.add(mapper.apply(o), count.get())); return newCollection; } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/StageTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/StageTemplate.java index 151eaedef..0e7d46d7f 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/StageTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/StageTemplate.java @@ -2,6 +2,7 @@ package com.dfsek.terra.config.loaders.config.biome.templates.stage; import com.dfsek.tectonic.annotations.Value; import com.dfsek.tectonic.loading.object.ObjectTemplate; +import com.dfsek.terra.api.config.meta.MetaValue; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.util.seeded.SeededBuilder; import com.dfsek.terra.api.util.seeded.StageSeeded; @@ -9,7 +10,7 @@ import com.dfsek.terra.api.world.biome.pipeline.stages.Stage; public abstract class StageTemplate implements ObjectTemplate>, StageSeeded { @Value("noise") - protected NoiseSeeded noise; + protected MetaValue noise; @Override public StageSeeded get() { diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/expander/ExpanderStageTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/expander/ExpanderStageTemplate.java index fb396ddbc..123e79887 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/expander/ExpanderStageTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/expander/ExpanderStageTemplate.java @@ -8,6 +8,6 @@ import com.dfsek.terra.config.loaders.config.biome.templates.stage.StageTemplate public class ExpanderStageTemplate extends StageTemplate { @Override public Stage apply(Long seed) { - return new ExpanderStage(new FractalExpander(noise.apply(seed))); + return new ExpanderStage(new FractalExpander(noise.get().apply(seed))); } } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderListMutatorTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderListMutatorTemplate.java index 76146a088..df0d60395 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderListMutatorTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/stage/mutator/BorderListMutatorTemplate.java @@ -31,6 +31,6 @@ public class BorderListMutatorTemplate extends MutatorStageTemplate { replace.forEach((keyBuilder, replacements) -> replaceMap.put(keyBuilder.apply(seed), replacements.map(replacement -> replacement.apply(seed), true))); - return new BorderListMutator(replaceMap, from, defaultReplace, noise.apply(seed), defaultTo.map(biomeBuilder -> biomeBuilder.apply(seed), true)); + return new BorderListMutator(replaceMap, from, defaultReplace, noise.get().apply(seed), defaultTo.map(biomeBuilder -> biomeBuilder.apply(seed), true)); } }