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
|
package darkknight.jewelrycraft.config;
import cpw.mods.fml.client.event.ConfigChangedEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import darkknight.jewelrycraft.util.Variables;
import net.minecraftforge.common.config.Configuration;
public class ConfigHandler {
public static Configuration config;
public static final ConfigHandler INSTANCE = new ConfigHandler();
public static final String[] categories = {
"Timers", "Village Generation", "Misc", "World Generation",
"Curses" };
public static int INGOT_COOLING_TIME;
public static int INGOT_MELTING_TIME;
public static int GEM_PLACEMENT_TIME;
public static int RITUAL_TIME;
public static int HEART_DESPAWN_TIME;
public static boolean GENERATE_VILLAGE_NETHERSTAR;
public static boolean CAN_FURNACE_GENERATE_INGOTS;
public static int MAX_VILLAGE_JEWELERS;
public static int JEWELER_WEIGHT;
public static int INGOT_CHEST_MIN;
public static int INGOT_CHEST_MAX;
public static int INGOT_CHEST_MAX_STACK;
public static int GEM_CHEST_MIN;
public static int GEM_CHEST_MAX;
public static int FURNACE_MIN_INGOT_STACK;
public static int FURNACE_MAX_INGOT_STACK;
public static int MAX_BLACK_HEARTS_PICKUP;
public static int MAX_BLUE_HEARTS_PICKUP;
public static boolean CAN_BLUE_HEARTS_SPAWN;
public static boolean CAN_BLACK_HEARTS_SPAWN;
public static boolean CAN_HOLY_HEARTS_SPAWN;
public static boolean CAN_RED_HEARTS_SPAWN;
public static boolean CRYSTAL_GLOW;
public static boolean CRYSTAL_PARTICLES;
public static boolean HEARTS_DESPAWN;
public static boolean JEWELRY_INFO;
public static boolean CURSES_ENABLED = true;
public static boolean CURSE_ROTTEN_HEART = true;
public static boolean CURSE_FLAMING_SOUL = true;
public static boolean CURSE_GREED = true;
public static boolean CURSE_BLIND = true;
public static boolean CURSE_INFAMY = true;
public static boolean CURSE_MIDAS_TOUCH = true;
public static boolean CURSE_RABBIT_PAW = true;
public static boolean CURSE_PENTAGRAM = true;
public static boolean CURSE_VAMPIRE_HUNGER = true;
public static boolean CURSE_HUMBLE_BUNDLE = true;
public static boolean CURSE_DEATHS_TOUCH = true;
public static boolean CURSE_DOUBLE_DOWN = true;
public static boolean CURSE_INCREDIBLE_DEVOTION = true;
public static float DEVOTION_FACTOR = 10.0f;
public static boolean CURSE_MONEY_EQUALS_POWER = true;
public static boolean CURSE_SCION_OF_HELL = true;
public static boolean ENABLE_WORLD_GEN = true;
public static boolean ORE_GEN = true;
public static boolean CRYSTAL_GEN = true;
public static boolean STRUCTURES[] = {
true, true, true, true, true, true };
public static int STRUCTURES_SPAWN_CHANCE[] = { 6,
5, 7, 10, 6, 10 };
public void loadConfig(FMLPreInitializationEvent event) {
config = new Configuration(event.getSuggestedConfigurationFile(),
true);
config.load();
syncConfigs();
}
private void syncConfigs() {
INGOT_COOLING_TIME = config.getInt("Molder Ingot Cooling Time",
categories[0], 100, 5, Integer.MAX_VALUE,
"This sets the number of ticks you need to wait before the mold is cooled.");
INGOT_MELTING_TIME = config.getInt("Ingot Melting Time",
categories[0], 1500, 5, Integer.MAX_VALUE,
"This sets the number of ticks you need to wait before an ingot is completely smelted.");
GEM_PLACEMENT_TIME = config.getInt("Jewelry Crafting Time",
categories[0], 200, 5, Integer.MAX_VALUE,
"This sets the number of ticks it takes for a jewel to be modified.");
RITUAL_TIME = config.getInt("Ritual Time", categories[0], 500, 5,
Integer.MAX_VALUE,
"This sets the number of ticks it takes for the ritual to end.");
HEART_DESPAWN_TIME = config.getInt("Hearts Despawn Time",
categories[0], 900, 20, Integer.MAX_VALUE,
"This sets the number of ticks it takes for hearts to despawn, 20=1 second");
GENERATE_VILLAGE_NETHERSTAR = config.getBoolean(
"Netherstar Generation", categories[1], false,
"If set to true Nether Stars will be able to generate in Jewelers chests.");
CAN_FURNACE_GENERATE_INGOTS = config.getBoolean(
"Furnace Ingots Generation", categories[1], true,
"If set to true jewelers will generate ingots in furnaces.");
MAX_VILLAGE_JEWELERS = config.getInt("Maximum Jewelers",
categories[1], 1, 0, Integer.MAX_VALUE,
"Sets how many jewelers can be in a village.");
JEWELER_WEIGHT = config.getInt("Jewelers Weight", categories[1],
30, 0, Integer.MAX_VALUE,
"Chance of getting a jeweler in a village. The higher the value, the higher the chance.");
INGOT_CHEST_MIN = config.getInt("Ingot Chest Min", categories[1],
1, 0, Integer.MAX_VALUE,
"Minimum number of ingots that can be found in a chest from the Jeweler. (It's the chest from the back part)");
INGOT_CHEST_MAX = config.getInt("Ingot Chest Max", categories[1],
4, 0, Integer.MAX_VALUE,
"Maximum number of ingots that can be found in a chest from the Jeweler. (It's the chest from the back part)");
INGOT_CHEST_MAX_STACK = config.getInt("Ingot Chest Max Stack",
categories[1], 2, 0, Integer.MAX_VALUE,
"Maximum number of the stack the ingots can be. For example: if set to 2 and ingots have a chance of generating, you have a chance of getting a stack of max 2 ingots in a chest.");
GEM_CHEST_MIN = config.getInt("Jewelers Chest Min", categories[1],
2, 0, Integer.MAX_VALUE,
"Determines the minimum nuber of jewels/modifiers that can be generated in the front chests of a Jeweler.");
GEM_CHEST_MAX = config.getInt("Jewelers Chest Max", categories[1],
5, 0, Integer.MAX_VALUE,
"Determines the maximum nuber of jewels/modifiers that can be generated in the front chests of a Jeweler.");
FURNACE_MIN_INGOT_STACK = config.getInt("Ingot Furnace Min",
categories[1], 2, 0, Integer.MAX_VALUE,
"Determines the minimum number of ingots that can generate in a furnace.");
FURNACE_MAX_INGOT_STACK = config.getInt("Ingot Furnace Max",
categories[1], 5, 0, Integer.MAX_VALUE,
"Determines the maximum number of ingots that can generate in a furnace.");
CRYSTAL_GLOW = config.getBoolean("Crystal Glow", categories[2],
false,
"If true, then crystal will slowly glow (can cause lag)");
CRYSTAL_PARTICLES = config.getBoolean("Crystal Particles",
categories[2], true,
"If false, then crystal will no longer spawn particles");
HEARTS_DESPAWN = config.getBoolean("Hearts Despawn", categories[2],
true,
"If false, then Hearts and Half-hearts will no longer despawn");
JEWELRY_INFO = config.getBoolean("Jewelry Info", categories[2],
true,
"If false, then extra info won't be show when hovering over a jewelery.");
MAX_BLACK_HEARTS_PICKUP = config.getInt("Max Black Hearts Pickup",
categories[2], Integer.MAX_VALUE, 0, Integer.MAX_VALUE,
"Determines how many black hearts can a player pick up.");
MAX_BLUE_HEARTS_PICKUP = config.getInt("Max Blue Hearts Pickup",
categories[2], Integer.MAX_VALUE, 0, Integer.MAX_VALUE,
"Determines how many blue hearts can a player pick up.");
CAN_BLUE_HEARTS_SPAWN = config.getBoolean("Can Blue Hearts Spawn",
categories[2], true,
"Determines if blue hearts can spawn.");
CAN_BLACK_HEARTS_SPAWN = config.getBoolean(
"Can Black Hearts Spawn", categories[2], true,
"Determines if black hearts can spawn.");
CAN_HOLY_HEARTS_SPAWN = config.getBoolean("Can Holy Hearts Spawn",
categories[2], true,
"Determines if holy hearts can spawn.");
CAN_RED_HEARTS_SPAWN = config.getBoolean("Can Red Hearts Spawn",
categories[2], true,
"Determines if red hearts can spawn.");
ENABLE_WORLD_GEN = config.getBoolean("World Generation",
categories[3], true,
"If false, nothing will generate (this includes ore)");
ORE_GEN = config.getBoolean("Ore Generation", categories[3], true,
"If false, ores won't generate");
CRYSTAL_GEN = config.getBoolean("Crystal Generation",
categories[3], true, "If false, crystals won't generate");
for (int i = 0; i < STRUCTURES.length; i++)
STRUCTURES[i] = config.getBoolean(
"Structure " + (i + 1) + " Generation", categories[3],
true, "If false, structure no." + (i + 1)
+ " won't generate");
for (int i = 0; i < STRUCTURES.length; i++)
STRUCTURES_SPAWN_CHANCE[i] = config.getInt(
"Structure " + (i + 1) + " Spawn Chance",
categories[3], STRUCTURES_SPAWN_CHANCE[i], 1,
Integer.MAX_VALUE,
"Determines the chance for structure no." + (i + 1)
+ " to generate. Lower = higher chance and vice versa.");
CURSES_ENABLED = config.getBoolean("Curses", categories[4], true,
"If set to false curses will be deactivated.");
CURSE_ROTTEN_HEART = config.getBoolean("Rotten Heart",
categories[4], true,
"If set to false this curse will be deactivated.");
CURSE_FLAMING_SOUL = config.getBoolean("Flaming Soul",
categories[4], true,
"If set to false this curse will be deactivated.");
CURSE_GREED = config.getBoolean("Greed", categories[4], true,
"If set to false this curse will be deactivated.");
CURSE_BLIND = config.getBoolean("Blind", categories[4], true,
"If set to false this curse will be deactivated.");
CURSE_INFAMY = config.getBoolean("Infamy", categories[4], true,
"If set to false this curse will be deactivated.");
CURSE_MIDAS_TOUCH = config.getBoolean("Midas Touch", categories[4],
true, "If set to false this curse will be deactivated.");
CURSE_RABBIT_PAW = config.getBoolean("Rabbit's Paw", categories[4],
true, "If set to false this curse will be deactivated.");
CURSE_PENTAGRAM = config.getBoolean("Pentagram", categories[4],
true, "If set to false this curse will be deactivated.");
CURSE_VAMPIRE_HUNGER = config.getBoolean("Vampire Hunger",
categories[4], true,
"If set to false this curse will be deactivated.");
CURSE_HUMBLE_BUNDLE = config.getBoolean("Humble Bundle",
categories[4], true,
"If set to false this curse will be deactivated.");
CURSE_DEATHS_TOUCH = config.getBoolean("Death's Touch",
categories[4], true,
"If set to false this curse will be deactivated.");
CURSE_DOUBLE_DOWN = config.getBoolean("Double Down", categories[4],
true, "If set to false this curse will be deactivated.");
CURSE_INCREDIBLE_DEVOTION = config.getBoolean(
"Incredible Devotion", categories[4], true,
"If set to false this curse will be deactivated.");
DEVOTION_FACTOR = config.getFloat("Devotion Factor", categories[4],
10.0f, 0.0f, Float.MAX_VALUE, "How devoted are mobs?");
CURSE_MONEY_EQUALS_POWER = config.getBoolean("Money = Power",
categories[4], true,
"If set to false this curse will be deactivated.");
CURSE_SCION_OF_HELL = config.getBoolean("Scion of Hell",
categories[4], true,
"If set to false this curse will be deactivated.");
if (config.hasChanged())
config.save();
}
@SubscribeEvent
public void onConfigChanged(
ConfigChangedEvent.OnConfigChangedEvent event) {
if (event.modID.equals(Variables.MODID))
syncConfigs();
}
}
|