2013-05-23 21:07:28 -07:00
|
|
|
package magicbees.item;
|
2013-01-01 04:05:22 -08:00
|
|
|
|
2013-01-10 22:40:04 -08:00
|
|
|
import java.util.List;
|
|
|
|
|
|
2013-05-13 13:11:34 -07:00
|
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
2013-01-01 04:05:22 -08:00
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
|
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
2013-01-26 13:42:39 -08:00
|
|
|
import forestry.api.core.Tabs;
|
2013-01-10 22:40:04 -08:00
|
|
|
import forestry.api.recipes.RecipeManagers;
|
2013-05-23 21:07:28 -07:00
|
|
|
import magicbees.block.types.PlankType;
|
|
|
|
|
import magicbees.item.types.CapsuleType;
|
2013-08-25 20:43:00 -07:00
|
|
|
import magicbees.item.types.FluidType;
|
2013-05-23 21:07:28 -07:00
|
|
|
import magicbees.main.CommonProxy;
|
2013-05-29 11:15:25 -07:00
|
|
|
import magicbees.main.MagicBees;
|
|
|
|
|
import magicbees.main.utils.TabMagicBees;
|
2013-05-23 21:07:28 -07:00
|
|
|
import magicbees.main.utils.VersionInfo;
|
2013-01-10 22:40:04 -08:00
|
|
|
import net.minecraft.block.Block;
|
2013-04-15 00:17:50 -07:00
|
|
|
import net.minecraft.client.renderer.texture.IconRegister;
|
2013-01-01 04:05:22 -08:00
|
|
|
import net.minecraft.creativetab.CreativeTabs;
|
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
|
import net.minecraft.item.Item;
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
2013-01-10 22:40:04 -08:00
|
|
|
import net.minecraft.util.EnumMovingObjectType;
|
2013-04-15 00:17:50 -07:00
|
|
|
import net.minecraft.util.Icon;
|
2013-01-10 22:40:04 -08:00
|
|
|
import net.minecraft.util.MovingObjectPosition;
|
2013-01-01 04:05:22 -08:00
|
|
|
import net.minecraft.world.World;
|
2013-01-10 22:40:04 -08:00
|
|
|
import net.minecraftforge.liquids.LiquidContainerData;
|
|
|
|
|
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
|
|
|
|
import net.minecraftforge.liquids.LiquidDictionary;
|
|
|
|
|
import net.minecraftforge.liquids.LiquidStack;
|
2013-01-01 04:05:22 -08:00
|
|
|
|
|
|
|
|
public class ItemCapsule extends Item
|
|
|
|
|
{
|
2013-01-26 13:42:39 -08:00
|
|
|
private CapsuleType capsuleType;
|
2013-01-01 04:05:22 -08:00
|
|
|
|
2013-03-06 19:33:09 -08:00
|
|
|
public ItemCapsule(CapsuleType type, int itemId, int maxStackSize)
|
2013-01-01 04:05:22 -08:00
|
|
|
{
|
|
|
|
|
super(itemId);
|
|
|
|
|
this.capsuleType = type;
|
2013-05-29 11:15:25 -07:00
|
|
|
this.setCreativeTab(TabMagicBees.tabMagicBees);
|
2013-01-10 22:40:04 -08:00
|
|
|
this.setHasSubtypes(true);
|
2013-03-06 19:33:09 -08:00
|
|
|
this.setMaxStackSize(maxStackSize);
|
2013-05-29 11:15:25 -07:00
|
|
|
this.setUnlocalizedName("capsule." + type.toString().toLowerCase());
|
|
|
|
|
GameRegistry.registerItem(this, "capsule." + type.toString().toLowerCase());
|
2013-01-10 22:40:04 -08:00
|
|
|
}
|
2013-01-28 14:22:40 -08:00
|
|
|
|
|
|
|
|
public CapsuleType getType()
|
|
|
|
|
{
|
|
|
|
|
return this.capsuleType;
|
|
|
|
|
}
|
2013-01-10 22:40:04 -08:00
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getItemDisplayName(ItemStack itemStack)
|
|
|
|
|
{
|
2013-08-25 20:43:00 -07:00
|
|
|
return String.format(this.capsuleType.getLocalizedName(), FluidType.values()[itemStack.getItemDamage()].getDisplayName());
|
2013-01-10 22:40:04 -08:00
|
|
|
}
|
|
|
|
|
|
2013-08-25 20:43:00 -07:00
|
|
|
public ItemStack getCapsuleForLiquid(FluidType l)
|
2013-01-10 22:40:04 -08:00
|
|
|
{
|
|
|
|
|
return new ItemStack(this, 1, l.ordinal());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
|
|
|
public void getSubItems(int par1, CreativeTabs tab, List itemList)
|
|
|
|
|
{
|
2013-08-25 20:43:00 -07:00
|
|
|
for (FluidType l : FluidType.values())
|
2013-01-10 22:40:04 -08:00
|
|
|
{
|
|
|
|
|
if (l.available)
|
|
|
|
|
{
|
|
|
|
|
itemList.add(new ItemStack(this, 1, l.ordinal()));
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-01-01 04:05:22 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
|
|
|
public boolean requiresMultipleRenderPasses()
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2013-04-15 00:17:50 -07:00
|
|
|
|
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
|
|
|
public void registerIcons(IconRegister par1IconRegister)
|
|
|
|
|
{
|
|
|
|
|
this.itemIcon = par1IconRegister.registerIcon(VersionInfo.ModName.toLowerCase() + ":capsule" + this.capsuleType.getName().substring(0, 1).toUpperCase()
|
|
|
|
|
+ this.capsuleType.getName().substring(1));
|
2013-08-25 20:43:00 -07:00
|
|
|
for (FluidType t : FluidType.values())
|
2013-04-15 00:17:50 -07:00
|
|
|
{
|
2013-08-25 20:43:00 -07:00
|
|
|
if (t != FluidType.EMPTY && t.liquidIcon == null)
|
2013-04-15 00:17:50 -07:00
|
|
|
{
|
|
|
|
|
t.liquidIcon = par1IconRegister.registerIcon(VersionInfo.ModName.toLowerCase() + ":liquids/" + t.liquidID);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-01-01 04:05:22 -08:00
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@SideOnly(Side.CLIENT)
|
2013-04-15 00:17:50 -07:00
|
|
|
public Icon getIconFromDamageForRenderPass(int metadata, int pass)
|
2013-01-01 04:05:22 -08:00
|
|
|
{
|
2013-04-15 00:17:50 -07:00
|
|
|
Icon i = this.itemIcon;
|
|
|
|
|
if (metadata != 0 && pass == 0)
|
2013-01-01 04:05:22 -08:00
|
|
|
{
|
2013-08-25 20:43:00 -07:00
|
|
|
i = FluidType.values()[Math.max(0, Math.min(metadata, FluidType.values().length - 1))].liquidIcon;
|
2013-01-01 04:05:22 -08:00
|
|
|
}
|
2013-04-15 00:17:50 -07:00
|
|
|
return i;
|
2013-01-01 04:05:22 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int getRenderPasses(int metadata)
|
|
|
|
|
{
|
2013-04-15 00:17:50 -07:00
|
|
|
return (metadata == 0) ? 1 : 2;
|
2013-01-01 04:05:22 -08:00
|
|
|
}
|
|
|
|
|
}
|