Package erogenousbeef.bigreactors.common

Source Code of erogenousbeef.bigreactors.common.BRLoader

package erogenousbeef.bigreactors.common;

import net.minecraft.block.Block;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.FillBucketEvent;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.Event.Result;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import erogenousbeef.bigreactors.common.data.StandardReactants;
import erogenousbeef.core.multiblock.MultiblockEventHandler;

@Mod(modid = BRLoader.MOD_ID, name = BigReactors.NAME, version = BRConfig.VERSION, acceptedMinecraftVersions = BRConfig.MINECRAFT_VERSION, dependencies = BRLoader.DEPENDENCIES)
public class BRLoader {

  public static final String MOD_ID = BigReactors.MODID;
    public static final String DEPENDENCIES = "required-after:Forge@[10.13.0.1205,);required-after:CoFHCore;after:ThermalExpansion";
 
  @Instance(MOD_ID)
  public static BRLoader instance;

  @SidedProxy(clientSide = "erogenousbeef.bigreactors.client.ClientProxy", serverSide = "erogenousbeef.bigreactors.common.CommonProxy")
  public static CommonProxy proxy;
 
  @Mod.Metadata(MOD_ID)
  public static ModMetadata metadata;
 
  private MultiblockEventHandler multiblockEventHandler;
 
  @EventHandler
  public void preInit(FMLPreInitializationEvent event)
  {
    BigReactors.registerOres(0, true);
    BigReactors.registerIngots(0);
    BigReactors.registerFuelRods(0, true);
    BigReactors.registerReactorPartBlocks(0, true);
    BigReactors.registerTurbineParts();
    BigReactors.registerDevices(0true);
    BigReactors.registerFluids(0true);
    BigReactors.registerCreativeParts(0, true);
    BigReactors.registerItems();

    StandardReactants.register();
   
    BigReactors.eventHandler = new BREventHandler();
    MinecraftForge.EVENT_BUS.register(BigReactors.eventHandler);
    MinecraftForge.EVENT_BUS.register(proxy);
   
    multiblockEventHandler = new MultiblockEventHandler();
    MinecraftForge.EVENT_BUS.register(multiblockEventHandler);
   
    proxy.preInit();
   
    Fluid waterFluid = FluidRegistry.WATER; // Force-load water to prevent startup crashes
  }

  @EventHandler
  public void load(FMLInitializationEvent evt)
  {
    proxy.init();
    BigReactors.register(this);
  }
 
  @EventHandler
  public void postInit(FMLPostInitializationEvent evt) {
    proxy.postInit();
  }
 
  @EventHandler
  public void onIMCEvent(FMLInterModComms.IMCEvent event) {
    // TODO
  }
 
  // GAME EVENT HANDLERS
  // FORGE EVENT HANDLERS

  // Handle bucketing of reactor fluids
  @SubscribeEvent
    public void onBucketFill(FillBucketEvent e)
    {
        if(e.current.getItem() != Items.bucket)
        {
            return;
        }
        ItemStack filledBucket = fillBucket(e.world, e.target);
        if(filledBucket != null)
        {
            e.world.setBlockToAir(e.target.blockX, e.target.blockY, e.target.blockZ);
            e.result = filledBucket;
            e.setResult(Result.ALLOW);
        }
    }
   
    private ItemStack fillBucket(World world, MovingObjectPosition mop)
    {
        Block block = world.getBlock(mop.blockX, mop.blockY, mop.blockZ);
        if(block == BigReactors.fluidCyaniteStill) return new ItemStack(BigReactors.fluidCyaniteBucketItem);
        else if(block == BigReactors.fluidYelloriumStill) return new ItemStack(BigReactors.fluidYelloriumBucketItem);
        else return null;
    }
}
TOP

Related Classes of erogenousbeef.bigreactors.common.BRLoader

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.