summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/config/features/mining/MiningEventConfig.java
blob: 1616c61072844b50f44fbae4a7156d6614495fc1 (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
package at.hannibal2.skyhanni.config.features.mining;

import at.hannibal2.skyhanni.config.FeatureToggle;
import at.hannibal2.skyhanni.config.core.config.Position;
import at.hannibal2.skyhanni.features.mining.eventtracker.MiningEventType.Companion.CompressFormat;
import com.google.gson.annotations.Expose;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorDropdown;
import io.github.notenoughupdates.moulconfig.annotations.ConfigLink;
import io.github.notenoughupdates.moulconfig.annotations.ConfigOption;

public class MiningEventConfig {

    @Expose
    @ConfigOption(name = "Enabled", desc = "Show information about upcoming Dwarven Mines and Crystal Hollows mining events.\n" +
        "§eAlso enables sending data from your client. May take up to a minute to sync new events.")
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean enabled = false;

    @Expose
    @ConfigOption(name = "Show Outside Mining Islands", desc = "Show the event tracker even if you're outside of the Dwarven Mines or Crystal Hollows.")
    @ConfigEditorBoolean
    public boolean outsideMining = false;

    @Expose
    @ConfigOption(name = "What to Show", desc = "Choose which island's events are shown in the GUI.")
    @ConfigEditorDropdown
    public ShowType showType = ShowType.ALL;

    @Expose
    @ConfigOption(name = "Compressed Format", desc = "Compress the event names so that they are shorter.")
    @ConfigEditorDropdown
    public CompressFormat compressedFormat = CompressFormat.DEFAULT;

    @Expose
    @ConfigOption(name = "Compressed Island", desc = "Show the islands only as an icon.")
    @ConfigEditorBoolean
    public boolean islandAsIcon = false;

    @Expose
    @ConfigOption(name = "Show Passed Events", desc = "Show the most recently passed event at the start, greyed out.\n" +
        "§eTakes a little while to save the last event.")
    @ConfigEditorBoolean
    public boolean passedEvents = false;


    public enum ShowType {
        ALL("All Mining Islands"),
        CRYSTAL("Crystal Hollows Only"),
        DWARVEN("Dwarven Mines Only"),
        CURRENT("Current Island Only");

        private final String str;

        ShowType(String str) {
            this.str = str;
        }

        @Override
        public String toString() {
            return str;
        }
    }

    @Expose
    @ConfigLink(owner = MiningEventConfig.class, field = "enabled")
    public Position position = new Position(200, 60, false, true);
}