ObjectRegistry.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package me.km;
  2. import com.google.common.collect.ImmutableSet;
  3. import java.util.Set;
  4. import me.km.blocks.ModBlocks;
  5. import me.km.blocks.cookingpot.TileEntityCookingPot;
  6. import me.km.entities.ModEntities;
  7. import me.km.items.ModItems;
  8. import me.km.utils.ReflectionUtils;
  9. import me.km.world.ModBiomeProvider;
  10. import me.km.world.WorldManager;
  11. import net.minecraft.block.Block;
  12. import net.minecraft.block.Blocks;
  13. import net.minecraft.entity.EntityType;
  14. import net.minecraft.item.Item;
  15. import net.minecraft.item.Items;
  16. import net.minecraft.tileentity.TileEntityType;
  17. import net.minecraft.util.ResourceLocation;
  18. import net.minecraft.world.biome.Biome;
  19. import net.minecraft.world.biome.Biomes;
  20. import net.minecraft.world.biome.provider.BiomeProviderType;
  21. import net.minecraft.world.biome.provider.OverworldBiomeProviderSettings;
  22. import net.minecraftforge.common.ModDimension;
  23. import net.minecraftforge.event.RegistryEvent;
  24. import net.minecraftforge.eventbus.api.SubscribeEvent;
  25. import net.minecraftforge.fml.common.Mod;
  26. @Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
  27. public class ObjectRegistry
  28. {
  29. @SubscribeEvent
  30. public static void onBlockRegistry(RegistryEvent.Register<Block> e)
  31. {
  32. ModBlocks.initBlocks(e.getRegistry());
  33. }
  34. @SubscribeEvent
  35. public static void onBlockMissing(RegistryEvent.MissingMappings<Block> e)
  36. {
  37. e.getMappings().stream()
  38. .forEach((missing) ->
  39. {
  40. String key = missing.key.toString();
  41. if(key.contains("cauldron"))
  42. {
  43. missing.remap(ModBlocks.cookingPotCopper);
  44. }
  45. else if(key.contains("campfire"))
  46. {
  47. missing.remap(Blocks.CAMPFIRE);
  48. }
  49. else if(key.contains("spikes"))
  50. {
  51. missing.remap(ModBlocks.spikesCopper);
  52. }
  53. else if(key.contains("campfire"))
  54. {
  55. missing.remap(Blocks.CAMPFIRE);
  56. }
  57. else if(key.contains("barrel"))
  58. {
  59. missing.remap(Blocks.BARREL);
  60. }
  61. else if(key.contains("poison") || key.contains("honey"))
  62. {
  63. missing.remap(Blocks.WATER);
  64. }
  65. else
  66. {
  67. missing.remap(Blocks.STONE);
  68. }
  69. });
  70. }
  71. @SubscribeEvent
  72. public static void onItemMissing(RegistryEvent.MissingMappings<Item> e)
  73. {
  74. e.getMappings().stream()
  75. .forEach((missing) ->
  76. {
  77. missing.remap(Items.APPLE);
  78. });
  79. }
  80. @SubscribeEvent
  81. public static void onItemRegistry(RegistryEvent.Register<Item> e)
  82. {
  83. ModItems.init(e.getRegistry());
  84. ModBlocks.initItemBlocks(e.getRegistry());
  85. }
  86. @SubscribeEvent
  87. public static void onEntityTypeRegistry(RegistryEvent.Register<EntityType<?>> e)
  88. {
  89. ModEntities.init(e.getRegistry());
  90. }
  91. @SubscribeEvent
  92. public static void onTileEntityTypeRegistry(RegistryEvent.Register<TileEntityType<?>> e)
  93. {
  94. e.getRegistry().register(TileEntityCookingPot.COOKING_POT);
  95. }
  96. @SubscribeEvent
  97. public static void onModDimensionRegistry(RegistryEvent.Register<ModDimension> e)
  98. {
  99. e.getRegistry().register(WorldManager.MOD_DIMENSION);
  100. }
  101. public static BiomeProviderType<OverworldBiomeProviderSettings, ModBiomeProvider> DESERT_BIOME_PROVIDER;
  102. public static BiomeProviderType<OverworldBiomeProviderSettings, ModBiomeProvider> SNOW_BIOME_PROVIDER;
  103. private static BiomeProviderType createBiomeProviderType(Set<Biome> biomes, String name)
  104. {
  105. BiomeProviderType provider = ReflectionUtils.newBiomeProviderType((OverworldBiomeProviderSettings settings) ->
  106. {
  107. return new ModBiomeProvider(biomes, settings);
  108. }, OverworldBiomeProviderSettings::new);
  109. provider.setRegistryName(new ResourceLocation("km", name));
  110. return provider;
  111. }
  112. @SubscribeEvent
  113. public static void onBiomeProviderTypeRegistry(RegistryEvent.Register<BiomeProviderType<?, ?>> e)
  114. {
  115. DESERT_BIOME_PROVIDER = createBiomeProviderType(ImmutableSet.of(
  116. Biomes.DESERT, Biomes.DESERT_HILLS, Biomes.BADLANDS, Biomes.BADLANDS_PLATEAU,
  117. Biomes.DESERT_LAKES, Biomes.ERODED_BADLANDS, Biomes.MODIFIED_BADLANDS_PLATEAU), "desert_layered");
  118. SNOW_BIOME_PROVIDER = createBiomeProviderType(ImmutableSet.of(
  119. Biomes.FROZEN_OCEAN, Biomes.FROZEN_RIVER, Biomes.SNOWY_TUNDRA,
  120. Biomes.SNOWY_MOUNTAINS, Biomes.SNOWY_BEACH, Biomes.SNOWY_TAIGA,
  121. Biomes.SNOWY_TAIGA_HILLS, Biomes.DEEP_FROZEN_OCEAN,
  122. Biomes.ICE_SPIKES, Biomes.SNOWY_TAIGA_MOUNTAINS), "snow_layered");
  123. e.getRegistry().registerAll(DESERT_BIOME_PROVIDER, SNOW_BIOME_PROVIDER);
  124. }
  125. }