Guest User

Pyrotastic Main

a guest
Sep 10th, 2022
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.44 KB | None | 0 0
  1. package com.creativityshark.pyrotastic;
  2.  
  3. import com.creativityshark.pyrotastic.client.entity.model.FireworkRocketModel;
  4. import com.creativityshark.pyrotastic.client.entity.renderer.FireworksCrateEntityRenderer;
  5. import com.creativityshark.pyrotastic.client.particle.CrateSmokeParticle;
  6. import com.creativityshark.pyrotastic.common.block.FireworksCrateBlock;
  7. import com.creativityshark.pyrotastic.common.block.entity.FireworksCrateBlockEntity;
  8. import com.creativityshark.pyrotastic.common.block.item.FireworksCrateBlockItem;
  9. import com.creativityshark.pyrotastic.common.entity.FireworksCrateEntity;
  10. import com.creativityshark.pyrotastic.common.item.FireworkSchematicItem;
  11. import com.creativityshark.pyrotastic.common.recipe.FireworkSchematicRecipe;
  12. import com.creativityshark.pyrotastic.common.recipe.StarAndSchematicRecipe;
  13. import com.mojang.logging.LogUtils;
  14. import net.minecraft.client.Minecraft;
  15. import net.minecraft.client.particle.ParticleEngine;
  16. import net.minecraft.core.particles.ParticleType;
  17. import net.minecraft.core.particles.SimpleParticleType;
  18. import net.minecraft.resources.ResourceLocation;
  19. import net.minecraft.sounds.SoundEvent;
  20. import net.minecraft.world.entity.EntityType;
  21. import net.minecraft.world.entity.MobCategory;
  22. import net.minecraft.world.item.CreativeModeTab;
  23. import net.minecraft.world.item.Item;
  24. import net.minecraft.world.item.Items;
  25. import net.minecraft.world.item.crafting.RecipeSerializer;
  26. import net.minecraft.world.item.crafting.SimpleRecipeSerializer;
  27. import net.minecraft.world.level.block.Block;
  28. import net.minecraft.world.level.block.entity.BlockEntityType;
  29. import net.minecraft.world.level.block.state.BlockBehaviour;
  30. import net.minecraft.world.level.material.Material;
  31. import net.minecraftforge.api.distmarker.Dist;
  32. import net.minecraftforge.api.distmarker.OnlyIn;
  33. import net.minecraftforge.client.event.ColorHandlerEvent;
  34. import net.minecraftforge.client.event.EntityRenderersEvent;
  35. import net.minecraftforge.client.event.ParticleFactoryRegisterEvent;
  36. import net.minecraftforge.common.MinecraftForge;
  37. import net.minecraftforge.eventbus.api.IEventBus;
  38. import net.minecraftforge.eventbus.api.SubscribeEvent;
  39. import net.minecraftforge.fml.common.Mod;
  40. import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
  41. import net.minecraftforge.registries.DeferredRegister;
  42. import net.minecraftforge.registries.ForgeRegistries;
  43. import net.minecraftforge.registries.RegistryObject;
  44. import org.slf4j.Logger;
  45.  
  46. @Mod("pyrotastic")
  47. public class PyrotasticMod
  48. {
  49.  
  50. public static final Logger LOGGER = LogUtils.getLogger();
  51. public static final String MOD_ID = "pyrotastic";
  52.  
  53. private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MOD_ID);
  54. private static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MOD_ID);
  55. private static final DeferredRegister<EntityType<?>> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES, MOD_ID);
  56. private static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, MOD_ID);
  57. private static final DeferredRegister<RecipeSerializer<?>> RECIPE_SERIALIZERS = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, MOD_ID);
  58. private static final DeferredRegister<ParticleType<?>> PARTICLES = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, MOD_ID);
  59. private static final DeferredRegister<SoundEvent> SOUND_EVENTS = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, MOD_ID);
  60.  
  61. public static final RegistryObject<Item> FIREWORK_SCHEMATIC = ITEMS.register("firework_schematic", () -> new FireworkSchematicItem(new Item.Properties().stacksTo(1).tab(CreativeModeTab.TAB_MISC)));
  62.  
  63. public static final RegistryObject<Block> FIREWORKS_CRATE = BLOCKS.register("fireworks_crate", () -> new FireworksCrateBlock(BlockBehaviour.Properties.of(Material.WOOD)));
  64. public static final RegistryObject<Item> FIREWORKS_CRATE_ITEM = ITEMS.register("fireworks_crate", () -> new FireworksCrateBlockItem(FIREWORKS_CRATE.get(), new Item.Properties().tab(CreativeModeTab.TAB_REDSTONE)));
  65. public static final RegistryObject<BlockEntityType<FireworksCrateBlockEntity>> FIREWORKS_CRATE_BLOCK_ENTITY = BLOCK_ENTITIES.register("fireworks_crate", () -> BlockEntityType.Builder.of(FireworksCrateBlockEntity::new, FIREWORKS_CRATE.get()).build(null));
  66.  
  67. public static final RegistryObject<EntityType<FireworksCrateEntity>> FIREWORKS_CRATE_ENTITY = ENTITIES.register("fireworks_crate", () -> EntityType.Builder.<FireworksCrateEntity>of(FireworksCrateEntity::new, MobCategory.MISC).fireImmune().sized(1f, 1f).build(new ResourceLocation(MOD_ID, "fireworks_crate").toString()));
  68.  
  69. public static final RegistryObject<SimpleRecipeSerializer<FireworkSchematicRecipe>> SCHEMATIC_RECIPE = RECIPE_SERIALIZERS.register("crafting_special_firework_schematic", () -> new SimpleRecipeSerializer<>(FireworkSchematicRecipe::new));
  70. public static final RegistryObject<SimpleRecipeSerializer<StarAndSchematicRecipe>> STAR_SCHEMATIC_RECIPE = RECIPE_SERIALIZERS.register("crafting_special_star_and_schematic", () -> new SimpleRecipeSerializer<>(StarAndSchematicRecipe::new));
  71.  
  72. public static final RegistryObject<ParticleType<SimpleParticleType>> CRATE_SMOKE = PARTICLES.register("crate_smoke", () -> new SimpleParticleType(false));
  73.  
  74. public static final RegistryObject<SoundEvent> FIREWORKS_CRATE_OPEN = SOUND_EVENTS.register("block.fireworks_crate_open", () -> new SoundEvent(new ResourceLocation(MOD_ID, "block.fireworks_crate_open")));
  75. public static final RegistryObject<SoundEvent> FIREWORKS_CRATE_CLOSE = SOUND_EVENTS.register("block.fireworks_crate_close", () -> new SoundEvent(new ResourceLocation(MOD_ID, "block.fireworks_crate_close")));
  76.  
  77. public PyrotasticMod()
  78. {
  79. MinecraftForge.EVENT_BUS.register(this);
  80. IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
  81.  
  82. modEventBus.addListener(this::registerItemColors);
  83. modEventBus.addListener(this::registerLayerDefinitions);
  84. modEventBus.addListener(this::registerRenderers);
  85. modEventBus.addListener(this::registerParticleFactories);
  86.  
  87. ITEMS.register(modEventBus);
  88. BLOCKS.register(modEventBus);
  89. ENTITIES.register(modEventBus);
  90. BLOCK_ENTITIES.register(modEventBus);
  91. RECIPE_SERIALIZERS.register(modEventBus);
  92. PARTICLES.register(modEventBus);
  93. SOUND_EVENTS.register(modEventBus);
  94.  
  95. }
  96.  
  97. @SubscribeEvent
  98. public void registerItemColors(ColorHandlerEvent.Item event) {
  99. event.getItemColors().register(((pStack, pTintIndex) -> pTintIndex == 0 ? -1 : RocketColorHandler.getColor(pStack)), Items.FIREWORK_ROCKET);
  100. }
  101.  
  102. @SubscribeEvent
  103. public void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) {
  104. event.registerLayerDefinition(FireworkRocketModel.MODEL_LAYER_LOCATION, FireworkRocketModel::createBodylayer);
  105. }
  106.  
  107. @SubscribeEvent
  108. public void registerRenderers(EntityRenderersEvent.RegisterRenderers event) {
  109. event.registerEntityRenderer(FIREWORKS_CRATE_ENTITY.get(), FireworksCrateEntityRenderer::new);
  110. }
  111.  
  112. @SubscribeEvent
  113. @OnlyIn(Dist.CLIENT)
  114. public void registerParticleFactories(ParticleFactoryRegisterEvent event) {
  115. ParticleEngine particleManager = Minecraft.getInstance().particleEngine;
  116. particleManager.register(CRATE_SMOKE.get(), CrateSmokeParticle.SmokeFactory::new);
  117. }
  118. }
  119.  
Add Comment
Please, Sign In to add comment