Class FilteredFluidInsertable
java.lang.Object
alexiil.mc.lib.attributes.fluid.impl.FilteredFluidInsertable
- All Implemented Interfaces:
FluidInsertable
,LimitedConsumer<FluidVolume>
public final class FilteredFluidInsertable extends java.lang.Object implements FluidInsertable
A
FluidInsertable
that delegates to another FluidInsertable
, but has an additional filter as to what
can be inserted.-
Field Summary
Fields Modifier and Type Field Description FluidFilter
filter
-
Constructor Summary
Constructors Constructor Description FilteredFluidInsertable(FluidInsertable real, FluidFilter filter)
-
Method Summary
Modifier and Type Method Description FluidVolume
attemptInsertion(FluidVolume fluid, Simulation simulation)
Inserts the given stack into this insertable, and returns the excess.FluidInsertable
filtered(FluidFilter filter)
FluidFilter
getInsertionFilter()
Returns anFluidFilter
to determine ifFluidInsertable.attemptInsertion(FluidVolume, Simulation)
could ever accept a fluid.FluidAmount
getMinimumAcceptedAmount()
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.FluidInsertable
getPureInsertable, insert, offer, offer, wouldAccept
-
Field Details
-
Constructor Details
-
Method Details
-
getInsertionFilter
Description copied from interface:FluidInsertable
Returns anFluidFilter
to determine ifFluidInsertable.attemptInsertion(FluidVolume, Simulation)
could ever accept a fluid. The default implementation is to returnConstantFluidFilter.ANYTHING
, and so it is recommended that custom insertables override this to return a more accurate filter.- Specified by:
getInsertionFilter
in interfaceFluidInsertable
- Returns:
- A filter to determine if the given fluid could ever be inserted.
-
getMinimumAcceptedAmount
- Specified by:
getMinimumAcceptedAmount
in interfaceFluidInsertable
- Returns:
- The minimum amount of fluid that
FluidInsertable.attemptInsertion(FluidVolume, Simulation)
will actually accept. Note that this only provides a guarantee thatfluid volumes
with anamount
less than this will never be accepted.A null return value indicates that there is no minimum value.
-
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.
-
filtered
- Specified by:
filtered
in interfaceFluidInsertable
- Returns:
- A new
FluidInsertable
that has an additional filter applied to the fluid inserted into it.
-