package crazypants.enderio.enderface;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.EnderIO;
import crazypants.enderio.GuiHandler;
import crazypants.enderio.ModObject;
public class ItemEnderface extends Item implements IGuiHandler {
public static final String KEY_IO_SET = "enderFaceIoSet";
public static final String KEY_IO_X = "enderFaceIoX";
public static final String KEY_IO_Y = "enderFaceIoY";
public static final String KEY_IO_Z = "enderFaceIoZ";
public static final String KEY_DIMENSION = "enderFaceDimension";
public static ItemEnderface create() {
ItemEnderface result = new ItemEnderface();
result.init();
return result;
}
protected ItemEnderface() {
setCreativeTab(null);
setUnlocalizedName("enderio." + ModObject.itemEnderface.name());
setMaxStackSize(1);
}
protected void init() {
GameRegistry.registerItem(this, ModObject.itemEnderface.unlocalisedName);
EnderIO.guiHandler.registerGuiHandler(GuiHandler.GUI_ID_ENDERFACE, this);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister IIconRegister) {
itemIcon = IIconRegister.registerIcon("enderio:enderface");
}
@Override
@SideOnly(Side.CLIENT)
public boolean hasEffect(ItemStack par1ItemStack, int pass) {
return true;
}
@Override
public void onCreated(ItemStack itemStack, World world, EntityPlayer entityPlayer) {
super.onCreated(itemStack, world, entityPlayer);
NBTTagCompound nbttagcompound = new NBTTagCompound();
nbttagcompound.setBoolean(KEY_IO_SET, false);
nbttagcompound.setInteger(KEY_IO_X, -1);
nbttagcompound.setInteger(KEY_IO_Y, -1);
nbttagcompound.setInteger(KEY_IO_Z, -1);
nbttagcompound.setInteger(KEY_DIMENSION, -1);
itemStack.setTagCompound(nbttagcompound);
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return null;
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GuiEnderface(player, world, x, y, z);
}
@Override
public ItemStack onItemRightClick(ItemStack itemStack, World world, final EntityPlayer entityPlayer) {
// if(!world.isRemote) {
// return itemStack;
// }
//
// NBTTagCompound tag = itemStack.getTagCompound();
// boolean tagsSet = tag != null && tag.getBoolean(KEY_IO_SET);
//
// if(tag != null && tag.getBoolean(KEY_IO_SET)) {
//
// int x = tag.getInteger(KEY_IO_X);
// int y = tag.getInteger(KEY_IO_Y);
// int z = tag.getInteger(KEY_IO_Z);
// int dimension = tag.getInteger(KEY_DIMENSION);
//
// if(world.provider.dimensionId != dimension) {
// ChatMessageComponent c = ChatMessageComponent.createFromText(EnderIO.lang.localize("itemEnderface.wrongDimension"));
// entityPlayer.sendChatToPlayer(c);
// return itemStack;
// }
//
// Chunk c = world.getChunkFromBlockCoords(x, z);
// if(c == null || !c.isChunkLoaded) {
// ChatMessageComponent cm = ChatMessageComponent.createFromText(EnderIO.lang.localize("itemEnderface.tooFar"));
// entityPlayer.sendChatToPlayer(cm);
// return itemStack;
// }
// int blockId = world.getBlockId(x, y, z);
// if(blockId != EnderIO.blockEnderIo.blockID) {
// ChatMessageComponent cm = ChatMessageComponent.createFromText(EnderIO.lang.localize("itemEnderface.destroyed"));
// entityPlayer.sendChatToPlayer(cm);
// return itemStack;
// }
// entityPlayer.openGui(EnderIO.instance, GuiHandler.GUI_ID_ENDERFACE, world, x, y, z);
// return itemStack;
// }
// ChatMessageComponent cm = ChatMessageComponent.createFromText(EnderIO.lang.localize("itemEnderface.noSync"));
// entityPlayer.sendChatToPlayer(cm);
return itemStack;
}
}