Advertisement
TurtyWurty

Ore Generation

Nov 6th, 2021 (edited)
1,269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.07 KB | None | 0 0
  1. public class OreGeneration {
  2.  
  3.     public static final List<ConfiguredFeature<OreConfiguration, OreFeature>> OVERWORLD_ORES = new ArrayList<>();
  4.     public static final List<ConfiguredFeature<OreConfiguration, OreFeature>> END_ORES = new ArrayList<>();
  5.     public static final List<ConfiguredFeature<OreConfiguration, OreFeature>> NETHER_ORES = new ArrayList<>();
  6.  
  7.     @SuppressWarnings("unchecked")
  8.     public static void registerOres() {
  9.         final ConfiguredFeature<?, ?> acacia = Feature.ORE
  10.             .configured(new OreConfiguration(List.of(OreConfiguration.target(
  11.                 OreConfiguration.Predicates.STONE_ORE_REPLACEABLES, Blocks.GLOWSTONE.defaultBlockState())), 11))
  12.             .rangeUniform(VerticalAnchor.bottom(), VerticalAnchor.aboveBottom(32)).squared().count(100);
  13.         register("acacia_ore", acacia);
  14.         OVERWORLD_ORES.add((ConfiguredFeature<OreConfiguration, OreFeature>) acacia);
  15.     }
  16.  
  17.     private static <Config extends FeatureConfiguration> ConfiguredFeature<Config, ?> register(String name,
  18.         ConfiguredFeature<Config, ?> configuredFeature) {
  19.         return Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new ResourceLocation(TestMod.MODID, name),
  20.             configuredFeature);
  21.     }
  22.  
  23.     @Mod.EventBusSubscriber(modid = TestMod.MODID, bus = Bus.FORGE)
  24.     public static class ForgeBusSubscriber {
  25.         @SubscribeEvent
  26.         public static void biomeLoading(BiomeLoadingEvent event) {
  27.             final List<Supplier<ConfiguredFeature<?, ?>>> features = event.getGeneration()
  28.                 .getFeatures(Decoration.UNDERGROUND_ORES);
  29.             switch (event.getCategory()) {
  30.                 case NETHER -> OreGeneration.NETHER_ORES.forEach(ore -> features.add(() -> ore));
  31.                 case THEEND -> OreGeneration.END_ORES.forEach(ore -> features.add(() -> ore));
  32.                 default -> OreGeneration.OVERWORLD_ORES.forEach(ore -> features.add(() -> ore));
  33.             }
  34.         }
  35.     }
  36.  
  37.     @Mod.EventBusSubscriber(modid = TestMod.MODID, bus = Bus.MOD)
  38.     public static class ModBusSubscriber {
  39.         @SubscribeEvent
  40.         public static void commonSetup(FMLCommonSetupEvent event) {
  41.             event.enqueueWork(OreGeneration::registerOres);
  42.         }
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement