Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.creativityshark.pyrotastic;
- import com.creativityshark.pyrotastic.client.entity.model.FireworkRocketModel;
- import com.creativityshark.pyrotastic.client.entity.renderer.FireworksCrateEntityRenderer;
- import com.creativityshark.pyrotastic.client.particle.CrateSmokeParticle;
- import com.creativityshark.pyrotastic.common.block.FireworksCrateBlock;
- import com.creativityshark.pyrotastic.common.block.entity.FireworksCrateBlockEntity;
- import com.creativityshark.pyrotastic.common.block.item.FireworksCrateBlockItem;
- import com.creativityshark.pyrotastic.common.entity.FireworksCrateEntity;
- import com.creativityshark.pyrotastic.common.item.FireworkSchematicItem;
- import com.creativityshark.pyrotastic.common.recipe.FireworkSchematicRecipe;
- import com.creativityshark.pyrotastic.common.recipe.StarAndSchematicRecipe;
- import com.mojang.logging.LogUtils;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.particle.ParticleEngine;
- import net.minecraft.core.particles.ParticleType;
- import net.minecraft.core.particles.SimpleParticleType;
- import net.minecraft.resources.ResourceLocation;
- import net.minecraft.sounds.SoundEvent;
- import net.minecraft.world.entity.EntityType;
- import net.minecraft.world.entity.MobCategory;
- import net.minecraft.world.item.CreativeModeTab;
- import net.minecraft.world.item.Item;
- import net.minecraft.world.item.Items;
- import net.minecraft.world.item.crafting.RecipeSerializer;
- import net.minecraft.world.item.crafting.SimpleRecipeSerializer;
- import net.minecraft.world.level.block.Block;
- import net.minecraft.world.level.block.entity.BlockEntityType;
- import net.minecraft.world.level.block.state.BlockBehaviour;
- import net.minecraft.world.level.material.Material;
- import net.minecraftforge.api.distmarker.Dist;
- import net.minecraftforge.api.distmarker.OnlyIn;
- import net.minecraftforge.client.event.ColorHandlerEvent;
- import net.minecraftforge.client.event.EntityRenderersEvent;
- import net.minecraftforge.client.event.ParticleFactoryRegisterEvent;
- import net.minecraftforge.common.MinecraftForge;
- import net.minecraftforge.eventbus.api.IEventBus;
- import net.minecraftforge.eventbus.api.SubscribeEvent;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
- import net.minecraftforge.registries.DeferredRegister;
- import net.minecraftforge.registries.ForgeRegistries;
- import net.minecraftforge.registries.RegistryObject;
- import org.slf4j.Logger;
- @Mod("pyrotastic")
- public class PyrotasticMod
- {
- public static final Logger LOGGER = LogUtils.getLogger();
- public static final String MOD_ID = "pyrotastic";
- private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MOD_ID);
- private static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MOD_ID);
- private static final DeferredRegister<EntityType<?>> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES, MOD_ID);
- private static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, MOD_ID);
- private static final DeferredRegister<RecipeSerializer<?>> RECIPE_SERIALIZERS = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, MOD_ID);
- private static final DeferredRegister<ParticleType<?>> PARTICLES = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, MOD_ID);
- private static final DeferredRegister<SoundEvent> SOUND_EVENTS = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, MOD_ID);
- public static final RegistryObject<Item> FIREWORK_SCHEMATIC = ITEMS.register("firework_schematic", () -> new FireworkSchematicItem(new Item.Properties().stacksTo(1).tab(CreativeModeTab.TAB_MISC)));
- public static final RegistryObject<Block> FIREWORKS_CRATE = BLOCKS.register("fireworks_crate", () -> new FireworksCrateBlock(BlockBehaviour.Properties.of(Material.WOOD)));
- public static final RegistryObject<Item> FIREWORKS_CRATE_ITEM = ITEMS.register("fireworks_crate", () -> new FireworksCrateBlockItem(FIREWORKS_CRATE.get(), new Item.Properties().tab(CreativeModeTab.TAB_REDSTONE)));
- 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));
- 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()));
- public static final RegistryObject<SimpleRecipeSerializer<FireworkSchematicRecipe>> SCHEMATIC_RECIPE = RECIPE_SERIALIZERS.register("crafting_special_firework_schematic", () -> new SimpleRecipeSerializer<>(FireworkSchematicRecipe::new));
- public static final RegistryObject<SimpleRecipeSerializer<StarAndSchematicRecipe>> STAR_SCHEMATIC_RECIPE = RECIPE_SERIALIZERS.register("crafting_special_star_and_schematic", () -> new SimpleRecipeSerializer<>(StarAndSchematicRecipe::new));
- public static final RegistryObject<ParticleType<SimpleParticleType>> CRATE_SMOKE = PARTICLES.register("crate_smoke", () -> new SimpleParticleType(false));
- 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")));
- 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")));
- public PyrotasticMod()
- {
- MinecraftForge.EVENT_BUS.register(this);
- IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
- modEventBus.addListener(this::registerItemColors);
- modEventBus.addListener(this::registerLayerDefinitions);
- modEventBus.addListener(this::registerRenderers);
- modEventBus.addListener(this::registerParticleFactories);
- ITEMS.register(modEventBus);
- BLOCKS.register(modEventBus);
- ENTITIES.register(modEventBus);
- BLOCK_ENTITIES.register(modEventBus);
- RECIPE_SERIALIZERS.register(modEventBus);
- PARTICLES.register(modEventBus);
- SOUND_EVENTS.register(modEventBus);
- }
- @SubscribeEvent
- public void registerItemColors(ColorHandlerEvent.Item event) {
- event.getItemColors().register(((pStack, pTintIndex) -> pTintIndex == 0 ? -1 : RocketColorHandler.getColor(pStack)), Items.FIREWORK_ROCKET);
- }
- @SubscribeEvent
- public void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) {
- event.registerLayerDefinition(FireworkRocketModel.MODEL_LAYER_LOCATION, FireworkRocketModel::createBodylayer);
- }
- @SubscribeEvent
- public void registerRenderers(EntityRenderersEvent.RegisterRenderers event) {
- event.registerEntityRenderer(FIREWORKS_CRATE_ENTITY.get(), FireworksCrateEntityRenderer::new);
- }
- @SubscribeEvent
- @OnlyIn(Dist.CLIENT)
- public void registerParticleFactories(ParticleFactoryRegisterEvent event) {
- ParticleEngine particleManager = Minecraft.getInstance().particleEngine;
- particleManager.register(CRATE_SMOKE.get(), CrateSmokeParticle.SmokeFactory::new);
- }
- }
Add Comment
Please, Sign In to add comment