mirror of
https://github.com/FalsePattern/FalsePatternLib.git
synced 2026-11-11 21:57:35 +00:00
update config library, now the GUI supports multiple config classes at once
This commit is contained in:
2 files changed
+38
-1
No files matched your search
@@ -24,9 +24,12 @@ import com.falsepattern.lib.StableAPI;
|
||||
import com.falsepattern.lib.internal.impl.config.ConfigurationManagerImpl;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.val;
|
||||
|
||||
import cpw.mods.fml.client.config.IConfigElement;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -56,4 +59,26 @@ public class ConfigurationManager {
|
||||
public static List<IConfigElement> getConfigElements(Class<?> configClass) throws ConfigException {
|
||||
return ConfigurationManagerImpl.getConfigElements(configClass);
|
||||
}
|
||||
|
||||
/**
|
||||
* Same as {@link #getConfigElements(Class)}, but for multiple config classes at once.
|
||||
*
|
||||
* @param configClasses The classes to process.
|
||||
*
|
||||
* @return The configuration elements.
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
@StableAPI(since = "0.10.0")
|
||||
public static List<IConfigElement> getConfigElementsMulti(Class<?>... configClasses) throws ConfigException {
|
||||
switch (configClasses.length) {
|
||||
case 0: return Collections.emptyList();
|
||||
case 1: return getConfigElements(configClasses[0]);
|
||||
default:
|
||||
val result = new ArrayList<IConfigElement>();
|
||||
for (val configClass: configClasses) {
|
||||
result.addAll(getConfigElements(configClass));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -21,16 +21,28 @@
|
||||
package com.falsepattern.lib.config;
|
||||
|
||||
import com.falsepattern.lib.StableAPI;
|
||||
import lombok.val;
|
||||
|
||||
import cpw.mods.fml.client.config.GuiConfig;
|
||||
import cpw.mods.fml.client.config.IConfigElement;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@StableAPI(since = "0.9.0")
|
||||
public class SimpleGuiConfig extends GuiConfig {
|
||||
public SimpleGuiConfig(GuiScreen parent, Class<?> configClass, String modID, String modName) throws ConfigException {
|
||||
super(parent, ConfigurationManager.getConfigElements(configClass), modID, false, false, modName + " Configuration", I18n.format("falsepatternlib.gui.config.description"));
|
||||
this(parent, new Class<?>[]{configClass}, modID, modName);
|
||||
}
|
||||
|
||||
@StableAPI(since = "0.10.0")
|
||||
public SimpleGuiConfig(GuiScreen parent, Class<?>[] configClasses, String modID, String modName) throws ConfigException {
|
||||
super(parent, ConfigurationManager.getConfigElementsMulti(configClasses), modID, false, false, modName + " Configuration", I18n.format("falsepatternlib.gui.config.description"));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user