aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kubatech/api/enums/EIGModes.java
blob: ef954ea699cbd840e7c7c50f23c52ba8da1404cb (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 kubatech.api.enums;

import java.util.HashMap;

import gregtech.api.util.MultiblockTooltipBuilder;
import kubatech.api.eig.EIGMode;
import kubatech.tileentity.gregtech.multiblock.eigmodes.EIGIC2Mode;
import kubatech.tileentity.gregtech.multiblock.eigmodes.EIGNormalMode;

public class EIGModes {

    private static final HashMap<String, EIGMode> modes = new HashMap<>();

    public static final EIGMode Normal = addMode(EIGNormalMode.instance);
    public static final EIGMode IC2 = addMode(EIGIC2Mode.instance);

    // this is basically a fake enum, plz don't instantiate
    private EIGModes() {}

    private static EIGMode addMode(EIGMode mode) {
        modes.put(mode.getName(), mode);
        return mode;
    }

    public static EIGMode getModeFromName(String name) {
        return modes.get(name);
    }

    public static EIGMode getNextMode(EIGMode from) {
        int id = (from.getUIIndex() + 1) % modes.size();
        for (EIGMode mode : modes.values()) {
            if (mode.getUIIndex() == id) return mode;
        }
        return Normal;
    }

    public static void addTooltipInfo(MultiblockTooltipBuilder tt) {
        // maybe make this use the mods list instead
        EIGModes.Normal.addTooltipInfo(tt);
        EIGModes.IC2.addTooltipInfo(tt);
    }
}