當前位置: 首頁>>代碼示例>>Java>>正文


Java EntityArrow.setIsCritical方法代碼示例

本文整理匯總了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.
    }
}
 
開發者ID:Domochevsky,項目名稱:minecraft-quiverbow,代碼行數:37,代碼來源:EnderBow.java

示例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);

	}
}
 
開發者ID:Domochevsky,項目名稱:minecraft-quiverbow,代碼行數:37,代碼來源:QuiverBow.java

示例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);
        }
    }
}
 
開發者ID:Notoh,項目名稱:DecompiledMinecraft,代碼行數:70,代碼來源:ItemBow.java


注:本文中的net.minecraft.entity.projectile.EntityArrow.setIsCritical方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。