Files
CustomNPC-Plus/src/main/java/noppes/npcs/items/ItemMusket.java
T

102 lines
3.8 KiB
Java
Raw Normal View History

2018-09-13 12:03:28 -04:00
package noppes.npcs.items;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import noppes.npcs.CustomItems;
2025-03-12 05:00:21 -04:00
import noppes.npcs.config.ConfigItem;
2018-09-13 12:03:28 -04:00
import noppes.npcs.constants.EnumParticleType;
import noppes.npcs.entity.EntityProjectile;
import org.lwjgl.opengl.GL11;
2025-03-13 17:14:45 -04:00
public class ItemMusket extends ItemNpcInterface {
2018-09-13 12:03:28 -04:00
2025-03-13 17:14:45 -04:00
public ItemMusket(int par1) {
super(par1);
2018-09-13 12:03:28 -04:00
this.setMaxDamage(129);
setCreativeTab(CustomItems.tabWeapon);
2025-03-13 17:14:45 -04:00
}
2018-09-13 12:03:28 -04:00
public void onPlayerStoppedUsing(ItemStack stack, World par2World, EntityPlayer player, int count) {
2025-03-13 17:14:45 -04:00
if (player.worldObj.isRemote)
return;
if (!stack.stackTagCompound.getBoolean("IsLoaded2") && !player.capabilities.isCreativeMode || !ConfigItem.GunsEnabled) {
player.worldObj.playSoundAtEntity(player, "customnpcs:gun.empty", 1.0F, 1);
return;
}
if (stack.stackTagCompound.getBoolean("Reloading2") && !player.capabilities.isCreativeMode) {
stack.stackTagCompound.setBoolean("Reloading2", false);
return;
}
stack.damageItem(1, player);
EntityProjectile projectile = new EntityProjectile(player.worldObj, player, new ItemStack(CustomItems.bulletBlack, 1, 0), false);
projectile.damage = 16;
projectile.setSpeed(50);
projectile.setParticleEffect(EnumParticleType.Smoke);
projectile.shoot(2);
if (!player.capabilities.isCreativeMode)
consumeItem(player, CustomItems.bulletBlack);
player.worldObj.playSoundAtEntity(player, "random.explode", 0.9F, itemRand.nextFloat() * 0.3F + 1.8F);
player.worldObj.playSoundAtEntity(player, "ambient.weather.thunder", 2.0F, itemRand.nextFloat() * 0.3F + 1.8F);
player.worldObj.spawnEntityInWorld(projectile);
stack.stackTagCompound.setBoolean("IsLoaded2", false);
2018-09-13 12:03:28 -04:00
}
2025-03-13 17:14:45 -04:00
@Override
public void onUsingTick(ItemStack stack, EntityPlayer player, int count) {
if (player.worldObj.isRemote) {
return;
}
int ticks = getMaxItemUseDuration(stack) - count;
if (!player.capabilities.isCreativeMode) {
if (stack.stackTagCompound.getBoolean("Reloading2") && hasItem(player, CustomItems.bulletBlack)) {
if (ticks == 60) {
player.worldObj.playSoundAtEntity(player, "customnpcs:gun.ak47.load", 1.0F, 1);
stack.stackTagCompound.setBoolean("IsLoaded2", true);
}
return;
}
}
}
@Override
public void renderSpecial() {
GL11.glRotatef(-6, 0, 0, 1f);
GL11.glScalef(0.7f, 0.7f, 0.7f);
GL11.glTranslatef(0.4f, 0.0f, 0.2F);
2018-09-13 12:03:28 -04:00
}
2025-03-12 05:00:21 -04:00
2018-09-13 12:03:28 -04:00
/**
* Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
*/
2025-03-13 17:14:45 -04:00
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
if (stack.stackTagCompound == null)
stack.stackTagCompound = new NBTTagCompound();
if (!player.capabilities.isCreativeMode && hasItem(player, CustomItems.bulletBlack) && !stack.stackTagCompound.getBoolean("IsLoaded2"))
stack.stackTagCompound.setBoolean("Reloading2", true);
player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
2018-09-13 12:03:28 -04:00
return stack;
}
2025-03-13 17:14:45 -04:00
@Override
public int getMaxItemUseDuration(ItemStack par1ItemStack) {
2018-09-13 12:03:28 -04:00
return 72000;
}
2025-03-13 17:14:45 -04:00
public EnumAction getItemUseAction(ItemStack stack) {
if (stack.stackTagCompound == null || !stack.stackTagCompound.getBoolean("Reloading2"))
return EnumAction.bow;
2025-03-12 05:00:21 -04:00
2025-03-13 17:14:45 -04:00
return EnumAction.block;
2018-09-13 12:03:28 -04:00
}
2025-03-12 05:00:21 -04:00
}