aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/machines/multi/purification/PurifiedWaterHelpers.java
blob: 987a328f316d90bb67fced34c270de69d2310799 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package gregtech.common.tileentities.machines.multi.purification;

import net.minecraftforge.fluids.FluidStack;

import gregtech.api.enums.Materials;
import gregtech.api.util.GTRecipe;

public class PurifiedWaterHelpers {

    public static Materials getPurifiedWaterTier(int tier) {
        return switch (tier) {
            case 1 -> Materials.Grade1PurifiedWater;
            case 2 -> Materials.Grade2PurifiedWater;
            case 3 -> Materials.Grade3PurifiedWater;
            case 4 -> Materials.Grade4PurifiedWater;
            case 5 -> Materials.Grade5PurifiedWater;
            case 6 -> Materials.Grade6PurifiedWater;
            case 7 -> Materials.Grade7PurifiedWater;
            case 8 -> Materials.Grade8PurifiedWater;
            default -> throw new IllegalStateException("Unexpected value: " + tier);
        };
    }

    public static int getWaterTier(FluidStack fluid) {
        if (fluid == null) return 0;
        else if (fluid.isFluidEqual(Materials.Grade1PurifiedWater.getFluid(1000L))) return 1;
        else if (fluid.isFluidEqual(Materials.Grade2PurifiedWater.getFluid(1000L))) return 2;
        else if (fluid.isFluidEqual(Materials.Grade3PurifiedWater.getFluid(1000L))) return 3;
        else if (fluid.isFluidEqual(Materials.Grade4PurifiedWater.getFluid(1000L))) return 4;
        else if (fluid.isFluidEqual(Materials.Grade5PurifiedWater.getFluid(1000L))) return 5;
        else if (fluid.isFluidEqual(Materials.Grade6PurifiedWater.getFluid(1000L))) return 6;
        else if (fluid.isFluidEqual(Materials.Grade7PurifiedWater.getFluid(1000L))) return 7;
        else if (fluid.isFluidEqual(Materials.Grade8PurifiedWater.getFluid(1000L))) return 8;
        else return 0;
    }

    // Used to construct NEI comparator for water tier. Returns 0 if no water is used in this recipe
    public static int getWaterTierFromRecipe(GTRecipe recipe) {
        if (recipe.mFluidInputs.length == 0) return 0;
        else return getWaterTier(recipe.mFluidInputs[0]);
    }
}