本文整理匯總了Java中net.minecraft.entity.projectile.EntityArrow.setIsCritical方法的典型用法代碼示例。如果您正苦於以下問題:Java EntityArrow.setIsCritical方法的具體用法?Java EntityArrow.setIsCritical怎麽用?Java EntityArrow.setIsCritical使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類net.minecraft.entity.projectile.EntityArrow
的用法示例。
在下文中一共展示了EntityArrow.setIsCritical方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: onPlayerStoppedUsing
import net.minecraft.entity.projectile.EntityArrow; //導入方法依賴的package包/類
@Override
public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int par4)
{
int chargeTime = this.getMaxItemUseDuration(stack) - par4;
ArrowLooseEvent event = new ArrowLooseEvent(player, stack, chargeTime);
MinecraftForge.EVENT_BUS.post(event);
if (event.isCanceled()) { return; } // Not having it
chargeTime = event.charge;
// Either creative mode or infinity enchantment is higher than 0. Not using arrows
boolean freeShot = player.capabilities.isCreativeMode;
if (freeShot || player.inventory.hasItemStack(new ItemStack(Items.arrow)) )
{
float f = (float) chargeTime / 20.0F;
f = (f * f + f * 2.0F) / 3.0F;
if ((double)f < 0.1D) { return; }
if (f > 1.0F) { f = 1.0F; }
EntityArrow entityarrow = new EntityArrow(world, player, f * 2.0F);
if (f == 1.0F) { entityarrow.setIsCritical(true); }
stack.damageItem(1, player);
world.playSoundAtEntity(player, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
if (freeShot) { entityarrow.canBePickedUp = 2; }
else { player.inventory.consumeInventoryItem(Items.arrow); }
if (!world.isRemote) { world.spawnEntityInWorld(entityarrow); } // pew.
}
}
示例2: onPlayerStoppedUsing
import net.minecraft.entity.projectile.EntityArrow; //導入方法依賴的package包/類
@Override
public void onPlayerStoppedUsing(ItemStack stack, World par2World, EntityPlayer par3EntityPlayer, int par4)
{
if (!par2World.isRemote)
{
int j = this.getMaxItemUseDuration(stack) - par4; // Reduces the durability by the ItemInUseCount (probably 1 for anything that isn't a tool)
ArrowLooseEvent event = new ArrowLooseEvent(par3EntityPlayer, stack, j);
MinecraftForge.EVENT_BUS.post(event);
if (event.isCanceled()) { return; }
j = event.charge;
if (this.getDamage(stack) == this.getMaxDamage()) { return; } // No arrows in the quiver? Getting out of here early
float f = j / 20.0F;
f = (f * f + f * 2.0F) / 3.0F;
if (f < 0.1D) { return; }
if (f > 1.0F) { f = 1.0F; }
EntityArrow entityarrow = new EntityArrow(par2World, par3EntityPlayer, f * 2.0F);
if (f == 1.0F) { entityarrow.setIsCritical(true); }
par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
if (par3EntityPlayer.capabilities.isCreativeMode) { entityarrow.canBePickedUp = 0; }
else
{
entityarrow.canBePickedUp = 1;
stack.setItemDamage(this.getDamage(stack) + 1); // Reversed. MORE Damage for a shorter durability bar
}
par2World.spawnEntityInWorld(entityarrow);
}
}
示例3: onPlayerStoppedUsing
import net.minecraft.entity.projectile.EntityArrow; //導入方法依賴的package包/類
/**
* Called when the player stops using an Item (stops holding the right mouse button).
*/
public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityPlayer playerIn, int timeLeft)
{
boolean flag = playerIn.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0;
if (flag || playerIn.inventory.hasItem(Items.arrow))
{
int i = this.getMaxItemUseDuration(stack) - timeLeft;
float f = (float)i / 20.0F;
f = (f * f + f * 2.0F) / 3.0F;
if ((double)f < 0.1D)
{
return;
}
if (f > 1.0F)
{
f = 1.0F;
}
EntityArrow entityarrow = new EntityArrow(worldIn, playerIn, f * 2.0F);
if (f == 1.0F)
{
entityarrow.setIsCritical(true);
}
int j = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, stack);
if (j > 0)
{
entityarrow.setDamage(entityarrow.getDamage() + (double)j * 0.5D + 0.5D);
}
int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, stack);
if (k > 0)
{
entityarrow.setKnockbackStrength(k);
}
if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, stack) > 0)
{
entityarrow.setFire(100);
}
stack.damageItem(1, playerIn);
worldIn.playSoundAtEntity(playerIn, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
if (flag)
{
entityarrow.canBePickedUp = 2;
}
else
{
playerIn.inventory.consumeInventoryItem(Items.arrow);
}
playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]);
if (!worldIn.isRemote)
{
worldIn.spawnEntityInWorld(entityarrow);
}
}
}