本文整理了Java中net.minecraft.item.ItemStack.getHasSubtypes()
方法的一些代码示例,展示了ItemStack.getHasSubtypes()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ItemStack.getHasSubtypes()
方法的具体详情如下:
包路径:net.minecraft.item.ItemStack
类名称:ItemStack
方法名:getHasSubtypes
暂无
代码示例来源: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: sinkillerj/ProjectE
public static boolean isDamageable(ItemStack stack)
{
return !stack.getHasSubtypes() && stack.isItemStackDamageable();
}
代码示例来源:origin: TerraFirmaCraft/TerraFirmaCraft
@Override
public ItemStack getFiringResult(ItemStack input, Metal.Tier tier)
{
ItemStack output = new ItemStack(firedVersion);
if (input.getHasSubtypes() && output.getHasSubtypes()) output.setItemDamage(input.getMetadata());
return output;
}
}
代码示例来源:origin: MatterOverdrive/MatterOverdrive-Legacy-Edition
public static boolean areEqual(ItemStack one, ItemStack two) {
if (one != null && two != null) {
if (one.getItem() == two.getItem()) {
if (one.getHasSubtypes() && two.getHasSubtypes()) {
if (one.getItemDamage() == two.getItemDamage()) {
return true;
}
} else {
return true;
}
}
}
return false;
}
代码示例来源:origin: mezz/JustEnoughItems
@Override
public String apply(ItemStack itemStack) {
if (itemStack.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) {
IFluidHandler capability = itemStack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null);
if (capability != null) {
IFluidTankProperties[] tankPropertiesList = capability.getTankProperties();
StringBuilder info = new StringBuilder();
for (IFluidTankProperties tankProperties : tankPropertiesList) {
String contentsName = getContentsName(tankProperties);
if (contentsName != null) {
info.append(contentsName).append(";");
} else {
info.append("empty").append(";");
}
}
if (info.length() > 0) {
if (itemStack.getHasSubtypes()) {
info.append("m=").append(itemStack.getMetadata());
}
return info.toString();
}
}
}
return ISubtypeRegistry.ISubtypeInterpreter.NONE;
}
代码示例来源:origin: FTBTeam/FTB-Utilities
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException
{
LinkedHashSet<String> list = new LinkedHashSet<>(Arrays.asList(FTBUtilitiesConfig.world.disabled_right_click_items));
ItemStack stack = getCommandSenderAsPlayer(sender).getHeldItem(EnumHand.MAIN_HAND);
String s = stack.getItem().getRegistryName() + (stack.getHasSubtypes() ? ("@" + stack.getMetadata()) : "");
if (list.contains(s))
{
list.remove(s);
}
else
{
list.add(s);
}
FTBUtilitiesConfig.world.disabled_right_click_items = list.toArray(new String[0]);
FTBUtilitiesConfig.sync();
}
}
代码示例来源:origin: CoFH/CoFHCore
/**
* Determine if the damage of two ItemStacks is equal. Assumes both itemstacks are of type A.
*/
public static boolean itemsDamageEqual(ItemStack stackA, ItemStack stackB) {
return (!stackA.getHasSubtypes() && stackA.getMaxDamage() == 0) || (getItemDamage(stackA) == getItemDamage(stackB));
}
代码示例来源:origin: sinkillerj/ProjectE
public static boolean isItemRepairable(ItemStack stack)
{
if (stack.getHasSubtypes())
{
return false;
}
if (stack.getMaxDamage() == 0 || stack.getItemDamage() == 0)
{
return false;
}
Item item = stack.getItem();
if (item instanceof ItemShears || item instanceof ItemFlintAndSteel || item instanceof ItemFishingRod || item instanceof ItemBow)
{
return true;
}
return (item instanceof ItemTool || item instanceof ItemSword || item instanceof ItemHoe || item instanceof ItemArmor);
}
代码示例来源:origin: sinkillerj/ProjectE
public static boolean containsItemStack(List<ItemStack> list, ItemStack toSearch)
{
for (ItemStack stack : list) {
if (stack.isEmpty()) {
continue;
}
if (stack.getItem().equals(toSearch.getItem())) {
if (!stack.getHasSubtypes() || stack.getItemDamage() == toSearch.getItemDamage()) {
return true;
}
}
}
return false;
}
代码示例来源:origin: SleepyTrousers/EnderCore
@Override
public boolean is(@Nullable ItemStack itemStack) {
return itemStack != null && !itemStack.isEmpty() && thing.getItem() == itemStack.getItem()
&& (!thing.getHasSubtypes() || thing.getItemDamage() == OreDictionary.WILDCARD_VALUE || thing.getMetadata() == itemStack.getMetadata());
}
代码示例来源:origin: SleepyTrousers/EnderCore
@Override
public boolean is(@Nullable ItemStack itemStack) {
for (ItemStack oreStack : ores) {
if (itemStack != null && !itemStack.isEmpty() && itemStack.getItem() == oreStack.getItem()
&& (!oreStack.getHasSubtypes() || oreStack.getItemDamage() == OreDictionary.WILDCARD_VALUE || oreStack.getMetadata() == itemStack.getMetadata())) {
return true;
}
}
return false;
}
代码示例来源:origin: PenguinSquad/Harvest-Festival
@SuppressWarnings("ConstantConditions")
public static String getStringFromStack(ItemStack stack) {
String str = Item.REGISTRY.getNameForObject(stack.getItem()).toString().replace(" ", "%20");
if (stack.getHasSubtypes() || stack.isItemStackDamageable()) {
str = str + " " + stack.getItemDamage();
}
if (stack.stackSize > 1) {
str = str + " *" + stack.stackSize;
}
if (stack.hasTagCompound()) {
str = str + " " + stack.getTagCompound().toString().replace(" ", "%20");
}
return str;
}
代码示例来源:origin: SleepyTrousers/EnderIO
private boolean is(ItemStack stack0, ItemStack stack1) {
return stack0.getItem() == stack1.getItem()
&& (!stack0.getHasSubtypes() || stack0.getItemDamage() == OreDictionary.WILDCARD_VALUE || stack0.getItemDamage() == stack1.getItemDamage());
}
代码示例来源:origin: CoFH/CoFHCore
public static boolean itemsEqualForCrafting(ItemStack stackA, ItemStack stackB) {
return itemsEqualWithoutMetadata(stackA, stackB) && (!stackA.getHasSubtypes() || ((getItemDamage(stackA) == OreDictionary.WILDCARD_VALUE || getItemDamage(stackB) == OreDictionary.WILDCARD_VALUE) || getItemDamage(stackB) == getItemDamage(stackA)));
}
代码示例来源:origin: PenguinSquad/Harvest-Festival
private static boolean areItemStacksEqual(ItemStack stackA, ItemStack stackB) {
return stackB.getItem() == stackA.getItem() && (!stackA.getHasSubtypes() || stackA.getMetadata() == stackB.getMetadata()) && ItemStack.areItemStackTagsEqual(stackA, stackB);
}
代码示例来源:origin: TeamWizardry/Wizardry
public static boolean stackEqualExact(ItemStack stack1, ItemStack stack2) {
return stack1.getItem() == stack2.getItem() && (!stack1.getHasSubtypes() || stack1.getMetadata() == stack2.getMetadata()) && ItemStack.areItemStackTagsEqual(stack1, stack2);
}
代码示例来源:origin: Mine-and-blade-admin/Battlegear2
/**
* Defines a generic weapon
* @param main the item to check
* @return true if the item is a generic weapon
*/
public static boolean isWeapon(ItemStack main) {
if (main.getItem() instanceof IBattlegearWeapon)//Our generic weapon flag
return true;
else if(main.getMaxStackSize()==1 && main.getMaxDamage()>0 && !main.getHasSubtypes())//Usual values for tools, sword, and bow
return true;
else if(main == prevNotWieldable)//Prevent lag from check spam
return false;
else if(WeaponRegistry.isWeapon(main))//Registered as such
return true;
else if(!checkForRightClickFunction(main)){//Make sure there are no special functions for offhand/mainhand weapons
WeaponRegistry.addDualWeapon(main);//register so as not to make that costly check again
return true;
}
WeaponRegistry.addDualUsable(main);
prevNotWieldable = main;
return false;
}
代码示例来源:origin: ForestryMC/Binnie
public static boolean isItemEqual(ItemStack a, ItemStack b, boolean matchDamage, boolean matchNBT) {
if (a.isEmpty() || b.isEmpty()) {
return false;
}
if (a.getItem() != b.getItem()) {
return false;
}
if (matchDamage && a.getHasSubtypes()) {
if (a.getItemDamage() == OreDictionary.WILDCARD_VALUE || b.getItemDamage() == OreDictionary.WILDCARD_VALUE) {
return true;
}
if (a.getItemDamage() != b.getItemDamage()) {
return false;
}
}
return !matchNBT || ItemStack.areItemStackTagsEqual(a, b);
}
}
代码示例来源:origin: Vazkii/Quark
public void smartDropoff() {
dropoff((stack, handler) -> {
int slots = handler.getSlots();
for(int i = 0; i < slots; i++) {
ItemStack stackAt = handler.getStackInSlot(i);
if(stackAt.isEmpty())
continue;
boolean itemEqual = stack.getItem() == stackAt.getItem();
boolean damageEqual = stack.getItemDamage() == stackAt.getItemDamage();
boolean nbtEqual = ItemStack.areItemStackTagsEqual(stackAt, stack);
if(itemEqual && damageEqual && nbtEqual)
return true;
if(!stack.getHasSubtypes() && stack.isItemStackDamageable() && stack.getMaxStackSize() == 1 && itemEqual && nbtEqual)
return true;
}
return false;
});
}
代码示例来源:origin: P3pp3rF1y/AncientWarfare2
public static boolean doItemStacksMatch(ItemStack stackA, ItemStack stackB, boolean ignoreDamage, boolean ignoreNBT) {
if (stackA.isEmpty() && stackB.isEmpty()) {
return true;
} else if (stackA.getItem() != stackB.getItem()) {
return false;
} else if ((stackA.getHasSubtypes() || !ignoreDamage) && stackA.getItemDamage() != stackB.getItemDamage()) {
return false;
} else if (!ignoreNBT && stackA.getTagCompound() == null && stackB.getTagCompound() != null) {
return false;
} else {
return (ignoreNBT || stackA.getTagCompound() == null || stackA.getTagCompound().equals(stackB.getTagCompound())) && stackA.areCapsCompatible(stackB);
}
}
内容来源于网络,如有侵权,请联系作者删除!