Class GroupedFluidInvFixedWrapper
java.lang.Object
alexiil.mc.lib.attributes.fluid.impl.GroupedFluidInvViewFixedWrapper
alexiil.mc.lib.attributes.fluid.impl.GroupedFluidInvFixedWrapper
- All Implemented Interfaces:
FluidExtractable
,FluidInsertable
,FluidTransferable
,GroupedFluidInv
,GroupedFluidInvView
,LimitedConsumer<FluidVolume>
,OpenWrapper
public class GroupedFluidInvFixedWrapper extends GroupedFluidInvViewFixedWrapper implements GroupedFluidInv
An
GroupedFluidInv
wrapper over an FixedFluidInv
. This implementation is the naive implementation
where every insertion operation will look at every tank in the target inventory in order to insert into the most
appropriate tank first. As such the use of this class is discouraged whenever a more efficient version can be made
(unless the target inventory has a very small size
.-
Nested Class Summary
Nested classes/interfaces inherited from interface alexiil.mc.lib.attributes.fluid.GroupedFluidInvView
GroupedFluidInvView.FluidInvStatistic
-
Constructor Summary
Constructors Constructor Description GroupedFluidInvFixedWrapper(FixedFluidInv inv)
-
Method Summary
Modifier and Type Method Description FluidVolume
attemptExtraction(FluidFilter filter, FluidAmount maxAmount, Simulation simulation)
FluidVolume
attemptInsertion(FluidVolume fluid, Simulation simulation)
Inserts the given stack into this insertable, and returns the excess.protected FixedFluidInv
inv()
Methods inherited from class alexiil.mc.lib.attributes.fluid.impl.GroupedFluidInvViewFixedWrapper
addListener_F, getStatistics, getStoredFluids, getTotalCapacity_F, getWrapped
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.fluid.FluidExtractable
attemptAnyExtraction, attemptAnyExtraction, attemptExtraction, couldExtractAnything, extract, extract, extract, extract, extract, extract, getPureExtractable
Methods inherited from interface alexiil.mc.lib.attributes.fluid.FluidInsertable
getInsertionFilter, getMinimumAcceptedAmount, getPureInsertable, insert, offer, offer, wouldAccept
Methods inherited from interface alexiil.mc.lib.attributes.fluid.GroupedFluidInv
createLimitedGroupedInv, filtered
Methods inherited from interface alexiil.mc.lib.attributes.fluid.GroupedFluidInvView
addListener, addListener_F, getAmount, getAmount, getAmount_F, getAmount_F, getCapacity, getCapacity_F, getGroupedView, getSpace, getSpace_F, getStatistics, getStatistics, getStoredFluids, getTotalCapacity, getTotalCapacity_F
-
Constructor Details
-
Method Details
-
inv
- Overrides:
inv
in classGroupedFluidInvViewFixedWrapper
-
attemptInsertion
Description copied from interface:FluidInsertable
Inserts the given stack into this insertable, and returns the excess.- Specified by:
attemptInsertion
in interfaceFluidInsertable
- Parameters:
fluid
- The incoming fluid. Must not be modified by this call.simulation
- IfSimulation.SIMULATE
then this shouldn't modify anything.- Returns:
- the excess
FluidVolume
that wasn't accepted. This will be independent of this insertable, however it might be the given object instead of a completely new object.
-
attemptExtraction
public FluidVolume attemptExtraction(FluidFilter filter, FluidAmount maxAmount, Simulation simulation)Description copied from interface:FluidExtractable
- Specified by:
attemptExtraction
in interfaceFluidExtractable
maxAmount
- The maximum amount of fluid that can be extracted. Negative numbers throw an exception.simulation
- IfSimulation.SIMULATE
then this should return the same result that the exact same call withSimulation.ACTION
would 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:
FluidExtractable
from = // Some extractable
FluidVolume
attempted = from.attemptAnyExtraction
(Integer.MAX_VALUE
,Simulation.SIMULATE
);
if (attempted.isEmpty()
) return;
FluidVolume
extracted = 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
FluidVolume
that was extracted.
-