Spaces:
Build error
Build error
package net.minecraft.world; | |
import java.util.List; | |
import java.util.function.Predicate; | |
import net.minecraft.core.HolderLookup; | |
import net.minecraft.core.NonNullList; | |
import net.minecraft.nbt.CompoundTag; | |
import net.minecraft.nbt.ListTag; | |
import net.minecraft.world.item.ItemStack; | |
public class ContainerHelper { | |
public static final String TAG_ITEMS = "Items"; | |
public static ItemStack removeItem(List<ItemStack> p_18970_, int p_18971_, int p_18972_) { | |
return p_18971_ >= 0 && p_18971_ < p_18970_.size() && !p_18970_.get(p_18971_).isEmpty() && p_18972_ > 0 | |
? p_18970_.get(p_18971_).split(p_18972_) | |
: ItemStack.EMPTY; | |
} | |
public static ItemStack takeItem(List<ItemStack> p_18967_, int p_18968_) { | |
return p_18968_ >= 0 && p_18968_ < p_18967_.size() ? p_18967_.set(p_18968_, ItemStack.EMPTY) : ItemStack.EMPTY; | |
} | |
public static CompoundTag saveAllItems(CompoundTag p_18977_, NonNullList<ItemStack> p_18978_, HolderLookup.Provider p_333891_) { | |
return saveAllItems(p_18977_, p_18978_, true, p_333891_); | |
} | |
public static CompoundTag saveAllItems(CompoundTag p_18974_, NonNullList<ItemStack> p_18975_, boolean p_336339_, HolderLookup.Provider p_329730_) { | |
ListTag listtag = new ListTag(); | |
for (int i = 0; i < p_18975_.size(); i++) { | |
ItemStack itemstack = p_18975_.get(i); | |
if (!itemstack.isEmpty()) { | |
CompoundTag compoundtag = new CompoundTag(); | |
compoundtag.putByte("Slot", (byte)i); | |
listtag.add(itemstack.save(p_329730_, compoundtag)); | |
} | |
} | |
if (!listtag.isEmpty() || p_336339_) { | |
p_18974_.put("Items", listtag); | |
} | |
return p_18974_; | |
} | |
public static void loadAllItems(CompoundTag p_18981_, NonNullList<ItemStack> p_18982_, HolderLookup.Provider p_334892_) { | |
ListTag listtag = p_18981_.getList("Items", 10); | |
for (int i = 0; i < listtag.size(); i++) { | |
CompoundTag compoundtag = listtag.getCompound(i); | |
int j = compoundtag.getByte("Slot") & 255; | |
if (j >= 0 && j < p_18982_.size()) { | |
p_18982_.set(j, ItemStack.parse(p_334892_, compoundtag).orElse(ItemStack.EMPTY)); | |
} | |
} | |
} | |
public static int clearOrCountMatchingItems(Container p_18957_, Predicate<ItemStack> p_18958_, int p_18959_, boolean p_18960_) { | |
int i = 0; | |
for (int j = 0; j < p_18957_.getContainerSize(); j++) { | |
ItemStack itemstack = p_18957_.getItem(j); | |
int k = clearOrCountMatchingItems(itemstack, p_18958_, p_18959_ - i, p_18960_); | |
if (k > 0 && !p_18960_ && itemstack.isEmpty()) { | |
p_18957_.setItem(j, ItemStack.EMPTY); | |
} | |
i += k; | |
} | |
return i; | |
} | |
public static int clearOrCountMatchingItems(ItemStack p_18962_, Predicate<ItemStack> p_18963_, int p_18964_, boolean p_18965_) { | |
if (p_18962_.isEmpty() || !p_18963_.test(p_18962_)) { | |
return 0; | |
} else if (p_18965_) { | |
return p_18962_.getCount(); | |
} else { | |
int i = p_18964_ < 0 ? p_18962_.getCount() : Math.min(p_18964_, p_18962_.getCount()); | |
p_18962_.shrink(i); | |
return i; | |
} | |
} | |
} |