@Override public void readNBT(Capability<FoodStats> capability, FoodStats instance, EnumFacing side, NBTBase nbt) { if (!(nbt instanceof NBTTagCompound)) return; NBTTagCompound tagCompound = (NBTTagCompound) nbt; instance.setAmount(tagCompound.getInteger("amount")) .setSaturationModifier(tagCompound.getFloat("saturationModifier")) .setMaxItemUseDuration(tagCompound.getInteger("maxItemUseDuration")) .setAction(EnumAction.values()[tagCompound.getInteger("action")]) .setPotion(PotionEffect.readCustomPotionEffectFromNBT(tagCompound.getCompoundTag("potion"))) .setPotionEffectProbability(tagCompound.getFloat("potionEffectProbability")) .setUnlocalizedName(tagCompound.getString("unlocalizedName")); if (tagCompound.getBoolean("wolfFood")) instance.setWolfFood(); if (tagCompound.getBoolean("alwaysEdible")) instance.setAlwaysEdible(); }
@Override public EnumAction getItemUseAction(ItemStack stack) { switch (getSpell(stack).getCastingType()) { case INSTANT: return EnumAction.NONE; case MELEE: return EnumAction.NONE; case CONTINUOUS: return EnumAction.BOW; case CHARGED: return EnumAction.BOW; } return EnumAction.NONE; }
/** * sets the itemInUse when the use item button is clicked. Args: itemstack, int maxItemUseDuration */ public void setItemInUse(ItemStack stack, int duration) { super.setItemInUse(stack, duration); if (stack != null && stack.getItem() != null && stack.getItem().getItemUseAction(stack) == EnumAction.EAT) { this.getServerForPlayer().getEntityTracker().func_151248_b(this, new S0BPacketAnimation(this, 3)); } }
/** * Plays sounds and makes particles for item in use state */ protected void updateItemUse(ItemStack itemStackIn, int p_71010_2_) { if (itemStackIn.getItemUseAction() == EnumAction.DRINK) { this.playSound("random.drink", 0.5F, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); } if (itemStackIn.getItemUseAction() == EnumAction.EAT) { for (int i = 0; i < p_71010_2_; ++i) { Vec3 vec3 = new Vec3(((double)this.rand.nextFloat() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D); vec3 = vec3.rotatePitch(-this.rotationPitch * (float)Math.PI / 180.0F); vec3 = vec3.rotateYaw(-this.rotationYaw * (float)Math.PI / 180.0F); double d0 = (double)(-this.rand.nextFloat()) * 0.6D - 0.3D; Vec3 vec31 = new Vec3(((double)this.rand.nextFloat() - 0.5D) * 0.3D, d0, 0.6D); vec31 = vec31.rotatePitch(-this.rotationPitch * (float)Math.PI / 180.0F); vec31 = vec31.rotateYaw(-this.rotationYaw * (float)Math.PI / 180.0F); vec31 = vec31.addVector(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ); if (itemStackIn.getHasSubtypes()) { this.worldObj.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec31.xCoord, vec31.yCoord, vec31.zCoord, vec3.xCoord, vec3.yCoord + 0.05D, vec3.zCoord, new int[] {Item.getIdFromItem(itemStackIn.getItem()), itemStackIn.getMetadata()}); } else { this.worldObj.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec31.xCoord, vec31.yCoord, vec31.zCoord, vec3.xCoord, vec3.yCoord + 0.05D, vec3.zCoord, new int[] {Item.getIdFromItem(itemStackIn.getItem())}); } } this.playSound("random.eat", 0.5F + 0.5F * (float)this.rand.nextInt(2), (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); } }
public EnumActionDeserializer() { map.put("none", EnumAction.NONE); map.put("eat", EnumAction.EAT); map.put("drink", EnumAction.DRINK); map.put("block", EnumAction.BLOCK); map.put("bow", EnumAction.BOW); }
@Override public EnumAction getItemUseAction(ItemStack stack) { if (stack.getItem() == UCItems.potionreverse) return EnumAction.DRINK; return EnumAction.EAT; }
/** * Plays sounds and makes particles for item in use state */ protected void updateItemUse(ItemStack stack, int eatingParticleCount) { if (!stack.func_190926_b() && this.isHandActive()) { if (stack.getItemUseAction() == EnumAction.DRINK) { this.playSound(SoundEvents.ENTITY_GENERIC_DRINK, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); } if (stack.getItemUseAction() == EnumAction.EAT) { for (int i = 0; i < eatingParticleCount; ++i) { Vec3d vec3d = new Vec3d(((double)this.rand.nextFloat() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D); vec3d = vec3d.rotatePitch(-this.rotationPitch * 0.017453292F); vec3d = vec3d.rotateYaw(-this.rotationYaw * 0.017453292F); double d0 = (double)(-this.rand.nextFloat()) * 0.6D - 0.3D; Vec3d vec3d1 = new Vec3d(((double)this.rand.nextFloat() - 0.5D) * 0.3D, d0, 0.6D); vec3d1 = vec3d1.rotatePitch(-this.rotationPitch * 0.017453292F); vec3d1 = vec3d1.rotateYaw(-this.rotationYaw * 0.017453292F); vec3d1 = vec3d1.addVector(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ); if (stack.getHasSubtypes()) { this.world.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec3d1.xCoord, vec3d1.yCoord, vec3d1.zCoord, vec3d.xCoord, vec3d.yCoord + 0.05D, vec3d.zCoord, new int[] {Item.getIdFromItem(stack.getItem()), stack.getMetadata()}); } else { this.world.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec3d1.xCoord, vec3d1.yCoord, vec3d1.zCoord, vec3d.xCoord, vec3d.yCoord + 0.05D, vec3d.zCoord, new int[] {Item.getIdFromItem(stack.getItem())}); } } this.playSound(SoundEvents.ENTITY_GENERIC_EAT, 0.5F + 0.5F * (float)this.rand.nextInt(2), (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); } } }
public boolean isActiveItemStackBlocking() { if (this.isHandActive() && !this.activeItemStack.func_190926_b()) { Item item = this.activeItemStack.getItem(); return item.getItemUseAction(this.activeItemStack) != EnumAction.BLOCK ? false : item.getMaxItemUseDuration(this.activeItemStack) - this.activeItemStackUseCount >= 5; } else { return false; } }
protected void onItemUseFinish() { if (!this.activeItemStack.isEmpty() && this.isHandActive() && this.activeItemStack.getItemUseAction() == EnumAction.EAT) { this.heal(((ItemFood)this.refill.getStackInSlot(0).getItem()).getHealAmount(activeItemStack)); } super.onItemUseFinish(); this.setHeldItem(EnumHand.OFF_HAND, ItemStack.EMPTY); }
/** * Plays sounds and makes particles for item in use state */ protected void updateItemUse(@Nullable ItemStack stack, int eatingParticleCount) { if (stack != null && this.isHandActive()) { if (stack.getItemUseAction() == EnumAction.DRINK) { this.playSound(SoundEvents.ENTITY_GENERIC_DRINK, 0.5F, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); } if (stack.getItemUseAction() == EnumAction.EAT) { for (int i = 0; i < eatingParticleCount; ++i) { Vec3d vec3d = new Vec3d(((double)this.rand.nextFloat() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D); vec3d = vec3d.rotatePitch(-this.rotationPitch * 0.017453292F); vec3d = vec3d.rotateYaw(-this.rotationYaw * 0.017453292F); double d0 = (double)(-this.rand.nextFloat()) * 0.6D - 0.3D; Vec3d vec3d1 = new Vec3d(((double)this.rand.nextFloat() - 0.5D) * 0.3D, d0, 0.6D); vec3d1 = vec3d1.rotatePitch(-this.rotationPitch * 0.017453292F); vec3d1 = vec3d1.rotateYaw(-this.rotationYaw * 0.017453292F); vec3d1 = vec3d1.addVector(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ); if (stack.getHasSubtypes()) { this.worldObj.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec3d1.xCoord, vec3d1.yCoord, vec3d1.zCoord, vec3d.xCoord, vec3d.yCoord + 0.05D, vec3d.zCoord, new int[] {Item.getIdFromItem(stack.getItem()), stack.getMetadata()}); } else { this.worldObj.spawnParticle(EnumParticleTypes.ITEM_CRACK, vec3d1.xCoord, vec3d1.yCoord, vec3d1.zCoord, vec3d.xCoord, vec3d.yCoord + 0.05D, vec3d.zCoord, new int[] {Item.getIdFromItem(stack.getItem())}); } } this.playSound(SoundEvents.ENTITY_GENERIC_EAT, 0.5F + 0.5F * (float)this.rand.nextInt(2), (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); } } }
public boolean isActiveItemStackBlocking() { if (this.isHandActive() && this.activeItemStack != null) { Item item = this.activeItemStack.getItem(); return item.getItemUseAction(this.activeItemStack) != EnumAction.BLOCK ? false : item.getMaxItemUseDuration(this.activeItemStack) - this.activeItemStackUseCount >= 5; } else { return false; } }
@Override public EnumAction getItemUseAction(ItemStack par1ItemStack) { if (par1ItemStack.getItemDamage() > 14 && par1ItemStack.getItemDamage() < 19) { return EnumAction.eat; } return super.getItemUseAction(par1ItemStack); }
/** * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic * (Render<T extends Entity) and this method has signature public void func_76986_a(T entity, double d, double d1, * double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that. */ public void doRender(AbstractClientPlayer p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderPlayerEvent.Pre(p_76986_1_, this, p_76986_9_))) return; GL11.glColor3f(1.0F, 1.0F, 1.0F); ItemStack itemstack = p_76986_1_.inventory.getCurrentItem(); this.modelArmorChestplate.heldItemRight = this.modelArmor.heldItemRight = this.modelBipedMain.heldItemRight = itemstack != null ? 1 : 0; if (itemstack != null && p_76986_1_.getItemInUseCount() > 0) { EnumAction enumaction = itemstack.getItemUseAction(); if (enumaction == EnumAction.block) { this.modelArmorChestplate.heldItemRight = this.modelArmor.heldItemRight = this.modelBipedMain.heldItemRight = 3; } else if (enumaction == EnumAction.bow) { this.modelArmorChestplate.aimedBow = this.modelArmor.aimedBow = this.modelBipedMain.aimedBow = true; } } this.modelArmorChestplate.isSneak = this.modelArmor.isSneak = this.modelBipedMain.isSneak = p_76986_1_.isSneaking(); double d3 = p_76986_4_ - (double)p_76986_1_.yOffset; if (p_76986_1_.isSneaking() && !(p_76986_1_ instanceof EntityPlayerSP)) { d3 -= 0.125D; } super.doRender((EntityLivingBase)p_76986_1_, p_76986_2_, d3, p_76986_6_, p_76986_8_, p_76986_9_); this.modelArmorChestplate.aimedBow = this.modelArmor.aimedBow = this.modelBipedMain.aimedBow = false; this.modelArmorChestplate.isSneak = this.modelArmor.isSneak = this.modelBipedMain.isSneak = false; this.modelArmorChestplate.heldItemRight = this.modelArmor.heldItemRight = this.modelBipedMain.heldItemRight = 0; net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderPlayerEvent.Post(p_76986_1_, this, p_76986_9_)); }
@Nonnull @Override public EnumAction getItemUseAction(ItemStack stack) { boolean anyNotContinuous = false; for (Module module : SpellUtils.getModules(stack)) if (!(module instanceof IContinuousModule && module.getChargeupTime() <= 0)) { anyNotContinuous = true; break; } return anyNotContinuous ? EnumAction.NONE : EnumAction.BOW; }
@Nonnull @Override public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, @Nonnull EnumHand hand) { ItemStack stack = player.getHeldItem(hand); if (getItemUseAction(stack) == EnumAction.BOW) { if (world.isRemote && (Minecraft.getMinecraft().currentScreen != null)) { return new ActionResult<>(EnumActionResult.FAIL, stack); } else { player.setActiveHand(hand); return new ActionResult<>(EnumActionResult.PASS, stack); } } else return new ActionResult<>(EnumActionResult.FAIL, stack); }
public EnumAction getItemUseAction(ItemStack itemstack) { int meta = itemstack.getItemDamage(); if (EnumSkyrootBucketType.getType(meta) != EnumSkyrootBucketType.Water) { return EnumAction.DRINK; } else { return EnumAction.NONE; } }
@Override public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.BLOCK; }
@Override public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.EAT; }
@Override public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.BOW; }
@Override public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.DRINK; }
@Override @Nonnull public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.DRINK; }
@Override public EnumAction getItemUseAction(ItemStack stack) { return hasDrinkEffect(stack.getMetadata()) ? EnumAction.DRINK : EnumAction.NONE; }
@Override public EnumAction getItemUseAction(ItemStack stack){ return EnumAction.DRINK; }
@Override public EnumAction getItemUseAction(ItemStack par1ItemStack) { return EnumAction.BOW; }
@Override public EnumAction getItemUseAction(ItemStack stack) { return this.delegate(stack, i -> i.getItemUseAction(stack), () -> super.getItemUseAction(stack)); }
public boolean isBlocking() { return this.isUsingItem() && this.itemInUse.getItem().getItemUseAction(this.itemInUse) == EnumAction.BLOCK; }