aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-04-18 15:48:19 +0800
committershedaniel <daniel@shedaniel.me>2020-04-18 15:48:19 +0800
commit8e617f5a6c92a21be270ec190261d979deac965f (patch)
treedb564a02bd9a4d60cf5362d0ae239924ccd5d9c6 /src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java
parent8fc595cace9efb981009b7a9f1a3be1809895164 (diff)
downloadRoughlyEnoughItems-8e617f5a6c92a21be270ec190261d979deac965f.tar.gz
RoughlyEnoughItems-8e617f5a6c92a21be270ec190261d979deac965f.tar.bz2
RoughlyEnoughItems-8e617f5a6c92a21be270ec190261d979deac965f.zip
Added FluidSupportProvider
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java')
-rw-r--r--src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java b/src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java
index 61b604bd2..02c524b75 100644
--- a/src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java
+++ b/src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java
@@ -52,15 +52,19 @@ import java.util.*;
@ApiStatus.Internal
public class FluidEntryStack extends AbstractEntryStack {
private static final Map<Fluid, Pair<Sprite, Integer>> FLUID_SPRITE_CACHE = new HashMap<>();
- private static final int EMPTY_AMOUNT = -1319182373;
+ private static final double EMPTY_AMOUNT = -1319182373;
private Fluid fluid;
- private int amount;
+ private double amount;
public FluidEntryStack(Fluid fluid) {
this(fluid, EMPTY_AMOUNT);
}
public FluidEntryStack(Fluid fluid, int amount) {
+ this(fluid, (double) amount);
+ }
+
+ public FluidEntryStack(Fluid fluid, double amount) {
this.fluid = fluid;
this.amount = amount;
}
@@ -93,13 +97,13 @@ public class FluidEntryStack extends AbstractEntryStack {
}
@Override
- public int getAmount() {
+ public double getFloatingAmount() {
return amount;
}
@Override
- public void setAmount(int amount) {
- this.amount = amount == EMPTY_AMOUNT ? EMPTY_AMOUNT : Math.max(amount, 0);
+ public void setFloatingAmount(double amount) {
+ this.amount = amount <= 0 ? EMPTY_AMOUNT : amount;
if (isEmpty()) {
fluid = Fluids.EMPTY;
}
@@ -127,35 +131,35 @@ public class FluidEntryStack extends AbstractEntryStack {
@Override
public boolean equalsIgnoreTagsAndAmount(EntryStack stack) {
if (stack.getType() != Type.FLUID)
- return false;
+ return EntryStack.copyFluidToItem(this).equalsIgnoreTagsAndAmount(stack);
return fluid == stack.getFluid();
}
@Override
public boolean equalsIgnoreTags(EntryStack stack) {
if (stack.getType() != Type.FLUID)
- return false;
+ return EntryStack.copyFluidToItem(this).equalsIgnoreTags(stack);
return fluid == stack.getFluid() && amount == stack.getAmount();
}
@Override
public boolean equalsIgnoreAmount(EntryStack stack) {
if (stack.getType() != Type.FLUID)
- return false;
+ return EntryStack.copyFluidToItem(this).equalsIgnoreAmount(stack);
return fluid == stack.getFluid();
}
@Override
public boolean equalsAll(EntryStack stack) {
if (stack.getType() != Type.FLUID)
- return false;
+ return EntryStack.copyFluidToItem(this).equalsAll(stack);
return fluid == stack.getFluid() && amount == stack.getAmount();
}
@Override
public int hashOfAll() {
int result = hashIgnoreAmountAndTags();
- result = 31 * result + amount;
+ result = 31 * result + Double.hashCode(amount);
return result;
}