public override void SaveAll() { FMGBank.SaveFMGs(); }
private void EditorGUI(bool doFocus) { if (!FMGBank.IsLoaded) { if (FMGBank.IsLoading) { ImGui.Text("Loading..."); } return; } ImGui.Columns(3); ImGui.PushStyleVar(ImGuiStyleVar.FramePadding, new Vector2(8.0f, 8.0f)); ImGui.BeginChild("categories"); foreach (var cat in _displayCategories) { if (ImGui.Selectable($@" {cat.ToString()}", cat == _activeCategory)) { _activeCategory = cat; _cachedEntries = FMGBank.GetEntriesOfCategoryAndType(cat, FMGBank.ItemType.Title); } if (doFocus && cat == _activeCategory) { ImGui.SetScrollHereY(); } } ImGui.EndChild(); ImGui.PopStyleVar(); ImGui.NextColumn(); ImGui.BeginChild("rows"); if (_activeCategory == FMGBank.ItemCategory.None) { ImGui.Text("Select a category to see items"); } else { foreach (var r in _cachedEntries) { var text = (r.Text == null) ? "%null%" : r.Text; if (ImGui.Selectable($@"{r.ID} {text}", _activeEntry == r)) { _activeEntry = r; FMGBank.LookupItemID(r.ID, _activeCategory, out _cachedTitle, out _cachedSummary, out _cachedDescription); } if (doFocus && _activeEntry == r) { ImGui.SetScrollHereY(); } } } ImGui.EndChild(); ImGui.NextColumn(); ImGui.BeginChild("text"); if (_activeEntry == null) { ImGui.Text("Select an item to edit text"); } else { //_propEditor.PropEditorParamRow(_activeRow); ImGui.Columns(2); ImGui.Text("ID"); ImGui.NextColumn(); int id = _activeEntry.ID; ImGui.InputInt("##id", ref id); ImGui.NextColumn(); _propEditor.PropEditorFMGBegin(); if (_cachedTitle != null) { _propEditor.PropEditorFMG(_cachedTitle, "Title", -1.0f); } if (_cachedSummary != null) { _propEditor.PropEditorFMG(_cachedSummary, "Summary", 80.0f); } if (_cachedDescription != null) { _propEditor.PropEditorFMG(_cachedDescription, "Description", 160.0f); } _propEditor.PropEditorFMGEnd(); } ImGui.EndChild(); }
public void OnGUI(string[] initcmd) { if (FMGBank.AssetLocator == null) { return; } // Docking setup //var vp = ImGui.GetMainViewport(); var wins = ImGui.GetWindowSize(); var winp = ImGui.GetWindowPos(); winp.Y += 20.0f; wins.Y -= 20.0f; ImGui.SetNextWindowPos(winp); ImGui.SetNextWindowSize(wins); ImGuiWindowFlags flags = ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoMove; flags |= ImGuiWindowFlags.MenuBar | ImGuiWindowFlags.NoDocking; flags |= ImGuiWindowFlags.NoBringToFrontOnFocus | ImGuiWindowFlags.NoNavFocus; flags |= ImGuiWindowFlags.NoBackground; //ImGui.Begin("DockSpace_MapEdit", flags); //var dsid = ImGui.GetID("DockSpace_ParamEdit"); //ImGui.DockSpace(dsid, new Vector2(0, 0)); // Keyboard shortcuts if (EditorActionManager.CanUndo() && InputTracker.GetControlShortcut(Key.Z)) { EditorActionManager.UndoAction(); } if (EditorActionManager.CanRedo() && InputTracker.GetControlShortcut(Key.Y)) { EditorActionManager.RedoAction(); } bool doFocus = false; // Parse select commands if (initcmd != null && initcmd[0] == "select") { if (initcmd.Length > 1) { doFocus = true; foreach (var cat in _displayCategories) { if (cat.ToString() == initcmd[1]) { _activeCategory = cat; _cachedEntries = FMGBank.GetEntriesOfCategoryAndType(cat, FMGBank.ItemType.Title); break; } } if (initcmd.Length > 2) { int id; var parsed = int.TryParse(initcmd[2], out id); if (parsed) { var r = _cachedEntries.FirstOrDefault(r => r.ID == id); if (r != null) { _activeEntry = r; FMGBank.LookupItemID(r.ID, _activeCategory, out _cachedTitle, out _cachedSummary, out _cachedDescription); } } } } } if (FMGBank.AssetLocator.Type == GameType.DarkSoulsIISOTFS) { EditorGUIDS2(doFocus); } else { EditorGUI(doFocus); } }