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

View File

@@ -16,6 +16,8 @@ import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
import net.minecraft.block.Blocks;
import net.minecraft.server.command.ServerCommandSource;
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.BiomeEffects;
import net.minecraft.world.biome.GenerationSettings;
@@ -109,7 +111,10 @@ public final class FabricUtil {
if(optionsTemplate.doBiomeInjection()) {
for(int step = 0; step < vanilla.getGenerationSettings().getFeatures().size(); 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);
}
}
}
}

View File

@@ -6,7 +6,9 @@ import com.dfsek.tectonic.config.ConfigTemplate;
import net.minecraft.util.Identifier;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class PackFeatureOptionsTemplate implements ConfigTemplate {
@Value("features.inject-registry.enable")
@@ -17,13 +19,13 @@ public class PackFeatureOptionsTemplate implements ConfigTemplate {
@Default
private boolean doBiomeInjection = false;
@Value("features.inject-biome.excluded-features")
@Default
private List<Identifier> excludedRegistryFeatures = new ArrayList<>();
@Value("features.inject-registry.excluded-features")
@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() {
return doBiomeInjection;
@@ -33,11 +35,11 @@ public class PackFeatureOptionsTemplate implements ConfigTemplate {
return doRegistryInjection;
}
public List<Identifier> getExcludedBiomeFeatures() {
public Set<Identifier> getExcludedBiomeFeatures() {
return excludedBiomeFeatures;
}
public List<Identifier> getExcludedRegistryFeatures() {
public Set<Identifier> getExcludedRegistryFeatures() {
return excludedRegistryFeatures;
}
}