Package alexiil.mc.lib.attributes.item
Class SingleItemSlot
java.lang.Object
alexiil.mc.lib.attributes.item.SingleItemSlotView
alexiil.mc.lib.attributes.item.SingleItemSlot
- All Implemented Interfaces:
ItemExtractable
,ItemInsertable
,ItemTransferable
,LimitedConsumer<net.minecraft.item.ItemStack>
,Reference<net.minecraft.item.ItemStack>
,StackReference
- Direct Known Subclasses:
SingleCopyingItemSlot
public class SingleItemSlot extends SingleItemSlotView implements ItemTransferable, StackReference
A delegating accessor of a single slot in a
FixedItemInv
.-
Method Summary
Modifier and Type Method Description net.minecraft.item.ItemStack
attemptExtraction(ItemFilter filter, int maxAmount, Simulation simulation)
net.minecraft.item.ItemStack
attemptInsertion(net.minecraft.item.ItemStack stack, Simulation simulation)
Inserts the given stack into this insertable, and returns the excess.void
forceSet(net.minecraft.item.ItemStack to)
Sets the stack in the given slot to the given stack, or throws an exception if it was not permitted.FixedItemInv
getBackingInv()
ItemFilter
getInsertionFilter()
Returns anItemFilter
to determine ifItemInsertable.attemptInsertion(ItemStack, Simulation)
will accept a stack.void
modify(java.util.function.Function<net.minecraft.item.ItemStack,net.minecraft.item.ItemStack> function)
Applies the given function to the stack held in the slot, and usesforceSet(ItemStack)
on the result (Which will throw an exception if the returned stack is not valid for this inventory).boolean
set(net.minecraft.item.ItemStack value)
boolean
set(net.minecraft.item.ItemStack to, Simulation simulation)
Sets the stack in this slot to the given stack.Methods inherited from class alexiil.mc.lib.attributes.item.SingleItemSlotView
get, getFilter, getIndex, getMaxAmount, isValid
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface alexiil.mc.lib.attributes.item.ItemExtractable
attemptAnyExtraction, couldExtractAnything, extract, extract, extract, getPureExtractable
Methods inherited from interface alexiil.mc.lib.attributes.item.ItemInsertable
getPureInsertable, insert, offer, offer, wouldAccept, wouldPartiallyAccept
Methods inherited from interface alexiil.mc.lib.attributes.misc.Reference
asDestroyable, get, isValid
-
Method Details
-
getBackingInv
- Overrides:
getBackingInv
in classSingleItemSlotView
-
set
Sets the stack in this slot to the given stack. -
forceSet
public final void forceSet(net.minecraft.item.ItemStack to)Sets the stack in the given slot to the given stack, or throws an exception if it was not permitted. -
modify
public final void modify(java.util.function.Function<net.minecraft.item.ItemStack,net.minecraft.item.ItemStack> function)Applies the given function to the stack held in the slot, and usesforceSet(ItemStack)
on the result (Which will throw an exception if the returned stack is not valid for this inventory). -
attemptExtraction
public final net.minecraft.item.ItemStack attemptExtraction(ItemFilter filter, int maxAmount, Simulation simulation)Description copied from interface:ItemExtractable
- Specified by:
attemptExtraction
in interfaceItemExtractable
maxAmount
- The maximum number of items that can be extracted. Negative numbers throw an exception.simulation
- IfSimulation.SIMULATE
then this should return the same result that a call withSimulation.ACTION
would do, but without modifying anything else.- Returns:
- A new, independent
ItemStack
that was extracted.
-
attemptInsertion
public final net.minecraft.item.ItemStack attemptInsertion(net.minecraft.item.ItemStack stack, Simulation simulation)Description copied from interface:ItemInsertable
Inserts the given stack into this insertable, and returns the excess.- Specified by:
attemptInsertion
in interfaceItemInsertable
- Parameters:
stack
- The incoming stack. Must not be modified by this call.simulation
- IfSimulation.SIMULATE
then this shouldn't modify anything.- Returns:
- the excess
ItemStack
that wasn't accepted. This will be independent of this insertable, however it might be the given stack instead of a completely new object.
-
getInsertionFilter
Description copied from interface:ItemInsertable
Returns anItemFilter
to determine ifItemInsertable.attemptInsertion(ItemStack, Simulation)
will accept a stack. The default implementation is a call toattemptInsertion
(stack,Simulation.SIMULATE
), and it is only useful to override this if the resulting filter contains information that might be usable by the caller.- Specified by:
getInsertionFilter
in interfaceItemInsertable
- Returns:
- A filter to determine if
ItemInsertable.attemptInsertion(ItemStack, Simulation)
will accept the entirety of a given stack.
-
set
public boolean set(net.minecraft.item.ItemStack value)
-