Class SimpleLimitedFixedItemInv
java.lang.Object
alexiil.mc.lib.attributes.item.impl.DelegatingFixedItemInv
alexiil.mc.lib.attributes.item.impl.SimpleLimitedFixedItemInv
- All Implemented Interfaces:
- Convertible,- AbstractItemInvView,- FixedItemInv,- FixedItemInvView,- LimitedFixedItemInv
- Direct Known Subclasses:
- SimpleLimitedFixedItemInv.OfCopying,- SimpleLimitedFixedItemInv.OfModifiable
public class SimpleLimitedFixedItemInv
extends DelegatingFixedItemInv
implements LimitedFixedItemInv
A simple implementation of 
LimitedFixedItemInv that makes no assumptions about the backing
 FixedItemInv.- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classstatic classNested classes/interfaces inherited from interface alexiil.mc.lib.attributes.item.AbstractItemInvViewAbstractItemInvView.DefaultChangeTrackerNested classes/interfaces inherited from interface alexiil.mc.lib.attributes.item.FixedItemInvFixedItemInv.CopyingFixedItemInv, FixedItemInv.ModifiableFixedItemInvNested classes/interfaces inherited from interface alexiil.mc.lib.attributes.item.LimitedFixedItemInvLimitedFixedItemInv.ItemSlotLimitRule
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected ItemFilter[]protected ItemFilter[]protected byte[]protected byte[]Fields inherited from class alexiil.mc.lib.attributes.item.impl.DelegatingFixedItemInvdelegate
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidcopy()Creates a copy of thisLimitedFixedItemInv(with the same backing inventory and the same rules).static SimpleLimitedFixedItemInvcreateLimited(FixedItemInv inv)net.minecraft.item.ItemStackextractStack(int slot, ItemFilter filter, net.minecraft.item.ItemStack mergeWith, int maxCount, Simulation simulation)Attempts to extract part of the stack that is held in the given slot.getFilterForSlot(int slot)ExposesFixedItemInvView.isItemValidForSlot(int, ItemStack)as a (potentially) readable filter.intgetMaxAmount(int slot, net.minecraft.item.ItemStack stack)getRule(int slot)getSubRule(int from, int to)net.minecraft.item.ItemStackinsertStack(int slot, net.minecraft.item.ItemStack stack, Simulation simulation)Attempts to insert the given stack into the given slot, returning the excess.booleanisItemValidForSlot(int slot, net.minecraft.item.ItemStack stack)Checks to see if the given stack would be valid for this slot, ignoring the current contents.Marks this object as final, and disallows any further changes to this.booleansetInvStack(int slot, net.minecraft.item.ItemStack to, Simulation simulation)Sets the stack in the given slot to the given stack.Methods inherited from class alexiil.mc.lib.attributes.item.impl.DelegatingFixedItemInvaddListener, createDelegate, getChangeValue, getInvStack, getSlotCountMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface alexiil.mc.lib.attributes.item.AbstractItemInvViewaddListener, getChangeValueMethods inherited from interface alexiil.mc.lib.attributes.item.FixedItemInvcreateLimitedFixedInv, forceSetInvStack, getExtractable, getGroupedInv, getInsertable, getInvStack, getMappedInv, getSlot, getSubInv, getTransferable, modifySlot, slotIterableMethods inherited from interface alexiil.mc.lib.attributes.item.FixedItemInvViewconvertTo, getFixedView, getSlotCount, offerSelfAsAttribute, stackIterableMethods inherited from interface alexiil.mc.lib.attributes.item.LimitedFixedItemInvasUnmodifiable, getAllRule, reset
- 
Field Details- 
insertionFilters
- 
extractionFilters
- 
maxInsertionAmountsprotected final byte[] maxInsertionAmounts
- 
minimumAmountsprotected final byte[] minimumAmounts
 
- 
- 
Constructor Details- 
SimpleLimitedFixedItemInv
 
- 
- 
Method Details- 
createLimited
- 
markFinalDescription copied from interface:LimitedFixedItemInvMarks this object as final, and disallows any further changes to this. If this is called thenLimitedFixedItemInv.asUnmodifiable()will return this object.- Specified by:
- markFinalin interface- LimitedFixedItemInv
- Returns:
- this.
 
- 
assertMutableprotected void assertMutable()
- 
copyDescription copied from interface:LimitedFixedItemInvCreates a copy of thisLimitedFixedItemInv(with the same backing inventory and the same rules). If this has been marked as final (LimitedFixedItemInv.markFinal()) then the copy will be marked as final as well..- Specified by:
- copyin interface- LimitedFixedItemInv
 
- 
isItemValidForSlotpublic boolean isItemValidForSlot(int slot, net.minecraft.item.ItemStack stack)Description copied from interface:FixedItemInvChecks to see if the given stack would be valid for this slot, ignoring the current contents. Note that this method should adhere to the requirements ofItemFilter.matches(ItemStack), so this must not care about theItemStack.getCount(). Passingemptystacks will generally not return useful results.Note that just because an ItemStackpasses this validity test, and is stackable with the current stack, does not mean that you can insert the stack into this inventory..- Specified by:
- isItemValidForSlotin interface- FixedItemInv
- Specified by:
- isItemValidForSlotin interface- FixedItemInvView
- Overrides:
- isItemValidForSlotin class- DelegatingFixedItemInv
- Parameters:
- slot- The slot index. Must be a value between 0 (inclusive) and- FixedItemInvView.getSlotCount()(exclusive) to be valid. (Like in arrays, lists, etc).
- stack- The- ItemStackto check. It's undefined what is returned if an- emptystack is passed in, but it is not generally expected to be useful.
 
- 
getFilterForSlotDescription copied from interface:FixedItemInvViewExposesFixedItemInvView.isItemValidForSlot(int, ItemStack)as a (potentially) readable filter.- Specified by:
- getFilterForSlotin interface- FixedItemInvView
- Overrides:
- getFilterForSlotin class- DelegatingFixedItemInv
- Parameters:
- slot- The slot index. Must be a value between 0 (inclusive) and- FixedItemInvView.getSlotCount()(exclusive) to be valid. (Like in arrays, lists, etc).
- Returns:
- An ItemFilterfor what may be present in this slot. If this slot is filtered by anItemFilterinternally then it is highly recommended that this be overridden to return that filter rather than the default opaque wrapper aroundFixedItemInvView.isItemValidForSlot(int, ItemStack).
 
- 
setInvStackDescription copied from interface:FixedItemInvSets the stack in the given slot to the given stack.- Specified by:
- setInvStackin interface- FixedItemInv
- Overrides:
- setInvStackin class- DelegatingFixedItemInv
- to- The new- ItemStack. It is not defined if you are allowed to modify this or not.
- Returns:
- True if the modification was allowed, false otherwise. (For example if the given stack doesn't pass the
         FixedItemInvView.isItemValidForSlot(int, ItemStack)test).
 
- 
insertStackpublic net.minecraft.item.ItemStack insertStack(int slot, net.minecraft.item.ItemStack stack, Simulation simulation)Description copied from interface:FixedItemInvAttempts to insert the given stack into the given slot, returning the excess.(This is a slot-based version of ItemInsertable.attemptInsertion(ItemStack, Simulation)- if you want to use any of the other slot specific methods then it's recommended you get anItemInsertablefromFixedItemInv.getSlot(int)).- Specified by:
- insertStackin interface- FixedItemInv
- Overrides:
- insertStackin class- DelegatingFixedItemInv
- Parameters:
- slot- The slot index. Must be a value between 0 (inclusive) and- FixedItemInvView.getSlotCount()(exclusive) to be valid. (Like in arrays, lists, etc).
- stack- The incoming stack. Must not be modified by this call.
- simulation- If- Simulation.SIMULATEthen this shouldn't modify anything.
- Returns:
- the excess ItemStackthat wasn't accepted. This will be independent of this insertable, however it might be the given stack instead of a completely new object.
 
- 
extractStackpublic net.minecraft.item.ItemStack extractStack(int slot, @Nullable ItemFilter filter, net.minecraft.item.ItemStack mergeWith, int maxCount, Simulation simulation)Description copied from interface:FixedItemInvAttempts to extract part of the stack that is held in the given slot.This is a slot based version of ItemExtractable, however it includes a number of additional arguments. If you want to use any of the simpler methods than it's recommenced that you get anItemExtractablefromFixedItemInv.getSlot(int).- Specified by:
- extractStackin interface- FixedItemInv
- Overrides:
- extractStackin class- DelegatingFixedItemInv
- Parameters:
- slot- The slot index. Must be a value between 0 (inclusive) and- FixedItemInvView.getSlotCount()(exclusive) to be valid. (Like in arrays, lists, etc).
- filter- If non-null then this will be checked against the stored stack to see if anything can be extracted.
- mergeWith- If non-empty then this will be merged with the extracted stack, and as such they should be equal.
- maxCount- The maximum number of items to extract. Note that if the "mergeWith" argument is non-empty then the actual limit should be the minimum of- ItemStack.getMaxCount()and the given maxCount.
- simulation- If- Simulation.SIMULATEthen this shouldn't modify anything.
- Returns:
- mergeWith (if non-empty) or the extracted stack if mergeWith is empty.
 
- 
getMaxAmountpublic int getMaxAmount(int slot, net.minecraft.item.ItemStack stack)- Specified by:
- getMaxAmountin interface- FixedItemInvView
- Overrides:
- getMaxAmountin class- DelegatingFixedItemInv
- Parameters:
- slot- The slot index. Must be a value between 0 (inclusive) and- FixedItemInvView.getSlotCount()(exclusive) to be valid. (Like in arrays, lists, etc).
- stack- The stack to check for. May be an- emptystack to get the maximum amount that this can hold of any stack.
- Returns:
- The maximum amount that the given slot can hold of the given stack. This method will ignore the current
         stack in FixedItemInvView.getInvStack(int). The default implementation just delegates toItemStack.getMaxCount(). Note that any setters that this object implements (likeFixedItemInv.setInvStack(int, ItemStack, Simulation)should reject stacks that are greater than this value. (and callers should only call this if they need to check the amounts separately. Note that it is meaningless to return values greater than the maximum amount an item can be stacked to here, and callers are free to throw an exception if this is violated. (Basically huge single-slot inventories shouldn't implement this interface).
 
- 
getRule- Specified by:
- getRulein interface- LimitedFixedItemInv
- Returns:
- A rule for the single slot.
 
- 
getSubRule- Specified by:
- getSubRulein interface- LimitedFixedItemInv
- Parameters:
- from- The first slot (inclusive)
- to- The last slot (exclusive).
- Returns:
- A rule that applies to every slot between from and to.
 
 
-