Class ItemBasedSingleFluidInv
java.lang.Object
alexiil.mc.lib.attributes.misc.AbstractItemBasedAttribute
alexiil.mc.lib.attributes.fluid.item.ItemBasedSingleFluidInv
- All Implemented Interfaces:
- FluidExtractable,- FluidInsertable,- FluidTransferable,- GroupedFluidInv,- GroupedFluidInvView,- LimitedConsumer<FluidVolume>
public abstract class ItemBasedSingleFluidInv
extends AbstractItemBasedAttribute
implements GroupedFluidInv
An abstract 
GroupedFluidInv for an AbstractItemBasedAttribute which only ever contains a single
 fluid, and can contain any amount of said fluid between 0 and it's capacity.- 
Nested Class SummaryNested ClassesNested classes/interfaces inherited from interface alexiil.mc.lib.attributes.fluid.GroupedFluidInvViewGroupedFluidInvView.FluidInvStatistic
- 
Field SummaryFields inherited from class alexiil.mc.lib.attributes.misc.AbstractItemBasedAttributeexcessStacks, stackRef
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedItemBasedSingleFluidInv(Reference<net.minecraft.item.ItemStack> stackRef, LimitedConsumer<net.minecraft.item.ItemStack> excessStacks)
- 
Method SummaryModifier and TypeMethodDescriptionattemptExtraction(FluidFilter filter, FluidAmount maxAmount, Simulation simulation)attemptInsertion(FluidVolume fluid, Simulation simulation)Inserts the given stack into this insertable, and returns the excess.protected abstract ItemBasedSingleFluidInv.HeldFluidInfogetInfo(net.minecraft.item.ItemStack stack)TheFluidFilterto limit what may be inserted.getStatistics(FluidFilter filter)protected abstract booleanisInvalid(net.minecraft.item.ItemStack stack)protected abstract net.minecraft.item.ItemStackwriteToStack(net.minecraft.item.ItemStack stack, FluidVolume fluid)Methods inherited from class alexiil.mc.lib.attributes.misc.AbstractItemBasedAttributesetStacks, toStringMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface alexiil.mc.lib.attributes.fluid.FluidExtractableattemptAnyExtraction, attemptAnyExtraction, attemptExtraction, couldExtractAnything, extract, extract, extract, extract, extract, extract, getPureExtractableMethods inherited from interface alexiil.mc.lib.attributes.fluid.FluidInsertablegetMinimumAcceptedAmount, getPureInsertable, insert, offer, offer, wouldAcceptMethods inherited from interface alexiil.mc.lib.attributes.fluid.GroupedFluidInvcreateLimitedGroupedInv, filteredMethods inherited from interface alexiil.mc.lib.attributes.fluid.GroupedFluidInvViewaddListener, addListener_F, getAmount, getAmount, getAmount_F, getAmount_F, getCapacity, getCapacity_F, getGroupedView, getSpace, getSpace_F, getStatistics, getTotalCapacity, getTotalCapacity_F
- 
Constructor Details- 
ItemBasedSingleFluidInvprotected ItemBasedSingleFluidInv(Reference<net.minecraft.item.ItemStack> stackRef, LimitedConsumer<net.minecraft.item.ItemStack> excessStacks)
 
- 
- 
Method Details- 
isInvalidprotected abstract boolean isInvalid(net.minecraft.item.ItemStack stack)- Parameters:
- stack- The- ItemStackto test. This will never be empty.
- Returns:
- True if the given stack is not a valid target.
 
- 
getInfoprotected abstract ItemBasedSingleFluidInv.HeldFluidInfo getInfo(net.minecraft.item.ItemStack stack)- Parameters:
- stack- The- ItemStackof which to look at. This will have already been passed to- isInvalid(ItemStack)and returned false. You should ignore the- ItemStack.getCount(), and treat it as 1.
- Returns:
- The information for a given stack.
 
- 
writeToStack@Nullable protected abstract net.minecraft.item.ItemStack writeToStack(net.minecraft.item.ItemStack stack, FluidVolume fluid)- Parameters:
- stack- The stack to modify. However it is not required that this stack is actually modified, instead you could create a new stack and return it.
- Returns:
- Either the newly modified stack (if the given fluid was valid), or null if this couldn't write the given fluid to the stack.
 
- 
getStoredFluids- Specified by:
- getStoredFluidsin interface- GroupedFluidInvView
- Returns:
- a set containing all of the FluidKey's that are stored in the inventory.
 
- 
getStatistics- Specified by:
- getStatisticsin interface- GroupedFluidInvView
- Parameters:
- filter- The filter to check on.
- Returns:
- Statistics about the currently stored amount, capacity, and space for everything that matches the given filter.
 
- 
getInsertionFilterTheFluidFilterto limit what may be inserted. NOTE: subclasses must never callattemptInsertion(FluidVolume, Simulation)from inside this method, or return aFluidFilterwhosematchesmethod calls attemptInsertion as this is used by attemptInsertion in order to filter incoming fluids.- Specified by:
- getInsertionFilterin interface- FluidInsertable
- Returns:
- A filter to determine if the given fluid could ever be inserted.
 
- 
attemptInsertionDescription copied from interface:FluidInsertableInserts the given stack into this insertable, and returns the excess.- Specified by:
- attemptInsertionin interface- FluidInsertable
- Parameters:
- fluid- The incoming fluid. Must not be modified by this call.
- simulation- If- Simulation.SIMULATEthen this shouldn't modify anything.
- Returns:
- the excess FluidVolumethat wasn't accepted. This will be independent of this insertable, however it might be the given object instead of a completely new object.
 
- 
attemptExtractionpublic FluidVolume attemptExtraction(FluidFilter filter, FluidAmount maxAmount, Simulation simulation)Description copied from interface:FluidExtractable- Specified by:
- attemptExtractionin interface- FluidExtractable
- maxAmount- The maximum amount of fluid that can be extracted. Negative numbers throw an exception.
- simulation- If- Simulation.SIMULATEthen this should return the same result that the exact same call with- Simulation.ACTIONwould do, except that the filter can be made more specific between calls if the previously simulated extracted fluid is used as a filter.- For example the following code snippet should never throw an exception: - FluidExtractablefrom = // Some extractable
 - FluidVolumeattempted = from.- attemptAnyExtraction(- Integer.MAX_VALUE,- Simulation.SIMULATE);
 if (attempted.- isEmpty()) return;
 - FluidVolumeextracted = from.- extract(attempted.- getFluidKey(), attempted.- getAmount());
 assert !extracted.- isEmpty;
 assert attempted.- getAmount()== extracted.- getAmount();
 assert attempted.- getFluidKet()== extracted.- getFluidKet();
 assert attempted.- equals(extracted);
- Returns:
- A new, independent FluidVolumethat was extracted.
 
 
-