Guest User

Untitled

a guest
Feb 24th, 2022
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. package net.mcreator.rksmobs.init;
  2.  
  3. import net.minecraftforge.fml.common.Mod;
  4. import net.minecraftforge.eventbus.api.SubscribeEvent;
  5. import net.minecraftforge.event.world.BiomeLoadingEvent;
  6. import net.minecraftforge.event.RegistryEvent;
  7.  
  8. import net.minecraft.world.level.levelgen.feature.Feature;
  9. import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
  10. import net.minecraft.world.level.levelgen.GenerationStep;
  11. import net.minecraft.resources.ResourceLocation;
  12. import net.minecraft.data.BuiltinRegistries;
  13. import net.minecraft.core.Registry;
  14.  
  15. import net.mcreator.rksmobs.world.features.RockMonumentFeature;
  16.  
  17. import java.util.Set;
  18. import java.util.Map;
  19. import java.util.HashMap;
  20.  
  21. @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
  22. public class RksMobsModFeatures {
  23. private static final Map<Feature<?>, FeatureRegistration> REGISTRY = new HashMap<>();
  24. static {
  25. REGISTRY.put(RockMonumentFeature.FEATURE, new FeatureRegistration(GenerationStep.Decoration.SURFACE_STRUCTURES,
  26. RockMonumentFeature.GENERATE_BIOMES, RockMonumentFeature.CONFIGURED_FEATURE));
  27. }
  28.  
  29. @SubscribeEvent
  30. public static void registerFeature(RegistryEvent.Register<Feature<?>> event) {
  31. event.getRegistry().registerAll(REGISTRY.keySet().toArray(new Feature[0]));
  32. REGISTRY.forEach((feature, registration) -> Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, feature.getRegistryName(),
  33. registration.configuredFeature()));
  34. }
  35.  
  36. @Mod.EventBusSubscriber
  37. private static class BiomeFeatureLoader {
  38. @SubscribeEvent
  39. public static void addFeatureToBiomes(BiomeLoadingEvent event) {
  40. for (FeatureRegistration registration : REGISTRY.values()) {
  41. if (registration.biomes() == null || registration.biomes().contains(event.getName())) {
  42. event.getGeneration().getFeatures(registration.stage()).add(() -> registration.configuredFeature());
  43. }
  44. }
  45. }
  46. }
  47.  
  48. private static record FeatureRegistration(GenerationStep.Decoration stage, Set<ResourceLocation> biomes,
  49. ConfiguredFeature<?, ?> configuredFeature) {
  50. }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment