/// <summary> /// Populates the browser with references that meet the criteria. /// </summary> /// <param name="context">The context for the system being accessed.</param> /// <param name="browser">The browser to populate.</param> protected override void PopulateBrowser(ISystemContext context, NodeBrowser browser) { base.PopulateBrowser(context, browser); // check if the parent segments need to be returned. if (browser.IsRequired(ReferenceTypeIds.Organizes, true)) { if (!(context.SystemHandle is UnderlyingSystem system)) { return; } // add reference for parent segment. var segment = system.FindParentForSegment(SegmentPath); if (segment != null) { browser.Add(ReferenceTypeIds.Organizes, true, ModelUtils.ConstructIdForSegment(segment.Id, NodeId.NamespaceIndex)); } } }
/// <summary> /// Populates the browser with references that meet the criteria. /// </summary> /// <param name="context">The context for the system being accessed.</param> /// <param name="browser">The browser to populate.</param> protected override void PopulateBrowser(ISystemContext context, NodeBrowser browser) { base.PopulateBrowser(context, browser); // check if the parent segments need to be returned. if (browser.IsRequired(ReferenceTypeIds.Organizes, true)) { if (!(context.SystemHandle is UnderlyingSystem system)) { return; } // add reference for each segment. var segments = system.FindSegmentsForBlock(_blockId); for (var ii = 0; ii < segments.Count; ii++) { browser.Add(ReferenceTypeIds.Organizes, true, ModelUtils.ConstructIdForSegment(segments[ii].Id, NodeId.NamespaceIndex)); } } }
/// <summary> /// Used to receive notifications when a node is browsed. /// </summary> public void OnPopulateBrowser( ISystemContext context, NodeState node, NodeBrowser browser) { ParsedNodeId nodeId = ParsedNodeId.Parse(node.NodeId); DirectoryInfo info = new DirectoryInfo(nodeId.RootId); if (!info.Exists) { return; } if (browser.IsRequired(ReferenceTypeIds.Organizes, false)) { foreach (DirectoryInfo child in info.GetDirectories()) { ParsedNodeId childId = new ParsedNodeId(); childId.RootType = 0; childId.RootId = child.FullName; childId.NamespaceIndex = NamespaceIndex; browser.Add(new NodeStateReference(ReferenceTypeIds.Organizes, false, childId.Construct())); } } if (browser.IsRequired(ReferenceTypeIds.Organizes, true)) { ParsedNodeId parentId = new ParsedNodeId(); parentId.RootType = 0; parentId.RootId = info.Parent.FullName; parentId.NamespaceIndex = NamespaceIndex; browser.Add(new NodeStateReference(ReferenceTypeIds.Organizes, true, parentId.Construct())); } }
public override void InitState() { GameGlobal.ContentPath = ContentPath; base.InitState(); var split1 = new HorizontalSplitterForm().Set(0, 0, AppInfo.W, AppInfo.H) as HorizontalSplitterForm; split1.SetSplit(AppInfo.H - AppInfo.H / 4); var tileBrowse = new TileBrowser().Set(0, 0, split1.BotDock.W, split1.BotDock.H) as TileBrowser;; split1.SetBottom(tileBrowse); var split2 = new HorizontalSplitterForm().Set(0, 0, split1.TopDock.W, split1.TopDock.H) as HorizontalSplitterForm; var menu = new MenuForm().Set(0, 0, AppInfo.W, 20) as MenuForm; UI.Menu = menu; var menu_map = menu.AddItem("Map"); menu_map.Menu.AddItem("Load Map"); menu_map.Menu.AddItem("Save Map"); menu_map.Menu.AddItem("New Map"); menu_map.Menu.AddItem("Exit", (b) => { Environment.Exit(1); }); var menu_tiles = menu.AddItem("Tiles"); var tiles_newSet = menu_tiles.Menu.AddItem("New Set"); var tiles_addSet = menu_tiles.Menu.AddItem("Add set"); tiles_newSet.Click = (b) => { tileBrowse.newSet(); }; tiles_addSet.Click = (b) => { var reqs = new RequestFileForm("Load tileset .ts..", ContentPath); SUI.Top = reqs; reqs.Selected = (path) => { var ts = new TileSet(path); ts.Load(path); SUI.Top = null; tileBrowse.AddTileSet(ts); }; }; menu.AddItem("Edit"); //menu.AddItem("") split1.SetTop(split2); UIForm topForm = new UIForm().Set(0, 0, split2.TopDock.W, split2.TopDock.H); //topForm.Add(menu); //split2.SetTop(topForm); //split1.SetTop(split2); split2.SetSplit(50); var split3 = new VerticalSplitterForm().Set(0, 0, split2.BotDock.W, split2.BotDock.H) as VerticalSplitterForm; var toolRoot = new UIForm().Set(0, 0, split2.TopDock.W, split2.TopDock.H); split2.SetTop(toolRoot); split2.SetBottom(split3); split3.SetSplit(150); var nodeTree = new NodeGraphView().Set(0, 0, split3.LeftDock.W, split3.LeftDock.H, "Scene Nodes") as NodeGraphView; split3.SetLeft(nodeTree); var nodeBrowse = new NodeBrowser().Set(0, 0, split3.LeftDock.W, split3.LeftDock.H) as NodeBrowser; //split3.SetLeft(nodeBrowse); var mapEdit = new MapEditForm().Set(0, 0, split3.RightDock.W, split3.RightDock.H) as MapEditForm; nodeTree.SetMap(mapEdit.CurMap); split3.SetRight(mapEdit); SUI = new UI(); SUI.Root = split1; var toolBar = new ToolBarForm().Set(0, 0, toolRoot.W, 25) as ToolBarForm; var tb_paste = toolBar.AddItem("Paste"); var tb_rect = toolBar.AddItem("Rect"); var tb_oval = toolBar.AddItem("Oval"); var tb_fill = toolBar.AddItem("Fill"); var tb_smartfill = toolBar.AddItem("Smart-Fill"); tb_paste.Click = () => { mapEdit.Mode = EditMode.Paste; }; tb_fill.Click = () => { mapEdit.Mode = EditMode.Fill; }; toolRoot.Add(toolBar); var mapMode = new Texture2D("content/edit/mapmode.png", LoadMethod.Single, true); var tileMode = new Texture2D("content/edit/tiles.png", LoadMethod.Single, true); SUI.Dock.AddIcon(mapMode, 64); var mode_Tiles = SUI.Dock.AddIcon(tileMode, 64); mode_Tiles.Click = () => { UI.Menu = null; Vivid.App.VividApp.PushState(new MapViewer.States.TileSetEditor()); }; }
public override void InitState() { // GameGlobal.ContentPath = ContentPath; base.InitState(); var split1 = new HorizontalSplitterForm().Set(0, 0, AppInfo.W, AppInfo.H) as HorizontalSplitterForm; split1.SetSplit(AppInfo.H - AppInfo.H / 4); tileBrowse = new TileBrowser().Set(0, 0, split1.BotDock.W, split1.BotDock.H) as TileBrowser;; split1.SetBottom(tileBrowse); var split2 = new HorizontalSplitterForm().Set(0, 0, split1.TopDock.W, split1.TopDock.H) as HorizontalSplitterForm; var menu = new MenuForm().Set(0, 0, AppInfo.W, 20) as MenuForm; UI.Menu = menu; var menu_map = menu.AddItem("Map"); var loadm = menu_map.Menu.AddItem("Load Map"); loadm.Click = (b) => { var req = new RequestFileForm("Select map to load..", GameGlobal.ProjectPath); SUI.Top = req; req.Selected = (path) => { mapEdit.LoadMap(path); SUI.Top = null; }; }; var savem = menu_map.Menu.AddItem("Save Map"); savem.Click = (b) => { var req = new RequestFileForm("Select a name to save..", GameGlobal.ProjectPath); SUI.Top = req; req.Selected = (path) => { mapEdit.SaveMap(path); SUI.Top = null; }; }; var newm = menu_map.Menu.AddItem("New Map"); newm.Click = (b) => { mapEdit.NewMap(); nodeTree.SetMap(GameGlobal.EditMap); SaveEditState(); }; var exitm = menu_map.Menu.AddItem("Exit"); exitm.Click = (b) => { SaveEditState(); Environment.Exit(0); }; //SaveEditState() //Environment.Exit(1) var menu_tiles = menu.AddItem("Tiles"); var tiles_newSet = menu_tiles.Menu.AddItem("New Set"); var tiles_addSet = menu_tiles.Menu.AddItem("Add set"); tiles_newSet.Click = (b) => { tileBrowse.newSet(); SaveEditState(); }; tiles_addSet.Click = (b) => { var reqs = new RequestFileForm("Load tileset .ts..", GameGlobal.ContentPath); SUI.Top = reqs; reqs.Selected = (path) => { var ts = new TileSet(path); ts.Load(path); SUI.Top = null; tileBrowse.AddTileSet(ts); SaveEditState(); }; }; menu.AddItem("Edit"); //menu.AddItem("") split1.SetTop(split2); UIForm topForm = new UIForm().Set(0, 0, split2.TopDock.W, split2.TopDock.H); //topForm.Add(menu); //split2.SetTop(topForm); //split1.SetTop(split2); split2.SetSplit(50); var split3 = new VerticalSplitterForm().Set(0, 0, split2.BotDock.W, split2.BotDock.H) as VerticalSplitterForm; var toolRoot = new UIForm().Set(0, 0, split2.TopDock.W, split2.TopDock.H); split2.SetTop(toolRoot); split2.SetBottom(split3); split3.SetSplit(150); nodeTree = new NodeGraphView().Set(0, 0, split3.LeftDock.W, split3.LeftDock.H, "Scene Nodes") as NodeGraphView; split3.SetLeft(nodeTree); var nodeBrowse = new NodeBrowser().Set(0, 0, split3.LeftDock.W, split3.LeftDock.H) as NodeBrowser; //split3.SetLeft(nodeBrowse); var mapSplit = new VerticalSplitterForm().Set(0, 0, split3.RightDock.W, split3.RightDock.H) as VerticalSplitterForm; var classIn = new InspectorForm().Set(0, 0, mapSplit.RightDock.W, mapSplit.RightDock.H) as InspectorForm; mapEdit = new MapEditForm().Set(0, 0, split3.RightDock.W, split3.RightDock.H) as MapEditForm; mapEdit.Selected = (node) => { classIn.SetObj(node); // if (node == null) return; //Console.WriteLine("Selected:" + node.Name); }; nodeTree.SetMap(GameGlobal.EditMap); split3.SetRight(mapSplit); mapSplit.SetLeft(mapEdit); mapSplit.SetRight(classIn); mapSplit.SetSplit(split3.RightDock.W - 250); SUI = new UI(); SUI.Root = split1; var toolBar = new ToolBarForm().Set(0, 0, toolRoot.W, 25) as ToolBarForm; var tb_pick = toolBar.AddItem("Pick"); var tb_paste = toolBar.AddItem("Paste"); var tb_rect = toolBar.AddItem("Rect"); var tb_oval = toolBar.AddItem("Oval"); var tb_fill = toolBar.AddItem("Fill"); var tb_smartfill = toolBar.AddItem("Smart-Fill"); tb_pick.Click = () => { mapEdit.Mode = EditMode.Pick; mapEdit.Rebuild(); }; tb_paste.Click = () => { mapEdit.Mode = EditMode.Paste; mapEdit.Rebuild(); }; tb_fill.Click = () => { mapEdit.Mode = EditMode.Fill; mapEdit.Rebuild(); }; toolRoot.Add(toolBar); var mapMode = new Texture2D("content/edit/mapmode.png", LoadMethod.Single, true); var tileMode = new Texture2D("content/edit/tiles.png", LoadMethod.Single, true); SUI.Dock.AddIcon(mapMode, 64); var mode_Tiles = SUI.Dock.AddIcon(tileMode, 64); mode_Tiles.Click = () => { UI.Menu = null; Vivid.App.VividApp.PushState(new MapEditor.States.TileSetEditor()); }; LoadEditState(); }