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
111
112
113
|
package at.hannibal2.skyhanni.config;
import at.hannibal2.skyhanni.SkyHanniMod;
import at.hannibal2.skyhanni.config.features.*;
import at.hannibal2.skyhanni.config.gui.config.ConfigEditor;
import at.hannibal2.skyhanni.config.gui.core.GuiElement;
import at.hannibal2.skyhanni.config.gui.core.GuiScreenElementWrapper;
import at.hannibal2.skyhanni.config.gui.core.config.Position;
import at.hannibal2.skyhanni.config.gui.core.config.annotations.Category;
import at.hannibal2.skyhanni.config.gui.core.config.gui.GuiPositionEditor;
import com.google.gson.annotations.Expose;
import net.minecraft.client.Minecraft;
public class Features {
private void editOverlay(String activeConfig, int width, int height, Position position) {
Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(position, width, height, () -> {}, () -> {}, () -> SkyHanniMod.screenToOpen = new GuiScreenElementWrapper(new ConfigEditor(SkyHanniMod.feature, activeConfig))));
}
public void executeRunnable(String runnableId) {
String activeConfigCategory = null;
if (Minecraft.getMinecraft().currentScreen instanceof GuiScreenElementWrapper) {
GuiScreenElementWrapper wrapper = (GuiScreenElementWrapper) Minecraft.getMinecraft().currentScreen;
GuiElement element = wrapper.element;
if (element instanceof ConfigEditor) {
activeConfigCategory = ((ConfigEditor) element).getSelectedCategoryName();
}
}
if (runnableId.equals("petDisplay")) {
editOverlay(activeConfigCategory, 200, 16, misc.petDisplayPos);
return;
}
if (runnableId.equals("testPos")) {
editOverlay(activeConfigCategory, 200, 16, debug.testPos);
return;
}
if (runnableId.equals("dungeonMilestoneDisplay")) {
editOverlay(activeConfigCategory, 200, 16, dungeon.milestoneDisplayPos);
return;
}
if (runnableId.equals("dungeonDeathCounter")) {
editOverlay(activeConfigCategory, 200, 16, dungeon.deathCounterPos);
return;
}
if (runnableId.equals("bestSellMethod")) {
editOverlay(activeConfigCategory, 200, 16, bazaar.bestSellMethodPos);
return;
}
if (runnableId.equals("ashfangFreezeCooldown")) {
editOverlay(activeConfigCategory, 200, 16, abilities.ashfangFreezeCooldownPos);
return;
}
if (runnableId.equals("ashfangResetCooldown")) {
editOverlay(activeConfigCategory, 200, 16, abilities.ashfangNextResetCooldownPos);
return;
}
if (runnableId.equals("realTime")) {
editOverlay(activeConfigCategory, 200, 16, misc.realTimePos);
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 items and the inventory.")
public Inventory inventory = new Inventory();
@Expose
@Category(name = "Abilitiies", desc = "Stuff about abilities")
public Abilities abilities = new Abilities();
@Expose
@Category(name = "Bazaar", desc = "Bazaar settings.")
public Bazaar bazaar = new Bazaar();
@Expose
@Category(name = "Fishing", desc = "Fishing stuff.")
public Fishing fishing = new Fishing();
@Expose
@Category(name = "Damage Indicator", desc = "Better damage overview in combat with bosses of all sorts.")
public DamageIndicator damageIndicator = new DamageIndicator();
@Expose
@Category(name = "Misc", desc = "Settings without a category.")
public Misc misc = new Misc();
@Expose
@Category(name = "Api", desc = "Api Data")
public ApiData apiData = new ApiData();
@Expose
@Category(name = "Debug", desc = "Debug and test stuff.")
public Debug debug = new Debug();
@Expose
public Hidden hidden = new Hidden();
}
|