aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/gui/modularui/SteamTexture.java
blob: 9e52c0f874fecb83b29d431ec530ed8ab38ceea4 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package gregtech.api.gui.modularui;

import com.gtnewhorizons.modularui.api.drawable.AdaptableUITexture;
import com.gtnewhorizons.modularui.api.drawable.UITexture;
import gregtech.api.enums.SteamVariant;

/**
 * Wrapper for {@link UITexture}s used to
 * ease in choosing between Bronze, Steel and Primitive textures.
 */
public class SteamTexture {

    private final UITexture bronzeTexture;
    private final UITexture steelTexture;
    private final UITexture primitiveTexture;

    private SteamTexture(UITexture bronzeTexture, UITexture steelTexture, UITexture primitiveTexture) {
        this.bronzeTexture = bronzeTexture;
        this.steelTexture = steelTexture;
        this.primitiveTexture = primitiveTexture;
    }

    public static SteamTexture fullImage(String mod, String location) {
        return new SteamTexture(
                UITexture.fullImage(mod, String.format(location, SteamVariant.BRONZE)),
                UITexture.fullImage(mod, String.format(location, SteamVariant.STEEL)),
                UITexture.fullImage(mod, String.format(location, SteamVariant.PRIMITIVE)));
    }

    public static SteamTexture adaptableTexture(
            String mod, String location, int imageWidth, int imageHeight, int borderWidthPixel) {
        return new SteamTexture(
                AdaptableUITexture.of(
                        mod, String.format(location, SteamVariant.BRONZE), imageWidth, imageHeight, borderWidthPixel),
                AdaptableUITexture.of(
                        mod, String.format(location, SteamVariant.STEEL), imageWidth, imageHeight, borderWidthPixel),
                AdaptableUITexture.of(
                        mod,
                        String.format(location, SteamVariant.PRIMITIVE),
                        imageWidth,
                        imageHeight,
                        borderWidthPixel));
    }

    public UITexture get(SteamVariant variant) {
        switch (variant) {
            case BRONZE:
                return bronzeTexture;
            case STEEL:
                return steelTexture;
            case PRIMITIVE:
                return primitiveTexture;
            default:
                return null;
        }
    }

    public AdaptableUITexture getAdaptable(SteamVariant variant) {
        switch (variant) {
            case BRONZE:
                return (AdaptableUITexture) bronzeTexture;
            case STEEL:
                return (AdaptableUITexture) steelTexture;
            case PRIMITIVE:
                return (AdaptableUITexture) primitiveTexture;
            default:
                return null;
        }
    }

    public UITexture get(boolean isHighPressure) {
        return isHighPressure ? steelTexture : bronzeTexture;
    }
}