Files
CustomNPC-Plus/src/main/java/noppes/npcs/items/ItemThrowingWeapon.java
T
2023-01-12 21:33:06 -05:00

73 lines
2.1 KiB
Java

package noppes.npcs.items;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import noppes.npcs.CustomItems;
import noppes.npcs.entity.EntityProjectile;
import org.lwjgl.opengl.GL11;
public class ItemThrowingWeapon extends ItemNpcInterface{
private boolean rotating = false;
private int damage = 2;
private boolean dropItem = false;
public ItemThrowingWeapon(int par1) {
super(par1);
setCreativeTab(CustomItems.tabWeapon);
}
public void onPlayerStoppedUsing(ItemStack par1ItemStack, World worldObj, EntityPlayer player, int par4)
{
if(worldObj.isRemote){
player.swingItem();
return;
}
EntityProjectile projectile = new EntityProjectile(worldObj, player, new ItemStack(par1ItemStack.getItem(), 1,par1ItemStack.getItemDamage()), false);
projectile.damage = damage;
projectile.canBePickedUp = !player.capabilities.isCreativeMode && dropItem;
projectile.setRotating(rotating);;
projectile.setIs3D(true);
projectile.setStickInWall(true);
projectile.setHasGravity(true);
projectile.setSpeed(12);
if(!player.capabilities.isCreativeMode){
consumeItem(player, this);
}
projectile.shoot(1);
worldObj.playSoundAtEntity(player, "customnpcs:misc.swosh", 1.0F,1);
worldObj.spawnEntityInWorld(projectile);
}
public ItemThrowingWeapon setRotating(){
rotating = true;
return this;
}
public ItemThrowingWeapon setDamage(int damage){
this.damage = damage;
return this;
}
public ItemThrowingWeapon setDropItem(){
dropItem = true;
return this;
}
@Override
public void renderSpecial(){
super.renderSpecial();
GL11.glTranslatef(0.2F, 0.1f, 0.06f);
}
@Override
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
{
par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
return par1ItemStack;
}
@Override
public int getMaxItemUseDuration(ItemStack par1ItemStack)
{
return 72000;
}
}