void genLayerStrings() { List <string> l = new List <string>(layers); if (mode == Mode.Adding) { l.Add(" "); } layerList.setStrings(l.ToArray()); }
public UiLayerEditor(ContentManager Content, Overworld o) { this.o = o; this.layers = o.meta.layers; layerList = new UiList(Content, layers.ToArray()); commandList = new UiList(Content, new string[4] { "Add", "Delete", "Set Base", "Exit" }); commandList.addCallback(element => { commandList.finished = false; switch (commandList.selected) { case 0: mode = Mode.Adding; genLayerStrings(); layerList.selected = 0; break; case 1: mode = Mode.Deleting; genLayerStrings(); layerList.selected = 0; break; case 2: mode = Mode.SetBase; genLayerStrings(); layerList.selected = o.meta.baseLayer; break; case 3: finished = true; break; } }); layerList.addCallback(element => { layerList.finished = false; if (layerList.selected != -1) { if (mode == Mode.Adding) { system.pushElement(new UiTextInput("Filename: ").addCallback(input => { UiTextInput textInput = (UiTextInput)input; if (textInput.text != null) { layers.Insert(layerList.selected, textInput.text); if (layerList.selected >= o.meta.baseLayer) { o.meta.baseLayer++; } layerList.setStrings(layers.ToArray()); o.reloadLayers(); } }), Vector2.Zero); } else if (mode == Mode.Deleting) { layers.RemoveAt(layerList.selected); if (layerList.selected <= o.meta.baseLayer) { o.meta.baseLayer--; } layerList.setStrings(layers.ToArray()); o.reloadLayers(); } else if (mode == Mode.SetBase) { o.meta.baseLayer = layerList.selected; o.reloadLayers(); } mode = Mode.Inactive; } }); }