aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/lorenz/mod/Features.java
blob: 2553f1d8d329620dc02083b97e72fa9b1bd8dfbe (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package at.lorenz.mod;

import com.google.gson.annotations.Expose;
import com.thatgravyboat.skyblockhud.SkyblockHud;
import com.thatgravyboat.skyblockhud.config.SBHConfigEditor;
import com.thatgravyboat.skyblockhud.core.GuiScreenElementWrapper;
import com.thatgravyboat.skyblockhud.core.config.Config;
import com.thatgravyboat.skyblockhud.core.config.Position;
import com.thatgravyboat.skyblockhud.core.config.annotations.Category;
import com.thatgravyboat.skyblockhud.core.config.annotations.ConfigEditorBoolean;
import com.thatgravyboat.skyblockhud.core.config.annotations.ConfigOption;
import com.thatgravyboat.skyblockhud.core.config.gui.GuiPositionEditor;
import net.minecraft.client.Minecraft;

public class Features extends Config {

    private void editOverlay(String activeConfig, int width, int height, Position position) {
        Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(position, width, height, () -> {
        }, () -> {
        }, () -> SkyblockHud.screenToOpen = new GuiScreenElementWrapper(new SBHConfigEditor(SkyblockHud.config, activeConfig))));
    }

    @Override
    public void executeRunnable(String runnableId) {
//        String activeConfigCategory = null;
//        if (Minecraft.getMinecraft().currentScreen instanceof GuiScreenElementWrapper) {
//            GuiScreenElementWrapper wrapper = (GuiScreenElementWrapper) Minecraft.getMinecraft().currentScreen;
//            if (wrapper.element instanceof SBHConfigEditor) {
//                activeConfigCategory = ((SBHConfigEditor) wrapper.element).getSelectedCategoryName();
//            }
//        }
//
//        switch (runnableId) {
//            case "rpg":
//                editOverlay(activeConfigCategory, 120, 47, rpg.rpgHudPosition);
//                return;
//            case "d1":
//                editOverlay(activeConfigCategory, 120, 32, dungeon.dungeonPlayer1);
//                return;
//            case "d2":
//                editOverlay(activeConfigCategory, 120, 32, dungeon.dungeonPlayer2);
//                return;
//            case "d3":
//                editOverlay(activeConfigCategory, 120, 32, dungeon.dungeonPlayer3);
//                return;
//            case "d4":
//                editOverlay(activeConfigCategory, 120, 32, dungeon.dungeonPlayer4);
//                return;
//            case "main":
//                editOverlay(activeConfigCategory, 1000, 34, main.mainHudPos);
//                return;
//            case "ultimate":
//                editOverlay(activeConfigCategory, 182, 5, dungeon.barPosition);
//                return;
//            case "map":
//                editOverlay(activeConfigCategory, 72, 72, map.miniMapPosition);
//                return;
//            case "tracker":
//                editOverlay(activeConfigCategory, 130, 70, trackers.trackerPosition);
//                return;
//            case "drill":
//                editOverlay(activeConfigCategory, 136, 7, mining.drillBar);
//                return;
//            case "heat":
//                editOverlay(activeConfigCategory, 45, 7, mining.heatBar);
//                return;
//            case "dialogue":
//                editOverlay(activeConfigCategory, 182, 68, misc.dialoguePos);
//                return;
//        }
    }


    @Expose
    @Category(name = "Chat", desc = "Chat related features.")
    public Chat chat = new Chat();

    @Expose
    @Category(name = "Dungeon", desc = "Features that change the catacombs dungeon experience.")
    public Dungeon dungeon = new Dungeon();

    @Expose
    @Category(name = "Inventory", desc = "Changing the behavior around the inventory.")
    public Inventory inventory = new Inventory();

    public static class Chat {

        @Expose
        @ConfigOption(name = "Main Chat Filter", desc = "Hides all the annoying chat messages.")
        @ConfigEditorBoolean
        public boolean filter = false;
    }

    public static class Dungeon {

        @Expose
        @ConfigOption(name = "Hide Dungeon Messages", desc = "Hides annoyung dungeon messages.")
        @ConfigEditorBoolean
        public boolean hideAnnoyingMessages = false;
    }

    public static class Inventory {

        @Expose
        @ConfigOption(name = "Hide Not Clickable Items", desc = "Hide items that are not clickable in " +
                "the current inventory: ah, bz, accessory bag, etc")
        @ConfigEditorBoolean
        public boolean hideNotClickableItems = false;
    }
}