Skip to content

Commit 6e954f3

Browse files
committed
update config library, now the GUI supports multiple config classes at once
1 parent 233b532 commit 6e954f3

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

src/main/java/com/falsepattern/lib/config/ConfigurationManager.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,12 @@
2424
import com.falsepattern.lib.internal.impl.config.ConfigurationManagerImpl;
2525
import lombok.AccessLevel;
2626
import lombok.NoArgsConstructor;
27+
import lombok.val;
2728

2829
import cpw.mods.fml.client.config.IConfigElement;
2930

31+
import java.util.ArrayList;
32+
import java.util.Collections;
3033
import java.util.List;
3134

3235
/**
@@ -56,4 +59,26 @@ public static void registerConfig(Class<?> configClass) throws ConfigException {
5659
public static List<IConfigElement> getConfigElements(Class<?> configClass) throws ConfigException {
5760
return ConfigurationManagerImpl.getConfigElements(configClass);
5861
}
62+
63+
/**
64+
* Same as {@link #getConfigElements(Class)}, but for multiple config classes at once.
65+
*
66+
* @param configClasses The classes to process.
67+
*
68+
* @return The configuration elements.
69+
*/
70+
@SuppressWarnings("rawtypes")
71+
@StableAPI(since = "0.10.0")
72+
public static List<IConfigElement> getConfigElementsMulti(Class<?>... configClasses) throws ConfigException {
73+
switch (configClasses.length) {
74+
case 0: return Collections.emptyList();
75+
case 1: return getConfigElements(configClasses[0]);
76+
default:
77+
val result = new ArrayList<IConfigElement>();
78+
for (val configClass: configClasses) {
79+
result.addAll(getConfigElements(configClass));
80+
}
81+
return result;
82+
}
83+
}
5984
}

src/main/java/com/falsepattern/lib/config/SimpleGuiConfig.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,28 @@
2121
package com.falsepattern.lib.config;
2222

2323
import com.falsepattern.lib.StableAPI;
24+
import lombok.val;
25+
2426
import cpw.mods.fml.client.config.GuiConfig;
27+
import cpw.mods.fml.client.config.IConfigElement;
2528
import cpw.mods.fml.relauncher.Side;
2629
import cpw.mods.fml.relauncher.SideOnly;
2730
import net.minecraft.client.gui.GuiScreen;
2831
import net.minecraft.client.resources.I18n;
2932

33+
import java.util.ArrayList;
34+
import java.util.Collections;
35+
import java.util.List;
36+
3037
@SideOnly(Side.CLIENT)
3138
@StableAPI(since = "0.9.0")
3239
public class SimpleGuiConfig extends GuiConfig {
3340
public SimpleGuiConfig(GuiScreen parent, Class<?> configClass, String modID, String modName) throws ConfigException {
34-
super(parent, ConfigurationManager.getConfigElements(configClass), modID, false, false, modName + " Configuration", I18n.format("falsepatternlib.gui.config.description"));
41+
this(parent, new Class<?>[]{configClass}, modID, modName);
42+
}
43+
44+
@StableAPI(since = "0.10.0")
45+
public SimpleGuiConfig(GuiScreen parent, Class<?>[] configClasses, String modID, String modName) throws ConfigException {
46+
super(parent, ConfigurationManager.getConfigElementsMulti(configClasses), modID, false, false, modName + " Configuration", I18n.format("falsepatternlib.gui.config.description"));
3547
}
3648
}

0 commit comments

Comments
 (0)