public WindowForm CrTileSetEditor() { setX = 0; setY = 0; CurSetMap = new Map(); var setLight = new Vivid.Scene.GraphLight(); setLight.SetPos(120, 120); setLight.SetZ(40); setLight.Diffuse = new OpenTK.Vector3(1, 1, 1); setLight.Specular = new OpenTK.Vector3(1, 1, 1); setLight.Range = 1200; CurSetMap.AddLight(setLight); WindowForm set_Editor = new WindowForm().Set(200, 200, 700, 600, "TileSet") as WindowForm; ToolBarForm tools = new ToolBarForm().Set(0, 0, 700, 25) as ToolBarForm; set_Editor.body.Add(tools); MapViewForm tileSet_View = new MapViewForm(CurSetMap).Set(0, 25, set_Editor.body.W, set_Editor.body.H - 25) as MapViewForm; tView = tileSet_View; //CurSetMap = new Map(1); tView.MouseLeave = () => { ClearHL(tileSet_View); }; tView.MouseMove = (x, y, dx, dy) => { if (tView.Graph != null) { var node = tView.Graph.Pick(x, y); if (node != null) { tView.Map.HL.Clear(); tView.Map.HighlightTile(node.TileX, node.TileY); tileSet_View.UpdateGraph(); // tileSet_View.Graph.X = -32 + tileSet_View.W / 2; //tileSet_View.Graph.Y = -32 + tileSet_View.H / 2; // Console.WriteLine("MX:" + x + " MY:" + y); } else { ClearHL(tileSet_View); } } }; CurSetLayer = CurSetMap.AddLayer(new SpaceEngine.Map.Layer.MapLayer(setWidth, setHeight)); set_Editor.body.Add(tileSet_View); void click_AddFolder() { var req = new RequestFileForm("Select a folder to scan..", ContentPath, true); SUI.Top = req; req.Selected = (path) => { Console.WriteLine("Folder:" + path + ":"); SUI.Top = null; var di = new DirectoryInfo(path); foreach (var file in di.GetFiles()) { switch (file.Extension) { case ".png": case ".bmp": case ".jpg": case ".tga": FAddTile(file.FullName); break; } } ResetMap(tView); }; // var file } tools.AddItem("Clear"); var tile_Add = tools.AddItem("Add Tile"); var tile_AddFolder = tools.AddItem("Add Folder"); tile_AddFolder.Click = click_AddFolder; void click_AddTile() { var addReq = new RequestFileForm("Add Tile to set...", ContentPath); SUI.Top = addReq; addReq.Selected = (path) => { Console.WriteLine("Loading Tile:" + path); FAddTile(path); //CurSetMap.HighlightTile(setX - 1, setY); ResetMap(tileSet_View); //tileSet_View.Graph.X = (CurSetMap.Layers[0].Width * 64)/2; // tileSet_View.Graph.Y = (CurSetMap.Layers[0].Height * 64) / 2; // tileSet_View.Graph.X -= 64; SUI.Top = null; }; } tile_Add.Click = click_AddTile; return(set_Editor); }
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(); }
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 WindowForm CrTileSetEditor() { setX = 0; setY = 0; CurSetMap = new Map(); var setLight = new Vivid.Scene.GraphLight(); setLight.SetPos(120, 120); setLight.SetZ(40); setLight.Diffuse = new OpenTK.Vector3(1, 1, 1); setLight.Specular = new OpenTK.Vector3(1, 1, 1); setLight.Range = 1200; // CurSetMap.AddLight(setLight); WindowForm set_Editor = new WindowForm().Set(200, 200, 700, 600, "TileSet") as WindowForm; ToolBarForm tools = new ToolBarForm().Set(0, 0, 700, 25) as ToolBarForm; set_Editor.Body.Add(tools); MapViewForm tileSet_View = new MapViewForm(CurSetMap).Set(0, 25, set_Editor.Body.W, set_Editor.Body.H - 25) as MapViewForm; tView = tileSet_View; // tileSet_View.LockCam = true; //tileSet_View.LockX = (set_Editor.Body.W / 2)-32; //tileSet_View.LockY = (set_Editor.Body.H / 2)-48; bool move_on = false; //CurSetMap = new Map(1); tView.MouseLeave = () => { ClearHL(tileSet_View); }; tView.MouseUp = (b) => { if (b == 1) { move_on = false; } }; tView.MouseDown = (b) => { if (b == 1) { move_on = true; } if (CurTile != null) { Inspect.SetObj(CurTile); } }; tView.MouseMove = (x, y, dx, dy) => { if (tView.Graph != null) { if (move_on == true) { tView.Graph.Move(-dx, -dy); if (tView.Graph.X > (tileSet_View.W / 2) - 32) { tView.Graph.X = ((tileSet_View.W / 2) - 32) - 6; } ; if (tView.Graph.Y > (tileSet_View.H / 2) - 32) { tView.Graph.Y = ((tileSet_View.H / 2) - 32) - 6; } } AppInfo.RW = tView.MapFrame.IW; AppInfo.RH = tView.MapFrame.IH; var node = tView.Graph.Pick(x, y); AppInfo.RW = AppInfo.W; AppInfo.RH = AppInfo.H; if (node != null) { tView.Map.HL.Clear(); tView.Map.HighlightTile(node.TileX, node.TileY); tileSet_View.UpdateGraph(); //Inspect.SetObj(node.Obj[0]); CurTile = node.Obj[0]; // tileSet_View.Graph.X = -32 + tileSet_View.W / 2; //tileSet_View.Graph.Y = -32 + tileSet_View.H / 2; // Console.WriteLine("MX:" + x + " MY:" + y); } else { ClearHL(tileSet_View); } } }; CurSetLayer = CurSetMap.AddLayer(new Vivid.Map.Layer.MapLayer(setWidth, setHeight, CurSetMap)); set_Editor.Body.Add(tileSet_View); void click_AddFolder() { var req = new RequestFileForm("Select a folder to scan..", GameGlobal.ContentPath, true); SUI.Top = req; req.Selected = (path) => { Console.WriteLine("Folder:" + path + ":"); SUI.Top = null; var di = new DirectoryInfo(path); foreach (var file in di.GetFiles()) { switch (file.Extension) { case ".png": case ".bmp": case ".jpg": case ".tga": if (file.FullName.ToLower().Contains("nrm")) { continue; } FAddTile(file.FullName); break; } } ResetMap(tView); }; // var file } tools.AddItem("Clear"); var tile_Add = tools.AddItem("Add Tile"); var tile_AddFolder = tools.AddItem("Add Folder"); tile_AddFolder.Click = click_AddFolder; void click_AddTile() { var addReq = new RequestFileForm("Add Tile to set...", GameGlobal.ContentPath); SUI.Top = addReq; addReq.Selected = (path) => { Console.WriteLine("Loading Tile:" + path); FAddTile(path); //CurSetMap.HighlightTile(setX - 1, setY); ResetMap(tileSet_View); //tileSet_View.Graph.X = (CurSetMap.Layers[0].Width * 64)/2; // tileSet_View.Graph.Y = (CurSetMap.Layers[0].Height * 64) / 2; // tileSet_View.Graph.X -= 64; SUI.Top = null; }; } tile_Add.Click = click_AddTile; return(set_Editor); }