Class CombinedFluidExtractable
java.lang.Object
alexiil.mc.lib.attributes.misc.AbstractCombined<FluidExtractable>
alexiil.mc.lib.attributes.fluid.impl.CombinedFluidExtractable
- All Implemented Interfaces:
FluidExtractable,Combined
public final class CombinedFluidExtractable
extends AbstractCombined<FluidExtractable>
implements FluidExtractable
-
Field Summary
Fields inherited from class alexiil.mc.lib.attributes.misc.AbstractCombined
list -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionattemptExtraction(FluidFilter filter, FluidAmount maxAmount, Simulation simulation) Methods inherited from class alexiil.mc.lib.attributes.misc.AbstractCombined
equals, getSubObject, getSubObjectCount, hashCode, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface alexiil.mc.lib.attributes.fluid.FluidExtractable
attemptAnyExtraction, attemptAnyExtraction, attemptExtraction, couldExtractAnything, extract, extract, extract, extract, extract, extract, filtered, getPureExtractable
-
Constructor Details
-
CombinedFluidExtractable
-
-
Method Details
-
attemptExtraction
public FluidVolume attemptExtraction(FluidFilter filter, FluidAmount maxAmount, Simulation simulation) Description copied from interface:FluidExtractable- Specified by:
attemptExtractionin interfaceFluidExtractablemaxAmount- The maximum amount of fluid that can be extracted. Negative numbers throw an exception.simulation- IfSimulation.SIMULATEthen this should return the same result that the exact same call withSimulation.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.
-