package shedar.mods.ic2.nuclearcontrol.items; import ic2.core.block.generator.tileentity.TileEntityBaseGenerator; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidTankInfo; import shedar.mods.ic2.nuclearcontrol.IC2NuclearControl; import shedar.mods.ic2.nuclearcontrol.tileentities.TileEntityAverageCounter; import shedar.mods.ic2.nuclearcontrol.tileentities.TileEntityEnergyCounter; import shedar.mods.ic2.nuclearcontrol.utils.LiquidStorageHelper; import shedar.mods.ic2.nuclearcontrol.utils.TextureResolver; public class ItemKitMultipleSensor extends ItemSensorKitBase { public static final int TYPE_COUNTER = 0; public static final int TYPE_LIQUID = 1; public static final int TYPE_GENERATOR = 2; private static final String TEXTURE_KIT_COUNTER = "kitCounter"; private static final String TEXTURE_KIT_LIQUID = "kitLiquid"; private static final String TEXTURE_KIT_GENERATOR = "kitGenerator"; private IIcon iconCounter; private IIcon iconLiquid; private IIcon iconGenerator; public ItemKitMultipleSensor() { super(""); } @Override public String getUnlocalizedName(ItemStack stack) { int damage = stack.getItemDamage(); switch (damage) { case TYPE_COUNTER: return "item.ItemCounterSensorKit"; case TYPE_LIQUID: return "item.ItemLiquidSensorKit"; case TYPE_GENERATOR: return "item.ItemGeneratorSensorKit"; } return ""; } @Override public void registerIcons(IIconRegister iconRegister) { iconCounter = iconRegister.registerIcon(TextureResolver.getItemTexture(TEXTURE_KIT_COUNTER)); iconLiquid = iconRegister.registerIcon(TextureResolver.getItemTexture(TEXTURE_KIT_LIQUID)); iconGenerator = iconRegister.registerIcon(TextureResolver.getItemTexture(TEXTURE_KIT_GENERATOR)); } @Override public IIcon getIconFromDamage(int damage) { switch (damage) { case TYPE_COUNTER: return iconCounter; case TYPE_LIQUID: return iconLiquid; case TYPE_GENERATOR: return iconGenerator; } return null; } @Override protected ChunkCoordinates getTargetCoordinates(World world, int x, int y, int z, ItemStack stack) { int damage = stack.getItemDamage(); switch (damage) { case TYPE_COUNTER: TileEntity entity = world.getTileEntity(x, y, z); if (entity != null && (entity instanceof TileEntityEnergyCounter || entity instanceof TileEntityAverageCounter)) { return new ChunkCoordinates(x, y, z); } break; case TYPE_LIQUID: FluidTankInfo tank = LiquidStorageHelper.getStorageAt(world, x, y, z); if (tank != null) { return new ChunkCoordinates(x, y, z); } break; case TYPE_GENERATOR: TileEntity tileentity = world.getTileEntity(x, y, z); if (tileentity != null && tileentity instanceof TileEntityBaseGenerator) { return new ChunkCoordinates(x, y, z); } break; default: break; } return null; } @Override protected ItemStack getItemStackByDamage(int damage) { switch (damage) { case TYPE_COUNTER: return new ItemStack(IC2NuclearControl.itemMultipleSensorLocationCard, 1, TYPE_COUNTER); case TYPE_LIQUID: return new ItemStack(IC2NuclearControl.itemMultipleSensorLocationCard, 1, TYPE_LIQUID); case TYPE_GENERATOR: return new ItemStack(IC2NuclearControl.itemMultipleSensorLocationCard, 1, TYPE_GENERATOR); } return null; } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List list) { list.add(new ItemStack(item, 1, TYPE_COUNTER)); list.add(new ItemStack(item, 1, TYPE_LIQUID)); list.add(new ItemStack(item, 1, TYPE_GENERATOR)); } }