net.minecraft.item.ItemStack.isItemStackDamageable()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(7.4k)|赞(0)|评价(0)|浏览(84)

本文整理了Java中net.minecraft.item.ItemStack.isItemStackDamageable()方法的一些代码示例,展示了ItemStack.isItemStackDamageable()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ItemStack.isItemStackDamageable()方法的具体详情如下:
包路径:net.minecraft.item.ItemStack
类名称:ItemStack
方法名:isItemStackDamageable

ItemStack.isItemStackDamageable介绍

暂无

代码示例

代码示例来源:origin: Vazkii/Botania

public static boolean ignoreMeta(ItemStack stack) {
  return stack.isItemStackDamageable() || stack.getItem() instanceof IManaItem || stack.getItemDamage() == OreDictionary.WILDCARD_VALUE;
}

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

public static List<ItemStack> toStackExpand( IItemStack iStack )
{
  if( iStack == null )
  {
    return Collections.emptyList();
  }
  else
  {
    ItemStack is = (ItemStack) iStack.getInternal();
    if( !is.isItemStackDamageable() && is.getItemDamage() == OreDictionary.WILDCARD_VALUE )
    {
      NonNullList<ItemStack> ret = NonNullList.create();
      is.getItem().getSubItems( CreativeTabs.SEARCH, ret );
      return ret.stream().map( i -> new ItemStack( i.getItem(), iStack.getAmount(), i.getItemDamage() ) ).collect( Collectors.toList() );
    }
    else
    {
      return Collections.singletonList( is );
    }
  }
}

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

/**
 * Compare the two {@link ItemStack}s based on the same {@link Item} and damage value.
 *
 * In case of the item being damageable, only the {@link Item} will be considered.
 * If not it will also compare both damage values.
 *
 * Ignores NBT.
 *
 * @return true, if both are equal.
 */
public boolean isEqualItemType( @Nonnull final ItemStack that, @Nonnull final ItemStack other )
{
  if( !that.isEmpty() && !other.isEmpty() && that.getItem() == other.getItem() )
  {
    if( that.isItemStackDamageable() )
    {
      return true;
    }
    return that.getItemDamage() == other.getItemDamage();
  }
  return false;
}

代码示例来源:origin: CoFH/ThermalExpansion

private boolean canStartRepairItem() {
  if (!inventory[1].isItemStackDamageable() || !augmentRepair) {
    hasRepairItem = false;
    return false;
  }
  return true;
}

代码示例来源:origin: Vazkii/Botania

public boolean canAcceptItem(ItemStack stack, List<ItemStack> filter, int filterType) {
  if(stack.isEmpty())
    return false;
  if(filter.isEmpty())
    return true;
  switch(filterType) {
  case 0 : { // Accept items in frames only
    boolean anyFilter = false;
    for(ItemStack filterEntry : filter) {
      if(filterEntry == null)
        continue;
      anyFilter = true;
      boolean itemEqual = stack.getItem() == filterEntry.getItem();
      boolean damageEqual = stack.getItemDamage() == filterEntry.getItemDamage();
      boolean nbtEqual = ItemStack.areItemStackTagsEqual(filterEntry, stack);
      if(itemEqual && damageEqual && nbtEqual)
        return true;
      if(!stack.getHasSubtypes() && stack.isItemStackDamageable() && stack.getMaxStackSize() == 1 && itemEqual && nbtEqual)
        return true;
      if(stack.getItem() instanceof IManaItem && itemEqual)
        return true;
    }
    return !anyFilter;
  }
  case 1 : return !canAcceptItem(stack, filter, 0); // Accept items not in frames only
  default : return true; // Accept all items
  }
}

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

public static ItemStack getContainerItem( final ItemStack stackInSlot )
{
  if( stackInSlot == null )
  {
    return ItemStack.EMPTY;
  }
  final Item i = stackInSlot.getItem();
  if( i == null || !i.hasContainerItem( stackInSlot ) )
  {
    if( stackInSlot.getCount() > 1 )
    {
      stackInSlot.setCount( stackInSlot.getCount() - 1 );
      return stackInSlot;
    }
    return ItemStack.EMPTY;
  }
  ItemStack ci = i.getContainerItem( stackInSlot.copy() );
  if( !ci.isEmpty() && ci.isItemStackDamageable() && ci.getItemDamage() == ci.getMaxDamage() )
  {
    ci = ItemStack.EMPTY;
  }
  return ci;
}

代码示例来源:origin: sinkillerj/ProjectE

public static boolean isDamageable(ItemStack stack)
{
  return !stack.getHasSubtypes() && stack.isItemStackDamageable();
}

代码示例来源:origin: SleepyTrousers/EnderCore

public static void addDurabilityTooltip(@Nonnull List<String> toolTip, @Nonnull ItemStack itemStack) {
 if (!itemStack.isItemStackDamageable()) {
  return;
 }
 Item item = itemStack.getItem();
 if (item instanceof ItemTool || item instanceof ItemArmor || item instanceof ItemSword || item instanceof ItemHoe || item instanceof ItemBow
   || item instanceof ItemShears) {
  toolTip.add(ItemUtil.getDurabilityString(itemStack));
 }
}

代码示例来源:origin: AlgorithmX2/Chisels-and-Bits

public static void damageItem(
    @Nonnull final ItemStack is,
    @Nonnull final Random r )
{
  if ( is.isItemStackDamageable() )
  {
    if ( is.attemptDamageItem( 1, r, null ) )
    {
      is.func_190918_g( 1 );
    }
  }
}

代码示例来源:origin: SleepyTrousers/EnderIO

public static boolean canDamage(@Nonnull ItemStack stack) {
 return stack.isItemStackDamageable() && stack.getItem().isDamageable();
}

代码示例来源:origin: RS485/LogisticsPipes

public int getMaxStackSize() {
  if (maxStackSize == 0) {
    ItemStack tstack = unsafeMakeNormalStack(1);
    int tstacksize = tstack.getMaxStackSize();
    if (tstack.isItemStackDamageable() && tstack.isItemDamaged()) {
      tstacksize = 1;
    }
    tstacksize = Math.max(1, Math.min(64, tstacksize));
    maxStackSize = tstacksize;
  }
  return maxStackSize;
}

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

.hasTagCompound() || providedTemplate.isItemStackDamageable();

代码示例来源:origin: SleepyTrousers/EnderIO

public boolean passesFilter(@Nonnull ItemStack stack) {
 return Prep.isValid(stack) && passesFilter(stack.isItemStackDamageable() ? (float) stack.getItemDamage() / (float) stack.getMaxDamage() : -1f);
}

代码示例来源:origin: RS485/LogisticsPipes

public ItemIdentifier getUndamaged() {
  if (_IDIgnoringDamage == null) {
    if (!unsafeMakeNormalStack(1).isItemStackDamageable()) {
      _IDIgnoringDamage = this;
    } else {
      ItemStack tstack = makeNormalStack(1);
      tstack.setItemDamage(0);
      _IDIgnoringDamage = ItemIdentifier.get(tstack);
    }
  }
  return _IDIgnoringDamage;
}

代码示例来源:origin: blay09/CookingForBlockheads

public static boolean areItemStacksEqualWithWildcardIgnoreDurability(ItemStack first, ItemStack second) {
  return !(first.isEmpty() || second.isEmpty())
      && first.getItem() == second.getItem()
      && (
      first.getItemDamage() == second.getItemDamage()
          || first.getItemDamage() == OreDictionary.WILDCARD_VALUE
          || second.getItemDamage() == OreDictionary.WILDCARD_VALUE
          || (first.isItemStackDamageable() && second.isItemStackDamageable()));
}

代码示例来源:origin: P3pp3rF1y/AncientWarfare2

private void damageHelmet(ItemStack helmet) {
  if (helmet.isItemStackDamageable()) {
    helmet.setItemDamage(helmet.getItemDamage() + rand.nextInt(2));
    if (helmet.getItemDamage() >= helmet.getMaxDamage()) {
      renderBrokenItemStack(helmet);
      setItemStackToSlot(EntityEquipmentSlot.HEAD, ItemStack.EMPTY);
    }
  }
}

代码示例来源:origin: SleepyTrousers/EnderIO

private void damageTool(@Nonnull ItemStack tool, int toolIndex) {
 if (Prep.isValid(tool) && tool.isItemStackDamageable()) {
  tool.damageItem(1, getFakePlayer());
  if (tool.getItemDamage() >= tool.getMaxDamage()) {
   tool.shrink(1);
  }
  markDirty();
 }
}

代码示例来源:origin: Direwolf20-MC/BuildingGadgets

public boolean canUse(ItemStack tool, EntityPlayer player) {
  if (player.capabilities.isCreativeMode)
    return true;
  if (Config.poweredByFE) {
    IEnergyStorage energy = CapabilityProviderEnergy.getCap(tool);
    return this.getEnergyCost() <= energy.getEnergyStored();
  }
  return tool.getItemDamage() < tool.getMaxDamage() || tool.isItemStackDamageable();
}

代码示例来源:origin: P3pp3rF1y/AncientWarfare2

public static boolean doItemStacksMatchRelaxed(ItemStack stack1, ItemStack stack2) {
  if (stack1 == stack2) {
    return true;
  }
  return OreDictionary.itemMatches(stack1, stack2, !stack1.isEmpty() && (stack1.isItemStackDamageable() || stack1.getItemDamage() != OreDictionary.WILDCARD_VALUE))
      && ItemStack.areItemsEqualIgnoreDurability(stack1, stack2)
      && ItemStack.areItemStackTagsEqual(stack1, stack2)
      && stack1.areCapsCompatible(stack2);
}

代码示例来源:origin: SleepyTrousers/EnderIO

private void updateCapacitorFromSlot() {
 if (getEnergy().updateCapacitorFromSlot(getInventory().getSlot(CAPSLOT))) {
  isCapacitorDamageable = getInventory().getSlot(CAPSLOT).get().isItemStackDamageable();
  onCapacitorDataChange();
 }
}

相关文章

微信公众号

最新文章

更多

ItemStack类方法