/** * TO DO: * Server - adding ~11+ locations is too much for the GUI, won't go to correct places (try large scale on TV, then 15 locs) * Fire block faces too dark - west-facing for busy; west and east-facing for idle */ package com.fredtargaryen.floocraft; import com.fredtargaryen.floocraft.block.*; import com.fredtargaryen.floocraft.client.gui.GuiHandler; import com.fredtargaryen.floocraft.item.ItemFlooPowder; import com.fredtargaryen.floocraft.item.ItemFlooSign; import com.fredtargaryen.floocraft.network.PacketHandler; import com.fredtargaryen.floocraft.proxy.CommonProxy; import com.fredtargaryen.floocraft.tileentity.TileEntityFireplace; import com.fredtargaryen.floocraft.tileentity.TileEntityFloowerPot; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.SidedProxy; 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.network.NetworkRegistry; import net.minecraftforge.fml.common.registry.GameRegistry; @Mod(modid=DataReference.MODID, name=DataReference.MODNAME, version=DataReference.VERSION) public class FloocraftBase { /** * The instance of your mod that Forge uses. */ @Mod.Instance(DataReference.MODID) public static FloocraftBase instance; /** * Declare all blocks here */ public static Block blockFlooTorch; public static Block greenFlamesBusy; public static Block greenFlamesIdle; /** * Temporary green flames which replace any normal fire at the destination fireplace, so that players aren't * burnt on arrival. Disappear after 100 ticks. */ public static Block greenFlamesTemp; public static Block blockFlooSign; public static Block floowerPot; /** * Declare all items here */ public static Item itemFlooSign; public static Item iFlooTorch; public static Item iFloowerPot; public static Item floopowder1t; public static Item floopowder2t; public static Item floopowder4t; public static Item floopowder8t; public static Item floopowderc; /** * Declare sounds here */ //When a fire makes contact with Floo Powder public static SoundEvent greened; //When a player teleports using a fireplace public static SoundEvent tp; //When a player is teleported by a Floo Torch public static SoundEvent flick; /** * Says where the client and server 'proxy' code is loaded. */ @SidedProxy(clientSide=DataReference.CLIENTPROXYPATH, serverSide=DataReference.SERVERPROXYPATH) public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { //Makes all packets to be used PacketHandler.init(); //Makes all blocks and items to be used blockFlooTorch = new BlockFlooTorch() .setUnlocalizedName("flootorch") .setRegistryName("flootorch") .setLightLevel(1.0F) .setCreativeTab(CreativeTabs.DECORATIONS); greenFlamesBusy = new GreenFlamesBusy() .setUnlocalizedName("greenflamesbusy") .setRegistryName("greenflamesbusy") .setLightLevel(1.0F); greenFlamesIdle = new GreenFlamesIdle() .setUnlocalizedName("greenflamesidle") .setRegistryName("greenflamesidle") .setLightLevel(0.875F); greenFlamesTemp = new GreenFlamesTemp() .setUnlocalizedName("greenflamesbusy") .setRegistryName("greenflamestemp") .setLightLevel(1.0F); blockFlooSign = new BlockFlooSign() .setRegistryName("blockfloosign"); floowerPot = new BlockFloowerPot() .setUnlocalizedName("floowerpot") .setRegistryName("floowerpot") .setCreativeTab(CreativeTabs.MISC); iFlooTorch = new ItemBlock(blockFlooTorch) .setUnlocalizedName("flootorch") .setRegistryName("flootorch"); iFloowerPot = new ItemBlock(floowerPot) .setUnlocalizedName("floowerpot") .setRegistryName("floowerpot"); floopowder1t = new ItemFlooPowder((byte)1) .setMaxStackSize(64) .setUnlocalizedName("floopowder") .setRegistryName("floopowder_one") .setCreativeTab(CreativeTabs.MISC); floopowder2t = new ItemFlooPowder((byte)2) .setMaxStackSize(64) .setUnlocalizedName("floopowder") .setRegistryName("floopowder_two") .setCreativeTab(CreativeTabs.MISC); floopowder4t = new ItemFlooPowder((byte)4) .setMaxStackSize(64) .setUnlocalizedName("floopowder") .setRegistryName("floopowder_four") .setCreativeTab(CreativeTabs.MISC); floopowder8t = new ItemFlooPowder((byte)8) .setMaxStackSize(64) .setUnlocalizedName("floopowder") .setRegistryName("floopowder_eight") .setCreativeTab(CreativeTabs.MISC); floopowderc = new ItemFlooPowder((byte)9) .setMaxStackSize(64) .setUnlocalizedName("floopowder") .setRegistryName("floopowder_infinite") .setCreativeTab(CreativeTabs.MISC); itemFlooSign = new ItemFlooSign() .setMaxStackSize(16) .setUnlocalizedName("itemfloosign") .setRegistryName("itemfloosign") .setCreativeTab(CreativeTabs.DECORATIONS); //Registering blocks GameRegistry.register(blockFlooSign); GameRegistry.register(blockFlooTorch); GameRegistry.register(greenFlamesBusy); GameRegistry.register(greenFlamesIdle); GameRegistry.register(greenFlamesTemp); GameRegistry.register(floowerPot); //Registering items GameRegistry.register(iFloowerPot); GameRegistry.register(iFlooTorch); GameRegistry.register(floopowder1t); GameRegistry.register(floopowder2t); GameRegistry.register(floopowder4t); GameRegistry.register(floopowder8t); GameRegistry.register(floopowderc); GameRegistry.register(itemFlooSign); //Registering Tile Entities GameRegistry.registerTileEntity(TileEntityFireplace.class, "fireplaceTE"); GameRegistry.registerTileEntity(TileEntityFloowerPot.class, "potTE"); //Registering sounds greened = GameRegistry.register(new SoundEvent(new ResourceLocation(DataReference.MODID, "greened")).setRegistryName("greened")); tp = GameRegistry.register(new SoundEvent(new ResourceLocation(DataReference.MODID, "tp")).setRegistryName("tp")); flick = GameRegistry.register(new SoundEvent(new ResourceLocation(DataReference.MODID, "flick")).setRegistryName("flick")); //Adding recipes //Infinite powder is creative only so no recipe GameRegistry.addShapelessRecipe(new ItemStack(floopowder1t,8), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.GUNPOWDER)); GameRegistry.addShapelessRecipe(new ItemStack(floopowder2t,8), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.GUNPOWDER)); GameRegistry.addShapelessRecipe(new ItemStack(floopowder4t,8), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.GUNPOWDER)); GameRegistry.addShapelessRecipe(new ItemStack(floopowder8t,8), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.ENDER_PEARL), new ItemStack(Items.GUNPOWDER)); GameRegistry.addShapelessRecipe(new ItemStack(FloocraftBase.itemFlooSign,1), new ItemStack(Items.SIGN), new ItemStack(floopowder1t,8)); GameRegistry.addShapelessRecipe(new ItemStack(FloocraftBase.blockFlooTorch,4), new ItemStack(Items.STICK), new ItemStack(FloocraftBase.floopowder1t)); GameRegistry.addShapelessRecipe(new ItemStack(FloocraftBase.floowerPot), new ItemStack(Items.FLOWER_POT), new ItemStack(FloocraftBase.floopowder1t)); } @EventHandler public void load(FMLInitializationEvent event) { //Proxy registering NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler()); proxy.registerRenderers(); proxy.registerModels(); proxy.registerTickHandlers(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } }