Hello. I am trying to add custom ores. Everything seems to be called and executed (when print statements are added), but nothing changes in game. I had it working in 1.16, but not in 1.17. I changed some of it to work with the new forge version, and it compiles without errors, but nothing changes in game. Any help figuring this out is appreciated.
Code:
@Mod.EventBusSubscriber
public class OreGeneration {
public static ImmutableList<TargetBlockState> ORE_TARGET_LIST;
public static final ArrayList<ConfiguredFeature<?, ?>> overworldOres = new ArrayList<ConfiguredFeature<?, ?>>();
public static void registerOres(){
ORE_TARGET_LIST = ImmutableList.of(OreConfiguration.target(Predicates.NATURAL_STONE, Blocks.STONE.defaultBlockState()));
overworldOres.add(register("tin_ore_block", Feature.ORE.configured(new OreConfiguration(ORE_TARGET_LIST, 5))
.rangeUniform(VerticalAnchor.absolute(0), VerticalAnchor.absolute(48))
.squared()
.count(20)
));
}
private static <FC extends FeatureConfiguration> ConfiguredFeature<FC, ?> register(String name, ConfiguredFeature<FC, ?> configuredFeature) {
return Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new ResourceLocation(Extras.MODID, name), configuredFeature);
}
@SubscribeEvent(priority = EventPriority.HIGHEST)
public static void registerBiomeModification(BiomeLoadingEvent event) {
BiomeGenerationSettingsBuilder generation = event.getGeneration();
for(ConfiguredFeature<?, ?> ore : overworldOres){
if (ore != null) {
generation.getFeatures(Decoration.UNDERGROUND_ORES).add(() -> {
return ore;
});
}
}
}
}