package sourcecoded.quantum.sceptre.focus; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import sourcecoded.quantum.api.block.Colourizer; import sourcecoded.quantum.api.sceptre.ISceptreFocus; import sourcecoded.quantum.api.sceptre.SceptreFocusUtils; public class FocusDematerialization implements ISceptreFocus { @Override public String getFocusIdentifier() { return "QA|dematerialization"; } @Override public String getName() { return "qa.sceptre.focus.dematerialization"; } @Override public String[] getLore(ItemStack item) { NBTTagCompound compound = SceptreFocusUtils.getAllocatedNBT(this, item); if (compound.hasKey("boundX")) return new String[]{"qa.sceptre.focus.dematerialization.lore.0", "qa.sceptre.focus.dematerialization.lore.1", "Target: " + (int)compound.getDouble("boundX") + ", " + (int)compound.getDouble("boundY") + ", " + (int)compound.getDouble("boundZ")}; return new String[]{"qa.sceptre.focus.dematerialization.lore.0", "qa.sceptre.focus.dematerialization.lore.1"}; } @Override public boolean canBeUsed(EntityPlayer player, ItemStack itemstack) { return true; } @Override public EnumChatFormatting getNameColour() { return EnumChatFormatting.DARK_GRAY; } @Override public void onActivated(ItemStack item) { } @Override public void onDeactivated(ItemStack item) { } @Override public void onClickBegin(EntityPlayer player, ItemStack item, World world) { if (!player.worldObj.isRemote && player.isSneaking()) { NBTTagCompound compound = SceptreFocusUtils.getAllocatedNBT(this, item); compound.setDouble("boundX", player.posX); compound.setDouble("boundY", player.posY); compound.setDouble("boundZ", player.posZ); } } @Override public void onClickEnd(EntityPlayer player, ItemStack item, World world, int ticker) { } @Override public boolean onBlockClick(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { return false; } @Override public void onItemTick(ItemStack item) { } @Override public void onUsingTick(ItemStack item) { } // @Override // public AbstractGesture[] getAvailableGestures() { // return new AbstractGesture[] {new GestureSquare(this)}; // } @Override public float[] getRGB() { return Colourizer.GRAY.rgb; } // public void callbackGesture(EntityPlayer player, World world, GesturePointMap pointMap, ItemStack item) { // System.err.println("Yooooo"); // if (!player.worldObj.isRemote) { // NBTTagCompound compound = SceptreFocusUtils.getAllocatedNBT(this, item); // if (compound.hasKey("boundX")) { // player.setPositionAndUpdate(compound.getDouble("boundX"), compound.getDouble("boundY"), compound.getDouble("boundZ")); // // player.fallDistance = 0F; // // if (RandomUtils.nextInt(0, 3) == 2) // player.worldObj.addWeatherEffect(new EntityLightningBolt(player.worldObj, player.posX, player.posY, player.posZ)); // } // } // } }