本文整理汇总了Java中net.minecraft.enchantment.EnchantmentHelper.setEnchantments方法的典型用法代码示例。如果您正苦于以下问题:Java EnchantmentHelper.setEnchantments方法的具体用法?Java EnchantmentHelper.setEnchantments怎么用?Java EnchantmentHelper.setEnchantments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.minecraft.enchantment.EnchantmentHelper
的用法示例。
在下文中一共展示了EnchantmentHelper.setEnchantments方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: craftRecipe
import net.minecraft.enchantment.EnchantmentHelper; //导入方法依赖的package包/类
@Override
public NonNullList<ItemStack> craftRecipe(ItemStackHandler inputStacks) {
ItemStack enchantedStack = getDisenchantableItem(inputStacks);
getBook(inputStacks).shrink(1);
// take a random enchantment off the enchanted item...
Map<Enchantment, Integer> enchantments = EnchantmentHelper.getEnchantments(enchantedStack);
List<Enchantment> l = new ArrayList<>(enchantments.keySet());
Enchantment strippedEnchantment = l.get(new Random().nextInt(l.size()));
int level = enchantments.get(strippedEnchantment);
enchantments.remove(strippedEnchantment);
EnchantmentHelper.setEnchantments(enchantments, enchantedStack);
// ...and create an enchanted book with it
ItemStack enchantedBook = new ItemStack(Items.ENCHANTED_BOOK);
EnchantmentHelper.setEnchantments(ImmutableMap.of(strippedEnchantment, level), enchantedBook);
return NonNullList.from(ItemStack.EMPTY, enchantedBook);
}
示例2: improveEnchants
import net.minecraft.enchantment.EnchantmentHelper; //导入方法依赖的package包/类
private static boolean improveEnchants(ItemStack item) {
boolean improved = false;
Map<Enchantment, Integer> enchantments = EnchantmentHelper.getEnchantments(item);
if (enchantments.isEmpty()) {
return false;
}
for (Entry<Enchantment, Integer> enchant : enchantments.entrySet()) {
if (shouldImproveEnchantment(rand, enchant.getKey(), enchant.getValue())) {
enchantments.put(enchant.getKey(), enchant.getValue() + 1);
improved = true;
}
}
if (improved) {
EnchantmentHelper.setEnchantments(enchantments, item);
}
return improved;
}
示例3: performWork
import net.minecraft.enchantment.EnchantmentHelper; //导入方法依赖的package包/类
@Override
protected float performWork() {
if (WorkUtils.isDisabled(this.getBlockType())) return 0;
if (!canWork()) return 0;
int xp = (int) (getLevels() * 100);
if (experienceTank.getFluidAmount() >= xp && ItemHandlerHelper.insertItem(outEnchantedItem, inItem.getStackInSlot(0), true).isEmpty()) {
Map<Enchantment, Integer> mapFirst = EnchantmentHelper.getEnchantments(inEnchantedBook.getStackInSlot(0));
Map<Enchantment, Integer> mapSecond = EnchantmentHelper.getEnchantments(inItem.getStackInSlot(0));
for (Enchantment enchantmentFirst : mapFirst.keySet()) {
if (enchantmentFirst != null) {
if (mapSecond.containsKey(enchantmentFirst) && mapFirst.get(enchantmentFirst) == mapSecond.get(enchantmentFirst) && mapFirst.get(enchantmentFirst) >= enchantmentFirst.getMaxLevel())
return 0;
int value = mapSecond.containsKey(enchantmentFirst) && mapFirst.get(enchantmentFirst) == mapSecond.get(enchantmentFirst) ? Math.min(mapFirst.get(enchantmentFirst) + 1, enchantmentFirst.getMaxLevel()) : mapFirst.get(enchantmentFirst);
if (mapSecond.replace(enchantmentFirst, value) == null) {
mapSecond.put(enchantmentFirst, value);
}
}
}
ItemStack stack = inItem.getStackInSlot(0).copy();
EnchantmentHelper.setEnchantments(mapSecond, stack);
ItemHandlerHelper.insertItem(outEnchantedItem, stack, false);
inItem.getStackInSlot(0).setCount(0);
inEnchantedBook.getStackInSlot(0).setCount(0);
experienceTank.drain(xp, true);
return 500;
}
return 0;
}
示例4: removeDuplicateEnchantments
import net.minecraft.enchantment.EnchantmentHelper; //导入方法依赖的package包/类
private static void removeDuplicateEnchantments(ItemStack item) {
EnchantmentHelper.setEnchantments(EnchantmentHelper.getEnchantments(item), item);
}