conditional biome injection

This commit is contained in:
dfsek
2021-05-12 09:27:20 -07:00
parent 4c7aa11353
commit 242e56b1d8
2 changed files with 15 additions and 8 deletions
@@ -16,6 +16,8 @@ import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.text.LiteralText; import net.minecraft.text.LiteralText;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.BuiltinRegistries;
import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeEffects; import net.minecraft.world.biome.BiomeEffects;
import net.minecraft.world.biome.GenerationSettings; import net.minecraft.world.biome.GenerationSettings;
@@ -109,7 +111,10 @@ public final class FabricUtil {
if(optionsTemplate.doBiomeInjection()) { if(optionsTemplate.doBiomeInjection()) {
for(int step = 0; step < vanilla.getGenerationSettings().getFeatures().size(); step++) { for(int step = 0; step < vanilla.getGenerationSettings().getFeatures().size(); step++) {
for(Supplier<ConfiguredFeature<?, ?>> featureSupplier : vanilla.getGenerationSettings().getFeatures().get(step)) { for(Supplier<ConfiguredFeature<?, ?>> featureSupplier : vanilla.getGenerationSettings().getFeatures().get(step)) {
generationSettings.feature(step, featureSupplier); Identifier key = BuiltinRegistries.CONFIGURED_FEATURE.getId(featureSupplier.get());
if(!optionsTemplate.getExcludedBiomeFeatures().contains(key)) {
generationSettings.feature(step, featureSupplier);
}
} }
} }
} }
@@ -6,7 +6,9 @@ import com.dfsek.tectonic.config.ConfigTemplate;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
public class PackFeatureOptionsTemplate implements ConfigTemplate { public class PackFeatureOptionsTemplate implements ConfigTemplate {
@Value("features.inject-registry.enable") @Value("features.inject-registry.enable")
@@ -17,13 +19,13 @@ public class PackFeatureOptionsTemplate implements ConfigTemplate {
@Default @Default
private boolean doBiomeInjection = false; private boolean doBiomeInjection = false;
@Value("features.inject-biome.excluded-features")
@Default
private List<Identifier> excludedRegistryFeatures = new ArrayList<>();
@Value("features.inject-registry.excluded-features") @Value("features.inject-registry.excluded-features")
@Default @Default
private List<Identifier> excludedBiomeFeatures = new ArrayList<>(); private Set<Identifier> excludedRegistryFeatures = new HashSet<>();
@Value("features.inject-biome.excluded-features")
@Default
private Set<Identifier> excludedBiomeFeatures = new HashSet<>();
public boolean doBiomeInjection() { public boolean doBiomeInjection() {
return doBiomeInjection; return doBiomeInjection;
@@ -33,11 +35,11 @@ public class PackFeatureOptionsTemplate implements ConfigTemplate {
return doRegistryInjection; return doRegistryInjection;
} }
public List<Identifier> getExcludedBiomeFeatures() { public Set<Identifier> getExcludedBiomeFeatures() {
return excludedBiomeFeatures; return excludedBiomeFeatures;
} }
public List<Identifier> getExcludedRegistryFeatures() { public Set<Identifier> getExcludedRegistryFeatures() {
return excludedRegistryFeatures; return excludedRegistryFeatures;
} }
} }