package net.alcuria.umbracraft.editor.modules;
import net.alcuria.umbracraft.definitions.config.ConfigDefinition;
import net.alcuria.umbracraft.editor.Editor;
import net.alcuria.umbracraft.editor.widget.WidgetUtils;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.utils.Array;
import com.kotcrab.vis.ui.widget.VisLabel;
/** The module for the configuration options.
* @author Andrew Keturi */
public class ConfigModule extends Module<ConfigDefinition> {
public ConfigModule() {
super();
load(ConfigDefinition.class);
}
@Override
public String getTitle() {
return "Configuration";
}
@Override
public void populate(Table content) {
content.defaults().pad(20);
content.add(new Table() {
{
populate(this, ConfigDefinition.class, rootDefinition, new PopulateConfig() {
{
cols = 1;
textFieldWidth = 300;
labelWidth = 200;
}
});
}
});
content.add(new Table() {
{
add(new Table() {
{
add(WidgetUtils.tooltip("A list of entities present on ALL maps."));
add(new VisLabel("Global Entities:"));
}
}).row();
WidgetUtils.divider(this, "blue");
WidgetUtils.modifiableList(this, rootDefinition.globalEntities, new Array<String>(Editor.db().entities().keys()));
}
});
content.add(new Table() {
{
add(new Table() {
{
add(WidgetUtils.tooltip("The default party."));
add(new VisLabel("Starting Party:"));
}
}).row();
WidgetUtils.divider(this, "blue");
WidgetUtils.modifiableList(this, rootDefinition.startingParty, new Array<String>(Editor.db().heroes().keys()));
}
});
}
}