package net.alcuria.umbracraft.editor.widget;
import net.alcuria.umbracraft.definitions.npc.ScriptPageDefinition;
import net.alcuria.umbracraft.editor.Drawables;
import net.alcuria.umbracraft.editor.Editor;
import net.alcuria.umbracraft.editor.modules.Module;
import net.alcuria.umbracraft.editor.modules.ScriptListModule;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectMap;
import com.kotcrab.vis.ui.widget.VisLabel;
/** Displays and updates {@link ScriptPageDefinition} objects' preconditions. See
* {@link ScriptListModule} for sample usage.
* @author Andrew Keturi */
public class ScriptPagePropertiesWidget extends Module<ScriptPageDefinition> {
private final Table content = new Table();
private ScriptPageDefinition page;
public Actor getActor() {
return content;
}
@Override
public String getTitle() {
return "Preconditions";
}
@Override
public void populate(Table content) {
}
public void setPage(ScriptPageDefinition page) {
this.page = page;
content.clear();
content.setBackground(Drawables.get("blue"));
content.add(new VisLabel("State Properties")).row();
WidgetUtils.divider(content, "yellow");
PopulateConfig config = new PopulateConfig();
config.cols = 1;
config.suggestions = new ObjectMap<String, Array<String>>() {
{
put("animation", Editor.db().anims().keys().toArray());
put("animationGroup", Editor.db().animGroups().keys());
put("animationCollection", Editor.db().animCollections().keys());
put("precondition", Editor.db().flags().keys());
}
};
populate(content, ScriptPageDefinition.class, page, config);
}
}