spawning of ores in nether fixed

This commit is contained in:
Jörg Henke 2021-08-26 14:42:41 +02:00
parent dd35d5e3f1
commit e8607ca419
2 changed files with 15 additions and 13 deletions

View File

@ -45,6 +45,7 @@ import net.minecraft.util.ActionResult;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.BuiltinRegistries;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.gen.YOffset; import net.minecraft.world.gen.YOffset;
import net.minecraft.world.gen.decorator.Decorator; import net.minecraft.world.gen.decorator.Decorator;
import net.minecraft.world.gen.decorator.RangeDecoratorConfig; import net.minecraft.world.gen.decorator.RangeDecoratorConfig;
@ -70,36 +71,36 @@ public class RegistryManager {
public static final ConfiguredFeature<?, ?> FEATURE_ORENETHERSULPHOR = Feature.ORE public static final ConfiguredFeature<?, ?> FEATURE_ORENETHERSULPHOR = Feature.ORE
.configure(new OreFeatureConfig(OreFeatureConfig.Rules.BASE_STONE_NETHER, .configure(new OreFeatureConfig(OreFeatureConfig.Rules.BASE_STONE_NETHER,
QuickieBlocks.ORE_NETHER_SULPHOR.getDefaultState(), 24)) QuickieBlocks.ORE_NETHER_SULPHOR.getDefaultState(), 24))
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(128)))).spreadHorizontally().repeat(10)); .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(0)))).spreadHorizontally().repeat(10));
public static final ConfiguredFeature<?, ?> FEATURE_ORESALPETER = Feature.ORE public static final ConfiguredFeature<?, ?> FEATURE_ORESALPETER = Feature.ORE
.configure(new OreFeatureConfig(OreFeatureConfig.Rules.BASE_STONE_OVERWORLD, .configure(new OreFeatureConfig(OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
QuickieBlocks.ORE_SALPETER.getDefaultState(), 12)) QuickieBlocks.ORE_SALPETER.getDefaultState(), 12))
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(128))))).spreadHorizontally().repeat(10); .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(64))))).spreadHorizontally().repeat(10);
public static final ConfiguredFeature<?, ?> FEATURE_ORESULPHOR = Feature.ORE public static final ConfiguredFeature<?, ?> FEATURE_ORESULPHOR = Feature.ORE
.configure(new OreFeatureConfig(OreFeatureConfig.Rules.BASE_STONE_OVERWORLD, .configure(new OreFeatureConfig(OreFeatureConfig.Rules.BASE_STONE_OVERWORLD,
QuickieBlocks.ORE_SULPHOR.getDefaultState(), 16)) QuickieBlocks.ORE_SULPHOR.getDefaultState(), 16))
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(32), YOffset.belowTop(255))))).spreadHorizontally().repeat(4); .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(64))))).spreadHorizontally().repeat(7);
public static final ConfiguredFeature<?, ?> FEATURE_DIRTSALPETER = Feature.ORE public static final ConfiguredFeature<?, ?> FEATURE_DIRTSALPETER = Feature.ORE
.configure( .configure(
new OreFeatureConfig(new BlockMatchRuleTest(Blocks.DIRT), QuickieBlocks.DIRT_SALPETER.getDefaultState(), 3)) new OreFeatureConfig(new BlockMatchRuleTest(Blocks.DIRT), QuickieBlocks.DIRT_SALPETER.getDefaultState(), 3))
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(255))))).spreadHorizontally().repeatRandomly(4); .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(64))))).spreadHorizontally().repeatRandomly(4);
public static final ConfiguredFeature<?, ?> FEATURE_SANDSALPETER = Feature.ORE public static final ConfiguredFeature<?, ?> FEATURE_SANDSALPETER = Feature.ORE
.configure( .configure(
new OreFeatureConfig(new BlockMatchRuleTest(Blocks.SAND), QuickieBlocks.SAND_SALPETER.getDefaultState(), 3)) new OreFeatureConfig(new BlockMatchRuleTest(Blocks.SAND), QuickieBlocks.SAND_SALPETER.getDefaultState(), 3))
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(255))))).spreadHorizontally().repeatRandomly(4); .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(64))))).spreadHorizontally().repeatRandomly(4);
public static final ConfiguredFeature<?, ?> FEATURE_ORESANDSALPETER = Feature.ORE public static final ConfiguredFeature<?, ?> FEATURE_ORESANDSALPETER = Feature.ORE
.configure(new OreFeatureConfig(new BlockMatchRuleTest(Blocks.SANDSTONE), .configure(new OreFeatureConfig(new BlockMatchRuleTest(Blocks.SANDSTONE),
QuickieBlocks.ORE_SAND_SALPETER.getDefaultState(), 3)) QuickieBlocks.ORE_SAND_SALPETER.getDefaultState(), 3))
.decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(255))))).spreadHorizontally().repeatRandomly(4); .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(0), YOffset.belowTop(64))))).spreadHorizontally().repeatRandomly(4);
public static final List<ConfiguredFeature<?, ?>> FEATURE_UNDERGROUND_ORES = Arrays.asList(FEATURE_ORESALPETER, public static final List<ConfiguredFeature<?, ?>> FEATURE_QUICKIE_ORES = Arrays.asList(FEATURE_ORESALPETER,
FEATURE_ORESULPHOR, FEATURE_DIRTSALPETER, FEATURE_SANDSALPETER, FEATURE_ORESANDSALPETER); FEATURE_ORESULPHOR, FEATURE_DIRTSALPETER, FEATURE_SANDSALPETER, FEATURE_ORESANDSALPETER);
public static final List<ConfiguredFeature<?, ?>> FEATURE_UNDERGROUND_DECORATIONS = Arrays public static final List<ConfiguredFeature<?, ?>> FEATURE_QUICKIE_NETHERORES = Arrays
.asList(FEATURE_ORENETHERSULPHOR); .asList(FEATURE_ORENETHERSULPHOR);
public static final ItemGroup QUICKIEFABRIC_GROUP = FabricItemGroupBuilder public static final ItemGroup QUICKIEFABRIC_GROUP = FabricItemGroupBuilder
@ -278,7 +279,8 @@ public class RegistryManager {
* @param feature the feature * @param feature the feature
*/ */
private static final void registerFeature(String name, ConfiguredFeature<?, ?> feature) { private static final void registerFeature(String name, ConfiguredFeature<?, ?> feature) {
Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new Identifier(QUICKIEFABRIC, name), feature); RegistryKey<ConfiguredFeature<?, ?>> identifier = RegistryKey.of(Registry.CONFIGURED_FEATURE_KEY, new Identifier(QUICKIEFABRIC, name));
Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, identifier.getValue(), feature);
} }
/** /**

View File

@ -21,15 +21,15 @@ public class FeatureConfigMixin {
@Inject(at = @At("TAIL"), method = "addMineables(Lnet/minecraft/world/biome/GenerationSettings$Builder;)V") @Inject(at = @At("TAIL"), method = "addMineables(Lnet/minecraft/world/biome/GenerationSettings$Builder;)V")
private static void addMineables(GenerationSettings.Builder builder, CallbackInfo ci) { private static void addMineables(GenerationSettings.Builder builder, CallbackInfo ci) {
for (ConfiguredFeature<?, ?> configuredFeature : RegistryManager.FEATURE_UNDERGROUND_ORES) { for (ConfiguredFeature<?, ?> configuredFeature : RegistryManager.FEATURE_QUICKIE_ORES) {
builder.feature(GenerationStep.Feature.UNDERGROUND_ORES, configuredFeature); builder.feature(GenerationStep.Feature.UNDERGROUND_ORES, configuredFeature);
} }
} }
@Inject(at = @At("HEAD"), method = "addNetherMineables(Lnet/minecraft/world/biome/GenerationSettings$Builder;)V") @Inject(at = @At("TAIL"), method = "addNetherMineables(Lnet/minecraft/world/biome/GenerationSettings$Builder;)V")
private static void addNetherMineables(GenerationSettings.Builder builder, CallbackInfo ci) { private static void addNetherMineables(GenerationSettings.Builder builder, CallbackInfo ci) {
for (ConfiguredFeature<?, ?> configuredFeature : RegistryManager.FEATURE_UNDERGROUND_DECORATIONS) { for (ConfiguredFeature<?, ?> configuredFeature : RegistryManager.FEATURE_QUICKIE_NETHERORES) {
builder.feature(GenerationStep.Feature.UNDERGROUND_DECORATION, configuredFeature); builder.feature(GenerationStep.Feature.UNDERGROUND_ORES, configuredFeature);
} }
} }
} }