summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/config/features/garden/GardenConfig.java
blob: 8aa9aa6a1124ac67347f7ebd9f2b076b0a6f8deb (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
package at.hannibal2.skyhanni.config.features.garden;

import at.hannibal2.skyhanni.config.FeatureToggle;
import at.hannibal2.skyhanni.config.core.config.Position;
import at.hannibal2.skyhanni.config.features.garden.composter.ComposterConfig;
import at.hannibal2.skyhanni.config.features.garden.cropmilestones.CropMilestonesConfig;
import at.hannibal2.skyhanni.config.features.garden.laneswitch.FarmingLaneConfig;
import at.hannibal2.skyhanni.config.features.garden.optimalspeed.OptimalSpeedConfig;
import at.hannibal2.skyhanni.config.features.garden.pests.PestsConfig;
import at.hannibal2.skyhanni.config.features.garden.visitor.VisitorConfig;
import com.google.gson.annotations.Expose;
import io.github.notenoughupdates.moulconfig.annotations.Accordion;
import io.github.notenoughupdates.moulconfig.annotations.Category;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorSlider;
import io.github.notenoughupdates.moulconfig.annotations.ConfigLink;
import io.github.notenoughupdates.moulconfig.annotations.ConfigOption;

public class GardenConfig {
    @Expose
    @ConfigOption(name = "SkyMart", desc = "")
    @Accordion
    public SkyMartConfig skyMart = new SkyMartConfig();

    @Expose
    @Category(name = "Visitor", desc = "Visitor Settings")
    public VisitorConfig visitors = new VisitorConfig();

    @Expose
    @ConfigOption(name = "Numbers", desc = "")
    @Accordion
    public NumbersConfig number = new NumbersConfig();

    @Expose
    @Category(name = "Crop Milestones", desc = "Crop Milestones Settings")
    public CropMilestonesConfig cropMilestones = new CropMilestonesConfig();

    // TODO moulconfig runnable support
    @Expose
    @ConfigOption(name = "Custom Keybinds", desc = "")
    @Accordion
    public KeyBindConfig keyBind = new KeyBindConfig();

    @Expose
    @Category(name = "Optimal Speed", desc = "Optimal Speed Settings")
    public OptimalSpeedConfig optimalSpeeds = new OptimalSpeedConfig();

    @Expose
    @ConfigOption(name = "Farming Lane", desc = "")
    @Accordion
    public FarmingLaneConfig farmingLane = new FarmingLaneConfig();

    @Expose
    @ConfigOption(name = "Garden Level", desc = "")
    @Accordion
    public GardenLevelConfig gardenLevels = new GardenLevelConfig();

    @Expose
    @ConfigOption(name = "Farming Weight", desc = "")
    @Accordion
    public EliteFarmingWeightConfig eliteFarmingWeights = new EliteFarmingWeightConfig();

    @Expose
    @ConfigOption(name = "Dicer RNG Drop Tracker", desc = "")
    @Accordion
    // TODO rename to dicerRngDropTracker
    public DicerRngDropTrackerConfig dicerCounters = new DicerRngDropTrackerConfig();

    @Expose
    @ConfigOption(name = "Money per Hour", desc = "")
    @Accordion
    public MoneyPerHourConfig moneyPerHours = new MoneyPerHourConfig();

    @Expose
    @ConfigOption(name = "Next Jacob's Contest", desc = "")
    @Accordion
    public NextJacobContestConfig nextJacobContests = new NextJacobContestConfig();

    @Expose
    @ConfigOption(name = "Armor Drop Tracker", desc = "")
    @Accordion
    // TODO rename to armorDropTracker
    public ArmorDropTrackerConfig farmingArmorDrop = new ArmorDropTrackerConfig();

    @Expose
    @ConfigOption(name = "Anita Shop", desc = "")
    @Accordion
    public AnitaShopConfig anitaShop = new AnitaShopConfig();

    @Expose
    @Category(name = "Composter", desc = "Composter Settings")
    public ComposterConfig composters = new ComposterConfig();

    @Expose
    @Category(name = "Pests", desc = "Pests Settings")
    public PestsConfig pests = new PestsConfig();

    @Expose
    @ConfigOption(name = "Farming Fortune Display", desc = "")
    @Accordion
    public FarmingFortuneConfig farmingFortunes = new FarmingFortuneConfig();

    @Expose
    @ConfigOption(name = "Tooltip Tweaks", desc = "")
    @Accordion
    public TooltipTweaksConfig tooltipTweak = new TooltipTweaksConfig();

    @Expose
    @ConfigOption(name = "Yaw and Pitch", desc = "")
    @Accordion
    public YawPitchDisplayConfig yawPitchDisplay = new YawPitchDisplayConfig();

    @Expose
    @ConfigOption(name = "Sensitivity Reducer", desc = "")
    @Accordion
    public SensitivityReducerConfig sensitivityReducerConfig = new SensitivityReducerConfig();

    @Expose
    @ConfigOption(name = "Crop Start Location", desc = "")
    @Accordion
    public CropStartLocationConfig cropStartLocation = new CropStartLocationConfig();

    @Expose
    @ConfigOption(name = "Plot Menu Highlighting", desc = "")
    @Accordion
    public PlotMenuHighlightingConfig plotMenuHighlighting = new PlotMenuHighlightingConfig();

    @Expose
    @ConfigOption(name = "Garden Plot Icon", desc = "")
    @Accordion
    public PlotIconConfig plotIcon = new PlotIconConfig();

    @Expose
    @ConfigOption(name = "Garden Commands", desc = "")
    @Accordion
    public GardenCommandsConfig gardenCommands = new GardenCommandsConfig();

    @Expose
    @ConfigOption(name = "Atmospheric Filter Display", desc = "")
    @Accordion
    public AtmosphericFilterDisplayConfig atmosphericFilterDisplay = new AtmosphericFilterDisplayConfig();

    @Expose
    @ConfigOption(name = "Plot Price", desc = "Show the price of the plot in coins when inside the Configure Plots inventory.")
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean plotPrice = true;

    @Expose
    @ConfigOption(name = "Fungi Cutter Warning", desc = "Warn when breaking mushroom with the wrong Fungi Cutter mode.")
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean fungiCutterWarn = true;

    @Expose
    @ConfigOption(name = "Burrowing Spores", desc = "Show a notification when a Burrowing Spores spawns while farming mushrooms.")
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean burrowingSporesNotification = true;

    @Expose
    @ConfigOption(
        name = "FF for Contest",
        desc = "Show the minimum needed Farming Fortune for reaching each medal in Jacob's Farming Contest inventory."
    )
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean farmingFortuneForContest = true;

    @Expose
    @ConfigLink(owner = GardenConfig.class, field = "farmingFortuneForContest")
    public Position farmingFortuneForContestPos = new Position(180, 156, false, true);

    @Expose
    @ConfigOption(
        name = "Contest Time Needed",
        desc = "Show the time and missing FF for every crop inside Jacob's Farming Contest inventory."
    )
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean jacobContestTimes = true;

    @Expose
    @ConfigOption(
        name = "Custom BPS",
        desc = "Use custom Blocks per Second value in some GUIs instead of the real one."
    )
    @ConfigEditorBoolean
    public boolean jacobContestCustomBps = true;

    // TODO moulconfig runnable support
    @Expose
    @ConfigOption(name = "Custom BPS Value", desc = "Set a custom Blocks per Second value.")
    @ConfigEditorSlider(
        minValue = 15,
        maxValue = 20,
        minStep = 0.1f
    )
    public double jacobContestCustomBpsValue = 19.9;

    @Expose
    @ConfigLink(owner = GardenConfig.class, field = "jacobContestTimes")
    public Position jacobContestTimesPosition = new Position(-359, 149, false, true);

    @Expose
    @ConfigOption(
        name = "Contest Summary",
        desc = "Show the average Blocks Per Second and blocks clicked at the end of a Jacob Farming Contest in chat."
    )
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean jacobContestSummary = true;

    @Expose
    @ConfigOption(
        name = "Personal Best Increase FF",
        desc = "Show in chat how much more FF you get from farming contest personal best bonus after beating the previous record."
    )
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean contestPersonalBestIncreaseFF = true;

    // Does not have a config element!
    @Expose
    public Position cropSpeedMeterPos = new Position(278, -236, false, true);

    @Expose
    @ConfigOption(name = "Enable Plot Borders", desc = "Enable the use of F3 + G hotkey to show Garden plot borders. Similar to how later Minecraft version render chunk borders.")
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean plotBorders = true;

    @Expose
    @ConfigOption(name = "Copy Milestone Data", desc = "Copy wrong crop milestone data in clipboard when opening the crop milestone menu. Please share this data in SkyHanni discord.")
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean copyMilestoneData = true;

    @Expose
    @ConfigOption(name = "Log Book Stats", desc = "Show total visited/accepted/denied visitors stats.")
    @ConfigEditorBoolean
    @FeatureToggle
    public boolean showLogBookStats = true;

    @Expose
    @ConfigLink(owner = GardenConfig.class, field = "showLogBookStats")
    public Position logBookStatsPos = new Position(427, 92, false, true);
}