package shedar.mods.ic2.nuclearcontrol.items; import cpw.mods.fml.common.Loader; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; import shedar.mods.ic2.nuclearcontrol.IC2NuclearControl; import shedar.mods.ic2.nuclearcontrol.crossmod.EnergyStorageData; import shedar.mods.ic2.nuclearcontrol.crossmod.ModLib; import shedar.mods.ic2.nuclearcontrol.crossmod.RF.CrossTE; import shedar.mods.ic2.nuclearcontrol.crossmod.mekanism.CrossMekanism; import shedar.mods.ic2.nuclearcontrol.utils.EnergyStorageHelper; import shedar.mods.ic2.nuclearcontrol.utils.ItemStackUtils; import shedar.mods.ic2.nuclearcontrol.utils.NuclearNetworkHelper; public class ItemKitEnergySensor extends ItemSensorKitBase { public ItemKitEnergySensor() { super("kitEnergy"); } @Override protected ItemStack getItemStackByDamage(int damage) { return new ItemStack(IC2NuclearControl.itemEnergySensorLocationCard); } protected ItemStack getItemStackbyType(EnergyStorageData storageData, TileEntity tileEntity) { if (tileEntity != null) { if (CrossMekanism.isMekanismPresent() && CrossMekanism.classExists && tileEntity instanceof mekanism.api.energy.IStrictEnergyStorage) { return new ItemStack(CrossMekanism.mekCard); } else if (storageData.type == EnergyStorageData.TARGET_TYPE_RF) { return new ItemStack(CrossTE.RFSensorCard); } return new ItemStack(IC2NuclearControl.itemEnergySensorLocationCard); } return new ItemStack(IC2NuclearControl.itemEnergySensorLocationCard); } @Override protected ChunkCoordinates getTargetCoordinates(World world, int x, int y, int z, ItemStack stack) { return null; } @Override public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { if (player == null) return false; boolean isServer = player instanceof EntityPlayerMP; if (!isServer) return false; EnergyStorageData storage = EnergyStorageHelper.getStorageAt(world, x, y, z, EnergyStorageData.TARGET_TYPE_UNKNOWN); if (storage != null) { ItemStack sensorLocationCard = getItemStackbyType(storage, world.getTileEntity(x, y, z)); NBTTagCompound nbtTagCompound = ItemStackUtils.getTagCompound(sensorLocationCard); nbtTagCompound.setInteger("x", x); nbtTagCompound.setInteger("y", y); nbtTagCompound.setInteger("z", z); nbtTagCompound.setInteger("targetType", storage.type); player.inventory.mainInventory[player.inventory.currentItem] = sensorLocationCard; if (!world.isRemote) { NuclearNetworkHelper.chatMessage(player, "SensorKit"); } return true; } return false; } }