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


Java ItemStack.isItemEnchantable方法代碼示例

本文整理匯總了Java中net.minecraft.item.ItemStack.isItemEnchantable方法的典型用法代碼示例。如果您正苦於以下問題:Java ItemStack.isItemEnchantable方法的具體用法?Java ItemStack.isItemEnchantable怎麽用?Java ItemStack.isItemEnchantable使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在net.minecraft.item.ItemStack的用法示例。


在下文中一共展示了ItemStack.isItemEnchantable方法的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getRecipeIngredients

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
private ItemStack[] getRecipeIngredients(ItemStackHandler inputStacks) {
    List<ItemStack> enchantedBooks = new ItemStackHandlerIterable(inputStacks)
                                                .stream()
                                                .filter(book -> book.getItem() == Items.ENCHANTED_BOOK)
                                                .collect(Collectors.toList());

    if (enchantedBooks.isEmpty()) return null;

    for (ItemStack inputStack : new ItemStackHandlerIterable(inputStacks)) {
        if ((inputStack.isItemEnchantable() || inputStack.isItemEnchanted()) && inputStack.getItem() != Items.ENCHANTED_BOOK) {
            for (ItemStack enchantedBook : enchantedBooks) {
                Map<Enchantment, Integer> bookMap = EnchantmentHelper.getEnchantments(enchantedBook);
                for (Map.Entry<Enchantment, Integer> entry : bookMap.entrySet()) {
                    if (entry.getKey().canApply(inputStack)) {
                        return new ItemStack[]{ inputStack, enchantedBook};
                    }
                }
            }
        }
    }
    return null;
}
 
開發者ID:TeamPneumatic,項目名稱:pnc-repressurized,代碼行數:23,代碼來源:PressureChamberPressureEnchantHandler.java

示例2: setCurrentItem

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
public void setCurrentItem(Item itemIn, int p_146030_2_, boolean p_146030_3_, boolean p_146030_4_)
{
    ItemStack itemstack = this.getCurrentItem();
    int i = p_146030_3_ ? this.getInventorySlotContainItemAndDamage(itemIn, p_146030_2_) : this.getInventorySlotContainItem(itemIn);

    if (i >= 0 && i < 9)
    {
        this.currentItem = i;
    }
    else if (p_146030_4_ && itemIn != null)
    {
        int j = this.getFirstEmptyStack();

        if (j >= 0 && j < 9)
        {
            this.currentItem = j;
        }

        if (itemstack == null || !itemstack.isItemEnchantable() || this.getInventorySlotContainItemAndDamage(itemstack.getItem(), itemstack.getItemDamage()) != this.currentItem)
        {
            int k = this.getInventorySlotContainItemAndDamage(itemIn, p_146030_2_);
            int l;

            if (k >= 0)
            {
                l = this.mainInventory[k].stackSize;
                this.mainInventory[k] = this.mainInventory[this.currentItem];
            }
            else
            {
                l = 1;
            }

            this.mainInventory[this.currentItem] = new ItemStack(itemIn, l, p_146030_2_);
        }
    }
}
 
開發者ID:Notoh,項目名稱:DecompiledMinecraft,代碼行數:38,代碼來源:InventoryPlayer.java

示例3: onCraftMatrixChanged

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
/**
 * Callback for when the crafting matrix is changed.
 */
@Override
public void onCraftMatrixChanged(IInventory p_75130_1_) {
	if (p_75130_1_ == tableInventory) {
		ItemStack var2 = p_75130_1_.getStackInSlot(0);
		int power;

		if (var2 != null && var2.isItemEnchantable()) {
			if (!world.isRemote) {
				power = 0;
				int j;

				for (j = -1; j <= 1; ++j)
					for (int k = -1; k <= 1; ++k)
						if ((j != 0 || k != 0) && world.isAirBlock(posX + k, posY, posZ + j) && world.isAirBlock(posX + k, posY + 1, posZ + j)) {
							power += ForgeHooks.getEnchantPower(world, posX + k * 2, posY, posZ + j * 2);
							power += ForgeHooks.getEnchantPower(world, posX + k * 2, posY + 1, posZ + j * 2);

							if (k != 0 && j != 0) {
								power += ForgeHooks.getEnchantPower(world, posX + k * 2, posY, posZ + j);
								power += ForgeHooks.getEnchantPower(world, posX + k * 2, posY + 1, posZ + j);
								power += ForgeHooks.getEnchantPower(world, posX + k, posY, posZ + j * 2);
								power += ForgeHooks.getEnchantPower(world, posX + k, posY + 1, posZ + j * 2);
							}
						}

				rand.setSeed(enchantmentSeed);

				for (j = 0; j < 3; ++j) {
					enchantLevels[j] = EnchantmentHelper.calcItemStackEnchantability(rand, j, power, var2);
					field_178151_h[j] = -1;

					if (enchantLevels[j] < j + 1)
						enchantLevels[j] = 0;
				}

				for (j = 0; j < 3; ++j)
					if (enchantLevels[j] > 0) {
						List<EnchantmentData> var7 = func_178148_a(var2, j, enchantLevels[j]);

						if (var7 != null && !var7.isEmpty()) {
							EnchantmentData var6 = var7.get(rand.nextInt(var7.size()));
							field_178151_h[j] = var6.enchantmentobj.effectId | var6.enchantmentLevel << 8;
						}
					}

				detectAndSendChanges();
			}
		} else
			for (power = 0; power < 3; ++power) {
				enchantLevels[power] = 0;
				field_178151_h[power] = -1;
			}
	}
}
 
開發者ID:jm-organization,項目名稱:connor41-etfuturum2,代碼行數:58,代碼來源:ContainerEnchantment.java

示例4: onUpdate

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
public void onUpdate(ItemStack itemStack, World world, Entity player, int par4, boolean par5) {
	if(itemStack.isItemEnchantable())
		TechnicalTools.enchantTool(itemStack, ((TechnicalHoe) itemStack.getItem()).theToolMaterial);
}
 
開發者ID:viddeno,項目名稱:Technical,代碼行數:5,代碼來源:TechnicalHoe.java

示例5: onUpdate

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
public void onUpdate(ItemStack itemStack, World world, Entity player, int par4, boolean par5) {
	if(itemStack.isItemEnchantable())
		TechnicalTools.enchantTool(itemStack, ((TechnicalSword) itemStack.getItem()).toolMaterial);
}
 
開發者ID:viddeno,項目名稱:Technical,代碼行數:5,代碼來源:TechnicalSword.java

示例6: onUpdate

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
public void onUpdate(ItemStack itemStack, World world, Entity player, int par4, boolean par5) {
	if(itemStack.isItemEnchantable())
		TechnicalTools.enchantTool(itemStack, ((TechnicalCrusher) itemStack.getItem()).toolMaterial);
}
 
開發者ID:viddeno,項目名稱:Technical,代碼行數:5,代碼來源:TechnicalCrusher.java

示例7: onUpdate

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
public void onUpdate(ItemStack itemStack, World world, Entity player, int par4, boolean par5) {
	if(itemStack.isItemEnchantable())
		TechnicalTools.enchantTool(itemStack, ((TechnicalShovel) itemStack.getItem()).toolMaterial);
}
 
開發者ID:viddeno,項目名稱:Technical,代碼行數:5,代碼來源:TechnicalShovel.java

示例8: onUpdate

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
public void onUpdate(ItemStack itemStack, World world, Entity player, int par4, boolean par5) {
	if(itemStack.isItemEnchantable())
		TechnicalTools.enchantTool(itemStack, ((TechnicalAxe) itemStack.getItem()).toolMaterial);
}
 
開發者ID:viddeno,項目名稱:Technical,代碼行數:5,代碼來源:TechnicalAxe.java

示例9: onUpdate

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
public void onUpdate(ItemStack itemStack, World world, Entity player, int par4, boolean par5) {
	if(itemStack.isItemEnchantable())
		TechnicalTools.enchantTool(itemStack, ((TechnicalPickaxe) itemStack.getItem()).toolMaterial);
}
 
開發者ID:viddeno,項目名稱:Technical,代碼行數:5,代碼來源:TechnicalPickaxe.java

示例10: onCraftMatrixChanged

import net.minecraft.item.ItemStack; //導入方法依賴的package包/類
/**
 * Callback for when the crafting matrix is changed.
 */
public void onCraftMatrixChanged(IInventory inventoryIn)
{
    if (inventoryIn == this.tableInventory)
    {
        ItemStack itemstack = inventoryIn.getStackInSlot(0);

        if (itemstack != null && itemstack.isItemEnchantable())
        {
            if (!this.worldPointer.isRemote)
            {
                int l = 0;
                float power = 0;

                for (int j = -1; j <= 1; ++j)
                {
                    for (int k = -1; k <= 1; ++k)
                    {
                        if ((j != 0 || k != 0) && this.worldPointer.isAirBlock(this.position.add(k, 0, j)) && this.worldPointer.isAirBlock(this.position.add(k, 1, j)))
                        {
                            power += net.minecraftforge.common.ForgeHooks.getEnchantPower(worldPointer, position.add(k * 2, 0, j * 2));
                            power += net.minecraftforge.common.ForgeHooks.getEnchantPower(worldPointer, position.add(k * 2, 1, j * 2));
                            if (k != 0 && j != 0)
                            {
                                power += net.minecraftforge.common.ForgeHooks.getEnchantPower(worldPointer, position.add(k * 2, 0, j));
                                power += net.minecraftforge.common.ForgeHooks.getEnchantPower(worldPointer, position.add(k * 2, 1, j));
                                power += net.minecraftforge.common.ForgeHooks.getEnchantPower(worldPointer, position.add(k, 0, j * 2));
                                power += net.minecraftforge.common.ForgeHooks.getEnchantPower(worldPointer, position.add(k, 1, j * 2));
                            }
                        }
                    }
                }

                this.rand.setSeed((long)this.xpSeed);

                for (int i1 = 0; i1 < 3; ++i1)
                {
                    this.enchantLevels[i1] = EnchantmentHelper.calcItemStackEnchantability(this.rand, i1, (int)power, itemstack);
                    this.enchantClue[i1] = -1;
                    this.worldClue[i1] = -1;

                    if (this.enchantLevels[i1] < i1 + 1)
                    {
                        this.enchantLevels[i1] = 0;
                    }
                }

                for (int j1 = 0; j1 < 3; ++j1)
                {
                    if (this.enchantLevels[j1] > 0)
                    {
                        List<EnchantmentData> list = this.getEnchantmentList(itemstack, j1, this.enchantLevels[j1]);

                        if (list != null && !list.isEmpty())
                        {
                            EnchantmentData enchantmentdata = (EnchantmentData)list.get(this.rand.nextInt(list.size()));
                            this.enchantClue[j1] = Enchantment.getEnchantmentID(enchantmentdata.enchantmentobj);
                            this.worldClue[j1] = enchantmentdata.enchantmentLevel;
                        }
                    }
                }

                this.detectAndSendChanges();
            }
        }
        else
        {
            for (int i = 0; i < 3; ++i)
            {
                this.enchantLevels[i] = 0;
                this.enchantClue[i] = -1;
                this.worldClue[i] = -1;
            }
        }
    }
}
 
開發者ID:F1r3w477,項目名稱:CustomWorldGen,代碼行數:79,代碼來源:ContainerEnchantment.java


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