Improvements to the flud stack comparator, and fixed a missed case in the wrapped stack set comparator
This commit is contained in:
parent
429a0fc51b
commit
a7e85aba7b
|
@ -34,10 +34,13 @@ public class Comparators {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (collection1 != null) {
|
else if (collection1 != null) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else if (collection2 != null) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return -1;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,80 +10,64 @@ import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
|
||||||
public class FluidHelper
|
public class FluidHelper {
|
||||||
{
|
|
||||||
public static Comparator<FluidStack> comparator = new Comparator<FluidStack>()
|
|
||||||
{
|
|
||||||
|
|
||||||
public int compare(FluidStack fluidStack1, FluidStack fluidStack2)
|
public static final Comparator<FluidStack> COMPARATOR = new Comparator<FluidStack>() {
|
||||||
{
|
|
||||||
|
|
||||||
if (fluidStack1 != null)
|
@Override
|
||||||
{
|
public int compare(FluidStack fluidStack1, FluidStack fluidStack2) {
|
||||||
if (fluidStack2 != null)
|
|
||||||
{
|
if (fluidStack1 != null && fluidStack2 != null) {
|
||||||
// if (fluidStack1.fluidID == fluidStack2.fluidID)
|
if (fluidStack1.getFluid() != null && fluidStack2.getFluid() != null) {
|
||||||
if (FluidRegistry.getFluidID(fluidStack1.getFluid()) == FluidRegistry.getFluidID(fluidStack2.getFluid()))
|
if (FluidRegistry.getFluidName(fluidStack1).equalsIgnoreCase(FluidRegistry.getFluidName(fluidStack2))) {
|
||||||
{
|
if (fluidStack1.amount == fluidStack2.amount) {
|
||||||
if (fluidStack1.amount == fluidStack2.amount)
|
if (fluidStack1.tag != null && fluidStack2.tag != null) {
|
||||||
{
|
return fluidStack1.tag.hashCode() - fluidStack2.tag.hashCode();
|
||||||
if (fluidStack1.tag != null)
|
|
||||||
{
|
|
||||||
if (fluidStack2.tag != null)
|
|
||||||
{
|
|
||||||
return (fluidStack1.tag.hashCode() - fluidStack2.tag.hashCode());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else if (fluidStack1.tag != null) {
|
||||||
{
|
return -1;
|
||||||
if (fluidStack2.tag != null)
|
}
|
||||||
{
|
else if (fluidStack2.tag != null) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
return 0;
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
return fluidStack1.amount - fluidStack2.amount;
|
||||||
return (fluidStack1.amount - fluidStack2.amount);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
return FluidRegistry.getFluidName(fluidStack1).compareToIgnoreCase(FluidRegistry.getFluidName(fluidStack2));
|
||||||
return (FluidRegistry.getFluidID(fluidStack1.getFluid()) - FluidRegistry.getFluidID(fluidStack2.getFluid()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (fluidStack1.getFluid() != null) {
|
||||||
{
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
else if (fluidStack2.getFluid() != null) {
|
||||||
else
|
|
||||||
{
|
|
||||||
if (fluidStack2 != null)
|
|
||||||
{
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (fluidStack1 != null) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else if (fluidStack2 != null) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static void registerFluids()
|
public static void registerFluids() {
|
||||||
{
|
|
||||||
// Register Milk in the FluidRegistry if it hasn't already been done
|
// Register Milk in the FluidRegistry if it hasn't already been done
|
||||||
if (!FluidRegistry.isFluidRegistered("milk"))
|
if (!FluidRegistry.isFluidRegistered("milk")) {
|
||||||
{
|
|
||||||
Fluid milk = new Fluid("milk").setUnlocalizedName(Names.Fluids.MILK);
|
Fluid milk = new Fluid("milk").setUnlocalizedName(Names.Fluids.MILK);
|
||||||
if (FluidRegistry.registerFluid(milk))
|
if (FluidRegistry.registerFluid(milk))
|
||||||
{
|
{
|
||||||
|
@ -92,15 +76,13 @@ public class FluidHelper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int compare(FluidStack fluidStack1, FluidStack fluidStack2)
|
public static int compare(FluidStack fluidStack1, FluidStack fluidStack2) {
|
||||||
{
|
return COMPARATOR.compare(fluidStack1, fluidStack2);
|
||||||
return comparator.compare(fluidStack1, fluidStack2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String toString(FluidStack fluidStack)
|
public static String toString(FluidStack fluidStack) {
|
||||||
{
|
|
||||||
if (fluidStack != null)
|
if (fluidStack != null) {
|
||||||
{
|
|
||||||
return String.format("%sxfluidStack.%s", fluidStack.amount, fluidStack.getFluid().getName());
|
return String.format("%sxfluidStack.%s", fluidStack.amount, fluidStack.getFluid().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue