ObjectRegistry.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. @SubscribeEvent
  29. public static void onBlockRegistry(RegistryEvent.Register<Block> e) {
  30. ModBlocks.initBlocks(e.getRegistry());
  31. }
  32. @SubscribeEvent
  33. public static void onBlockMissing(RegistryEvent.MissingMappings<Block> e) {
  34. e.getMappings().stream()
  35. .forEach((missing) -> {
  36. String key = missing.key.toString();
  37. if(key.contains("cauldron")) {
  38. missing.remap(ModBlocks.cookingPotCopper);
  39. } else if(key.contains("campfire")) {
  40. missing.remap(Blocks.CAMPFIRE);
  41. } else if(key.contains("spikes")) {
  42. missing.remap(ModBlocks.spikesCopper);
  43. } else if(key.contains("campfire")) {
  44. missing.remap(Blocks.CAMPFIRE);
  45. } else if(key.contains("barrel")) {
  46. missing.remap(Blocks.BARREL);
  47. } else if(key.contains("poison") || key.contains("honey")) {
  48. missing.remap(Blocks.WATER);
  49. } else {
  50. missing.remap(Blocks.STONE);
  51. }
  52. });
  53. }
  54. @SubscribeEvent
  55. public static void onItemMissing(RegistryEvent.MissingMappings<Item> e) {
  56. e.getMappings().stream()
  57. .forEach((missing) -> {
  58. missing.remap(Items.APPLE);
  59. });
  60. }
  61. @SubscribeEvent
  62. public static void onItemRegistry(RegistryEvent.Register<Item> e) {
  63. ModItems.init(e.getRegistry());
  64. ModBlocks.initItemBlocks(e.getRegistry());
  65. }
  66. @SubscribeEvent
  67. public static void onEntityTypeRegistry(RegistryEvent.Register<EntityType<?>> e) {
  68. ModEntities.init(e.getRegistry());
  69. }
  70. @SubscribeEvent
  71. public static void onTileEntityTypeRegistry(RegistryEvent.Register<TileEntityType<?>> e) {
  72. e.getRegistry().register(TileEntityCookingPot.COOKING_POT);
  73. }
  74. @SubscribeEvent
  75. public static void onModDimensionRegistry(RegistryEvent.Register<ModDimension> e) {
  76. e.getRegistry().register(WorldManager.MOD_DIMENSION);
  77. }
  78. public static BiomeProviderType<OverworldBiomeProviderSettings, ModBiomeProvider> DESERT_BIOME_PROVIDER;
  79. public static BiomeProviderType<OverworldBiomeProviderSettings, ModBiomeProvider> SNOW_BIOME_PROVIDER;
  80. private static BiomeProviderType createBiomeProviderType(Set<Biome> biomes, String name) {
  81. BiomeProviderType provider = ReflectionUtils.newBiomeProviderType((OverworldBiomeProviderSettings settings) -> {
  82. return new ModBiomeProvider(biomes, settings);
  83. }, OverworldBiomeProviderSettings::new);
  84. provider.setRegistryName(new ResourceLocation("km", name));
  85. return provider;
  86. }
  87. @SubscribeEvent
  88. public static void onBiomeProviderTypeRegistry(RegistryEvent.Register<BiomeProviderType<?, ?>> e) {
  89. DESERT_BIOME_PROVIDER = createBiomeProviderType(ImmutableSet.of(
  90. Biomes.DESERT, Biomes.DESERT_HILLS, Biomes.BADLANDS, Biomes.BADLANDS_PLATEAU,
  91. Biomes.DESERT_LAKES, Biomes.ERODED_BADLANDS, Biomes.MODIFIED_BADLANDS_PLATEAU), "desert_layered");
  92. SNOW_BIOME_PROVIDER = createBiomeProviderType(ImmutableSet.of(
  93. Biomes.FROZEN_OCEAN, Biomes.FROZEN_RIVER, Biomes.SNOWY_TUNDRA,
  94. Biomes.SNOWY_MOUNTAINS, Biomes.SNOWY_BEACH, Biomes.SNOWY_TAIGA,
  95. Biomes.SNOWY_TAIGA_HILLS, Biomes.DEEP_FROZEN_OCEAN,
  96. Biomes.ICE_SPIKES, Biomes.SNOWY_TAIGA_MOUNTAINS), "snow_layered");
  97. e.getRegistry().registerAll(DESERT_BIOME_PROVIDER, SNOW_BIOME_PROVIDER);
  98. }
  99. }