2013-04-17 02:48:49 +02:00
|
|
|
package StevenDimDoors.mod_pocketDim.items;
|
2013-02-18 03:46:16 +01:00
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import net.minecraft.block.material.Material;
|
2013-03-29 23:19:27 +01:00
|
|
|
import net.minecraft.client.renderer.texture.IconRegister;
|
2013-02-18 03:46:16 +01:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.entity.player.EntityPlayerMP;
|
|
|
|
import net.minecraft.item.Item;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.util.MathHelper;
|
|
|
|
import net.minecraft.util.MovingObjectPosition;
|
|
|
|
import net.minecraft.util.Vec3;
|
|
|
|
import net.minecraft.world.World;
|
2013-08-31 18:58:35 +02:00
|
|
|
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
|
|
|
|
import StevenDimDoors.mod_pocketDim.core.PocketManager;
|
2013-02-18 03:46:16 +01:00
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
|
|
|
|
public class itemRiftRemover extends Item
|
|
|
|
{
|
|
|
|
public itemRiftRemover(int par1, Material par2Material)
|
|
|
|
{
|
|
|
|
super(par1);
|
|
|
|
this.setMaxStackSize(1);
|
2013-07-13 20:13:01 +02:00
|
|
|
this.setCreativeTab(mod_pocketDim.dimDoorsCreativeTab);
|
2013-02-18 03:46:16 +01:00
|
|
|
this.setMaxDamage(5);
|
2013-08-31 18:58:35 +02:00
|
|
|
this.hasSubtypes = true;
|
2013-02-18 03:46:16 +01:00
|
|
|
}
|
|
|
|
|
2013-03-29 23:19:27 +01:00
|
|
|
public void registerIcons(IconRegister par1IconRegister)
|
|
|
|
{
|
2013-05-08 22:29:01 +02:00
|
|
|
this.itemIcon = par1IconRegister.registerIcon(mod_pocketDim.modid + ":" + this.getUnlocalizedName());
|
2013-02-18 03:46:16 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public static MovingObjectPosition getBlockTarget(World par1World, EntityPlayer par2EntityPlayer, boolean par3)
|
|
|
|
{
|
|
|
|
float var4 = 1.0F;
|
|
|
|
float var5 = par2EntityPlayer.prevRotationPitch + (par2EntityPlayer.rotationPitch - par2EntityPlayer.prevRotationPitch) * var4;
|
|
|
|
float var6 = par2EntityPlayer.prevRotationYaw + (par2EntityPlayer.rotationYaw - par2EntityPlayer.prevRotationYaw) * var4;
|
|
|
|
double var7 = par2EntityPlayer.prevPosX + (par2EntityPlayer.posX - par2EntityPlayer.prevPosX) * (double)var4;
|
|
|
|
double var9 = par2EntityPlayer.prevPosY + (par2EntityPlayer.posY - par2EntityPlayer.prevPosY) * (double)var4 + 1.62D - (double)par2EntityPlayer.yOffset;
|
|
|
|
double var11 = par2EntityPlayer.prevPosZ + (par2EntityPlayer.posZ - par2EntityPlayer.prevPosZ) * (double)var4;
|
|
|
|
Vec3 var13 = par1World.getWorldVec3Pool().getVecFromPool(var7, var9, var11);
|
|
|
|
float var14 = MathHelper.cos(-var6 * 0.017453292F - (float)Math.PI);
|
|
|
|
float var15 = MathHelper.sin(-var6 * 0.017453292F - (float)Math.PI);
|
|
|
|
float var16 = -MathHelper.cos(-var5 * 0.017453292F);
|
|
|
|
float var17 = MathHelper.sin(-var5 * 0.017453292F);
|
|
|
|
float var18 = var15 * var16;
|
|
|
|
float var20 = var14 * var16;
|
|
|
|
double var21 = 5.0D;
|
|
|
|
if (par2EntityPlayer instanceof EntityPlayerMP)
|
|
|
|
{
|
|
|
|
var21 = 6;
|
|
|
|
}
|
|
|
|
Vec3 var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21);
|
|
|
|
return par1World.rayTraceBlocks_do_do(var13, var23, true, false);
|
|
|
|
}
|
|
|
|
|
|
|
|
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
|
|
|
|
{
|
2013-08-31 18:58:35 +02:00
|
|
|
MovingObjectPosition hit = getBlockTarget(par3EntityPlayer.worldObj, par3EntityPlayer, false);
|
|
|
|
if (hit != null)
|
|
|
|
{
|
|
|
|
if (PocketManager.removeRift(par2World, hit.blockX, hit.blockY, hit.blockZ, 1, par3EntityPlayer, par1ItemStack))
|
|
|
|
{
|
|
|
|
par3EntityPlayer.worldObj.playSoundAtEntity(par3EntityPlayer,"mods.DimDoors.sfx.riftClose", 0.8f, 1);
|
|
|
|
}
|
|
|
|
}
|
2013-02-18 03:46:16 +01:00
|
|
|
return par1ItemStack;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* allows items to add custom lines of information to the mouseover description
|
|
|
|
*/
|
2013-08-31 18:58:35 +02:00
|
|
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
|
|
|
@SideOnly(Side.CLIENT)
|
2013-02-18 03:46:16 +01:00
|
|
|
@Override
|
|
|
|
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
|
|
|
|
{
|
2013-08-31 18:58:35 +02:00
|
|
|
par3List.add("Use near exposed rift");
|
|
|
|
par3List.add("to remove it and");
|
|
|
|
par3List.add("any nearby rifts.");
|
|
|
|
}
|
2013-02-18 03:46:16 +01:00
|
|
|
}
|