Newer
Older
Beeriffic / src / main / java / com / watschman / beeriffic / Beeriffic.java
package com.watschman.beeriffic;

import com.watschman.beeriffic.blocks.ModBlocks;
import com.watschman.beeriffic.items.ModItems;
import com.watschman.beeriffic.util.RegistryHandler;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import org.apache.logging.log4j.Logger;

import java.util.ArrayList;
import java.util.List;

@Mod(modid = Beeriffic.MOD_ID, name = Beeriffic.MOD_NAME, version = Beeriffic.VERSION, dependencies = "required-after:forestry@[5.8.2,]")
public class Beeriffic {

    public static final String MOD_ID = "beeriffic";
    public static final String MOD_NAME = "Beeriffic";
    public static final String VERSION = "0.0.0.3";
    public static final String MOD_AUTHOR = "Watschman";

    //Since we have @Side Annotations, proxies aren't technically needed anymore.
    /*
    public static final String SERVER_PROXY = "com.watschman.beeriffic.proxy.ServerProxy";
    public static final String CLIENT_PROXY = "com.watschman.beeriffic.proxy.ClientProxy";
    */

    public static final List<Item> MOD_ITEMS = new ArrayList<>();
    public static final List<Block> MOD_BLOCKS = new ArrayList<>();

    public static Logger logger;

    /**
     * This is the instance of your mod as created by Forge. It will never be null.
     */
    @Mod.Instance(MOD_ID)
    public static Beeriffic instance;

    /*
    @SidedProxy(clientSide = Beeriffic.CLIENT_PROXY, serverSide = Beeriffic.SERVER_PROXY, modId = Beeriffic.MOD_ID)
    public static IProxy proxy;
    */

    /**
     * This is the first initialization event. Register tile entities here.
     * The registry events below will have fired prior to entry to this method.
     */
    @Mod.EventHandler
    public void preinit(FMLPreInitializationEvent event) {
        logger = event.getModLog();
        logger.info("PreInit Started");

        logger.info("PreInit Ended");
    }

    /**
     * This is the second initialization event. Register custom recipes
     */
    @Mod.EventHandler
    public void init(FMLInitializationEvent event) {
        logger.info("Init Started");

        RegistryHandler.registerBeeBranches();

        RegistryHandler.registerBees();

        RegistryHandler.registerBeeMutations();

        RegistryHandler.registerCentrifugeRecipes();

        RegistryHandler.registerHiveGen();

        RegistryHandler.registerColorHandlers();

        logger.info("Init Ended");
    }

    /**
     * This is the final initialization event. Register actions from other mods here
     */
    @Mod.EventHandler
    public void postinit(FMLPostInitializationEvent event) {
        logger.info("PostInit Started");
        logger.info("PostInit Ended");
    }

    @Mod.EventBusSubscriber
    public static class ObjectRegistryHandler {
        @SubscribeEvent
        public static void addItems(RegistryEvent.Register<Item> event) {
            Beeriffic.logger.info("ItemInit started...");

            ModItems.init();

            for(Item item : Beeriffic.MOD_ITEMS) {
                event.getRegistry().register(item);
            }

            RegistryHandler.registerItemModels();

            RegistryHandler.registerOreDictEntries();

            Beeriffic.logger.info("ItemInit ended...");
        }

        @SubscribeEvent
        public static void addBlocks(RegistryEvent.Register<Block> event) {
            Beeriffic.logger.info("BlockInit started...");

            ModBlocks.init();

            for(Block block : Beeriffic.MOD_BLOCKS) {
                event.getRegistry().register(block);
            }

            RegistryHandler.registerBlockModels();

            Beeriffic.logger.info("BlockInit ended...");
        }
    }
}