本文整理了Java中net.minecraft.item.ItemStack.isItemEqual()
方法的一些代码示例,展示了ItemStack.isItemEqual()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ItemStack.isItemEqual()
方法的具体详情如下:
包路径:net.minecraft.item.ItemStack
类名称:ItemStack
方法名:isItemEqual
暂无
代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2
@Override
public boolean matches( ItemStack itemStack )
{
return this.itemstack.isItemEqual( itemStack );
}
代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2
/**
*
* @param slot
* @param is itemstack
* @return is if it can be used, else EMPTY
*/
private ItemStack canUseInSlot( int slot, ItemStack is )
{
if( this.recipe[slot] != null )
{
for( ItemStack option : this.recipe[slot] )
{
if( is.isItemEqual( option ) )
{
return is;
}
}
}
return ItemStack.EMPTY;
}
代码示例来源:origin: Vazkii/Botania
private boolean equalStacks(ItemStack stack1, ItemStack stack2) {
return stack1.isItemEqual(stack2) && ItemStack.areItemStackTagsEqual(stack1, stack2);
}
代码示例来源:origin: Vazkii/Botania
/**
* If an item in this recipe is focused, returns the corresponding item instead of all the containers/results.
*/
private List<ItemStack> getItemMatchingFocus(IFocus<?> focus, IFocus.Mode mode, List<ItemStack> focused, List<ItemStack> other) {
if(focus != null && focus.getMode() == mode) {
ItemStack focusStack = (ItemStack) focus.getValue();
for(int i = 0; i < focused.size(); i++)
if(focusStack.isItemEqual(focused.get(i)))
return Collections.singletonList(other.get(i));
}
return other;
}
}
代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2
@Override
public void apply()
{
final IInscriberRegistry inscriber = AEApi.instance().registries().inscriber();
inscriber.getRecipes()
.stream()
.filter( r -> r.getOutput().isItemEqual( this.stack ) )
.collect( Collectors.toList() )
.forEach( inscriber::removeRecipe );
}
代码示例来源:origin: Vazkii/Botania
public List<ItemStack> getDisplayedRecipes() {
ArrayList<ItemStack> list = new ArrayList<>();
for(LexiconPage page : pages) {
ArrayList<ItemStack> itemsAddedThisPage = new ArrayList<>();
for(ItemStack s : page.getDisplayedRecipes()) {
addItem: {
for(ItemStack s1 : itemsAddedThisPage)
if(s1.getItem() == s.getItem())
break addItem;
for(ItemStack s1 : list)
if(s1.isItemEqual(s) && ItemStack.areItemStackTagsEqual(s1, s))
break addItem;
itemsAddedThisPage.add(s);
list.add(s);
}
}
}
list.addAll(extraDisplayedRecipes);
return list;
}
代码示例来源:origin: Vazkii/Botania
/**
* Gets if two stacks match.
*/
public static boolean stacksMatch(ItemStack stack1, ItemStack stack2, boolean checkNBT) {
return !stack1.isEmpty() && !stack2.isEmpty() && stack1.isItemEqual(stack2) && (!checkNBT || ItemStack.areItemStackTagsEqual(stack1, stack2));
}
代码示例来源:origin: Vazkii/Botania
private void addStack(ItemStack stack) {
if(stack.isEmpty())
return;
for(ItemStack oStack : materials)
if(oStack.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(oStack, stack)) {
oStack.grow(stack.getCount());
return;
}
materials.add(stack);
}
代码示例来源:origin: Vazkii/Botania
public boolean requestMatches(Object request, ItemStack filter) {
if(filter.isEmpty())
return false;
if(request instanceof ItemStack) {
ItemStack stack = (ItemStack) request;
return !stack.isEmpty() && stack.isItemEqual(filter) && ItemStack.areItemStackTagsEqual(filter, stack);
}
String name = (String) request;
return CorporeaHelper.stacksMatch(filter, name);
}
代码示例来源:origin: Vazkii/Botania
public static void tryToSetLastRecipe(EntityPlayer player, IItemHandlerModifiable inv, List<ItemStack> lastRecipe) {
if(lastRecipe == null || lastRecipe.isEmpty() || player.world.isRemote)
return;
int index = 0;
boolean didAny = false;
for(ItemStack stack : lastRecipe) {
if(stack.isEmpty())
continue;
for(int i = 0; i < player.inventory.getSizeInventory(); i++) {
ItemStack pstack = player.inventory.getStackInSlot(i);
if(!pstack.isEmpty() && pstack.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(stack, pstack)) {
inv.setStackInSlot(index, pstack.splitStack(1));
didAny = true;
index++;
break;
}
}
}
if(didAny) {
player.world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_GENERIC_SPLASH, SoundCategory.BLOCKS, 0.1F, 10F);
EntityPlayerMP mp = (EntityPlayerMP) player;
mp.inventoryContainer.detectAndSendChanges();
}
}
代码示例来源:origin: Vazkii/Botania
private static ItemStack[] validateRecipe(EntityPlayer player, ItemStack stack, ItemStack[] recipe, int slot) {
InventoryCrafting fakeInv = new InventoryCrafting(new ContainerWorkbench(player.inventory, player.world, BlockPos.ORIGIN), 3, 3);
for(int i = 0; i < 9; i++)
fakeInv.setInventorySlotContents(i, recipe[i]);
ItemStack result = CraftingManager.findMatchingResult(fakeInv, player.world);
if(result.isEmpty()) {
assignRecipe(stack, recipe[9], slot);
return null;
}
if(!result.isItemEqual(recipe[9]) || result.getCount() != recipe[9].getCount() || !ItemStack.areItemStackTagsEqual(recipe[9], result)) {
assignRecipe(stack, recipe[9], slot);
return null;
}
return recipe;
}
代码示例来源:origin: Vazkii/Botania
private static boolean consumeFromInventory(ItemStack stack, IItemHandler inv, EntityPlayer player) {
for(int i = 0; i < inv.getSlots(); i++) {
ItemStack stackAt = inv.getStackInSlot(i);
if(!stackAt.isEmpty() && stack.isItemEqual(stackAt) && ItemStack.areItemStackTagsEqual(stack, stackAt)) {
boolean consume = true;
ItemStack container = stackAt.getItem().getContainerItem(stackAt);
if(!container.isEmpty()) {
if(container == stackAt)
consume = false;
else {
if(player == null)
ItemHandlerHelper.insertItem(inv, container, false);
else
ItemHandlerHelper.giveItemToPlayer(player, container);
}
}
if(consume)
inv.extractItem(i, 1, false);
return true;
}
}
return false;
}
代码示例来源:origin: Vazkii/Botania
public static boolean canFurnaceSmelt(TileEntityFurnace furnace){
if(furnace.getStackInSlot(0).isEmpty())
return false;
else {
ItemStack itemstack = FurnaceRecipes.instance().getSmeltingResult(furnace.getStackInSlot(0));
if(itemstack.isEmpty())
return false;
if(furnace.getStackInSlot(2).isEmpty())
return true;
if(!furnace.getStackInSlot(2).isItemEqual(itemstack))
return false;
int result = furnace.getStackInSlot(2).getCount() + itemstack.getCount();
return result <= 64 && result <= itemstack.getMaxStackSize();
}
}
代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2
return a.isItemEqual( b );
代码示例来源:origin: SleepyTrousers/EnderIO
public boolean hasOuput(@Nonnull ItemStack result) {
if (Prep.isInvalid(result)) {
return false;
}
for (RecipeOutput output : outputs) {
ItemStack os = output.getOutput();
if (os.isItemEqual(result)) {
return true;
}
}
return false;
}
代码示例来源:origin: SleepyTrousers/EnderIO
protected int getNumCanMerge(@Nonnull ItemStack itemStack, @Nonnull ItemStack result) {
if (!itemStack.isItemEqual(result) || !ItemStack.areItemStackTagsEqual(itemStack, result)) {
return 0;
}
return Math.min(itemStack.getMaxStackSize() - itemStack.getCount(), result.getCount());
}
代码示例来源:origin: SleepyTrousers/EnderIO
protected int getNumCanMerge(@Nonnull ItemStack itemStack, @Nonnull ItemStack result) {
if (!itemStack.isItemEqual(result) || !ItemStack.areItemStackTagsEqual(itemStack, result)) {
return 0;
}
return Math.min(itemStack.getMaxStackSize() - itemStack.getCount(), result.getCount());
}
代码示例来源:origin: SleepyTrousers/EnderIO
private boolean isItemAlreadyInASlot(@Nonnull ItemStack itemstack) {
for (int i = slotDefinition.getMinInputSlot(); i <= slotDefinition.getMaxInputSlot(); i++) {
ItemStack currentStackType = getStackInSlot(i);
if (Prep.isValid(currentStackType)) {
return currentStackType.isItemEqual(itemstack);
}
}
return false;
}
代码示例来源:origin: Vazkii/Botania
EntityItem item = (EntityItem) e;
ItemStack istack = item.getItem();
if(player.isSneaking() || istack.isItemEqual(pstack) && ItemStack.areItemStackTagsEqual(istack, pstack))
entIdBuilder.add(item.getEntityId());
代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2
else if( hand.isItemEqual( is ) )
内容来源于网络,如有侵权,请联系作者删除!