So I made a custom hematite ore that I want to spawn inside iron ore. I made a custom Filler Block Type, but when I run the mod, the ore doesn't even generate! Any tips on how to fix this, I keep swearing the code looks right, but maybe there's something minute that I'm missing? Also on 1.16.1 btw, here's the code for reference:
package com.theunknown.andraxxus.world.gen;
import com.theunknown.andraxxus.AndraxxMod;
import com.theunknown.andraxxus.util.RegistryHandler;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.pattern.BlockMatcher;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.gen.GenerationStage;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.OreFeatureConfig;
import net.minecraft.world.gen.placement.ConfiguredPlacement;
import net.minecraft.world.gen.placement.CountRangeConfig;
import net.minecraft.world.gen.placement.Placement;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent;
import net.minecraftforge.registries.ForgeRegistries;
import static net.minecraft.world.gen.feature.OreFeatureConfig.FillerBlockType.NATURAL_STONE;
@Mod.EventBusSubscriber(modid = AndraxxMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class AndraxxOreGen {
public static OreFeatureConfig.FillerBlockType END_STONE = OreFeatureConfig.FillerBlockType.create("END_STONE", "end_stone", new BlockMatcher(Blocks.END_STONE));
public static OreFeatureConfig.FillerBlockType IRON_ORE = OreFeatureConfig.FillerBlockType.create("IRON_ORE", "iron_ore", new BlockMatcher(Blocks.IRON_ORE));
@SubscribeEvent
public static void generateOres(FMLLoadCompleteEvent event) {
for (Biome biome : ForgeRegistries.BIOMES) {
if (biome.getCategory() == Biome.Category.NETHER) {
genOre(biome, 14, 22, 4, 111, OreFeatureConfig.FillerBlockType.NETHERRACK, RegistryHandler.HEMATITE_BLOCK.get().getDefaultState(), 0);
} else if (biome.getCategory() == Biome.Category.THEEND) {
genOre(biome, 14, 22, 4, 111, END_STONE, RegistryHandler.HEMATITE_BLOCK.get().getDefaultState(), 0);
} else {
genOre(biome, 14, 22, 4, 111, IRON_ORE, RegistryHandler.HEMATITE_BLOCK.get().getDefaultState(), 14);
}
}
}
private static void genOre (Biome biome, int count, int bottomOffset, int topOffset, int max, OreFeatureConfig.FillerBlockType filler, BlockState defaultBlockstate, int size) {
CountRangeConfig range = new CountRangeConfig(count, bottomOffset, topOffset, max);
OreFeatureConfig feature = new OreFeatureConfig(filler, defaultBlockstate, size);
ConfiguredPlacement config = Placement.COUNT_RANGE.configure(range);
biome.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Feature.ORE.withConfiguration(feature).withPlacement(config));
}
}