Class IngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapperCombined
java.lang.Object
org.cyclops.commoncapabilities.ingredient.storage.IngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapper
org.cyclops.commoncapabilities.ingredient.storage.IngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapperCombined
- All Implemented Interfaces:
Iterable<net.minecraft.world.item.ItemStack>
,IIngredientComponentStorage<net.minecraft.world.item.ItemStack,
,Integer> IIngredientComponentStorageSlotted<net.minecraft.world.item.ItemStack,
Integer>
- Enclosing class:
IngredientComponentStorageWrapperHandlerItemStack<C>
public static class IngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapperCombined
extends IngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapper
-
Constructor Summary
ConstructorDescriptionComponentStorageWrapperCombined
(IngredientComponent<net.minecraft.world.item.ItemStack, Integer> ingredientComponent, net.neoforged.neoforge.items.IItemHandler storage, ISlotlessItemHandler storageSlotless) -
Method Summary
Modifier and TypeMethodDescriptionnet.minecraft.world.item.ItemStack
extract
(long maxQuantity, boolean simulate) Extract any ingredient, but the given maximum amount from the storage.net.minecraft.world.item.ItemStack
Extract an ingredient matching the given prototype from the storage.long
net.minecraft.world.item.ItemStack
insert
(net.minecraft.world.item.ItemStack ingredient, boolean simulate) Inserts an ingredient into the storage and return the remainder.Iterator
<net.minecraft.world.item.ItemStack> iterator()
Get all ingredients in this storage.Iterator
<net.minecraft.world.item.ItemStack> Find all ingredients matching the given prototype from the storage.Methods inherited from class org.cyclops.commoncapabilities.ingredient.storage.IngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapper
extract, finalizeExtraction, getComponent, getMaxQuantity, getSlotContents, getSlots, insert, storageExtractItem
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
ComponentStorageWrapperCombined
public ComponentStorageWrapperCombined(IngredientComponent<net.minecraft.world.item.ItemStack, Integer> ingredientComponent, net.neoforged.neoforge.items.IItemHandler storage, ISlotlessItemHandler storageSlotless)
-
-
Method Details
-
iterator
Description copied from interface:IIngredientComponentStorage
Get all ingredients in this storage.- Specified by:
iterator
in interfaceIIngredientComponentStorage<net.minecraft.world.item.ItemStack,
Integer> - Specified by:
iterator
in interfaceIterable<net.minecraft.world.item.ItemStack>
- Overrides:
iterator
in classIngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapper
- Returns:
- An iterator over all available ingredients in this storage.
-
iterator
public Iterator<net.minecraft.world.item.ItemStack> iterator(@Nonnull net.minecraft.world.item.ItemStack prototype, Integer matchFlags) Description copied from interface:IIngredientComponentStorage
Find all ingredients matching the given prototype from the storage. Calling this method will not modify the storage in any way. Results from this method MUST NOT be modified.- Specified by:
iterator
in interfaceIIngredientComponentStorage<net.minecraft.world.item.ItemStack,
Integer> - Overrides:
iterator
in classIngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapper
- Parameters:
prototype
- The ingredient to search for.matchFlags
- The flags to compare the given prototype by according toIngredientComponent.getMatcher()
.- Returns:
- An iterator over ingredients that match the given prototype, which may potentially be empty.
-
getMaxQuantity
public long getMaxQuantity()- Specified by:
getMaxQuantity
in interfaceIIngredientComponentStorage<net.minecraft.world.item.ItemStack,
Integer> - Overrides:
getMaxQuantity
in classIngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapper
- Returns:
- The maximum allowed quantity over all instances.
-
insert
public net.minecraft.world.item.ItemStack insert(@Nonnull net.minecraft.world.item.ItemStack ingredient, boolean simulate) Description copied from interface:IIngredientComponentStorage
Inserts an ingredient into the storage and return the remainder. The ingredient should not be modified in this function!- Specified by:
insert
in interfaceIIngredientComponentStorage<net.minecraft.world.item.ItemStack,
Integer> - Overrides:
insert
in classIngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapper
- Parameters:
ingredient
- Ingredient to insert.simulate
- If true, the insertion is only simulated.- Returns:
- The remaining ingredient that was not inserted (if the entire ingredient is accepted,
then return
IIngredientMatcher.getEmptyInstance()
). May be the same as the input ingredient if unchanged, otherwise a new ingredient.
-
extract
public net.minecraft.world.item.ItemStack extract(long maxQuantity, boolean simulate) Description copied from interface:IIngredientComponentStorage
Extract any ingredient, but the given maximum amount from the storage.- Specified by:
extract
in interfaceIIngredientComponentStorage<net.minecraft.world.item.ItemStack,
Integer> - Overrides:
extract
in classIngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapper
- Parameters:
maxQuantity
- The maximum amount to extract.simulate
- If true, the insertion is only simulated- Returns:
- Ingredient extracted from the slot, must be
IIngredientMatcher.getEmptyInstance()
, if nothing can be extracted
-
extract
public net.minecraft.world.item.ItemStack extract(@Nonnull net.minecraft.world.item.ItemStack prototype, Integer matchFlags, boolean simulate) Description copied from interface:IIngredientComponentStorage
Extract an ingredient matching the given prototype from the storage. Note that only the extracted ingredient must match the prototype under the given condition. Internally, ingredients can be combined and matched in any way. For example, an exact match could be produced by combining several ingredients. If the primary quantifier (as identified byIngredientComponent.getPrimaryQuantifier()
) IS NOT part of the match condition, then the quantity of the given prototype MUST be interpreted as the maximum quantity that must be extracted. If the primary quantifier (as identified byIngredientComponent.getPrimaryQuantifier()
) IS part of the match condition, then the quantity of the given prototype MUST be interpreted as the exact quantity that must be extracted. If the storage has a HIGHER OR EQUAL available quantity, then the storage MUST allow the given quantity to be extracted. If the storage on the other hand has a LOWER available quantity, then extraction is not allowed.- Specified by:
extract
in interfaceIIngredientComponentStorage<net.minecraft.world.item.ItemStack,
Integer> - Overrides:
extract
in classIngredientComponentStorageWrapperHandlerItemStack.ComponentStorageWrapper
- Parameters:
prototype
- The ingredient to search for.matchFlags
- The flags to compare the given prototype by according toIngredientComponent.getMatcher()
.simulate
- If true, the insertion is only simulated- Returns:
- Ingredient extracted from the slot, must be
IIngredientMatcher.getEmptyInstance()
, if nothing can be extracted
-