public LVDList() { InitializeComponent(); treeView1.Nodes.Add(collisionNode); treeView1.Nodes.Add(spawnNode); treeView1.Nodes.Add(respawnNode); treeView1.Nodes.Add(camNode); treeView1.Nodes.Add(deathNode); treeView1.Nodes.Add(itemNode); treeView1.Nodes.Add(shapeNode); treeView1.Nodes.Add(pointNode); treeView1.Nodes.Add(hurtNode); treeView1.Nodes.Add(enemyNode); //--------------------------------------------- { collisionNode.ContextMenu = new ContextMenu(); MenuItem AddCollision = new MenuItem("Add New Collision"); AddCollision.Click += delegate { TargetLVD.collisions.Add(new Collision() { name = "COL_00_NewCollision", subname = "00_NewCollision" }); fillList(); }; collisionNode.ContextMenu.MenuItems.Add(AddCollision); MenuItem GenCliffs = new MenuItem("Regenerate Cliffs"); GenCliffs.Click += delegate { foreach (Collision c in TargetLVD.collisions) { LVD.GenerateCliffs(c); } fillList(); }; collisionNode.ContextMenu.MenuItems.Add(GenCliffs); } //--------------------------------------------- { spawnNode.ContextMenu = new ContextMenu(); MenuItem Add = new MenuItem("Add New Spawn"); Add.Click += delegate { string newNum = (TargetLVD.spawns.Count + 1).ToString().PadLeft(2, '0'); TargetLVD.spawns.Add(new Spawn() { name = "START_00_P" + newNum, subname = "00_P" + newNum }); fillList(); }; spawnNode.ContextMenu.MenuItems.Add(Add); } //--------------------------------------------- { TreeNode node = respawnNode; node.ContextMenu = new ContextMenu(); MenuItem Add = new MenuItem("Add New Respawn"); Add.Click += delegate { string newNum = (TargetLVD.respawns.Count + 1).ToString().PadLeft(2, '0'); TargetLVD.respawns.Add(new Spawn() { name = "RESTART_00_P" + newNum, subname = "00_P" + newNum }); fillList(); }; node.ContextMenu.MenuItems.Add(Add); } //--------------------------------------------- { TreeNode node = camNode; node.ContextMenu = new ContextMenu(); MenuItem Add = new MenuItem("Add New Camera Bounds"); Add.Click += delegate { TargetLVD.cameraBounds.Add(new Bounds() { name = "CAMERA_00", subname = "00" }); fillList(); }; node.ContextMenu.MenuItems.Add(Add); } //--------------------------------------------- { TreeNode node = deathNode; node.ContextMenu = new ContextMenu(); MenuItem Add = new MenuItem("Add New Blastzones"); Add.Click += delegate { TargetLVD.blastzones.Add(new Bounds() { name = "DEATH_00", subname = "00" }); fillList(); }; node.ContextMenu.MenuItems.Add(Add); } //--------------------------------------------- { TreeNode node = itemNode; node.ContextMenu = new ContextMenu(); MenuItem Add = new MenuItem("Add New Item Spawner"); Add.Click += delegate { TargetLVD.itemSpawns.Add(new ItemSpawner() { name = "ItemPopup_NEW", subname = "00_Item" }); fillList(); }; node.ContextMenu.MenuItems.Add(Add); } //--------------------------------------------- { TreeNode node = shapeNode; node.ContextMenu = new ContextMenu(); MenuItem AddPoint = new MenuItem("Add New General Shape (Point)"); AddPoint.Click += delegate { TargetLVD.generalShapes.Add(new GeneralShape() { name = "GeneralPoint_NEW", subname = "00_NEW", type = 1 }); fillList(); }; node.ContextMenu.MenuItems.Add(AddPoint); MenuItem AddRect = new MenuItem("Add New General Shape (Rectangle)"); AddRect.Click += delegate { TargetLVD.generalShapes.Add(new GeneralShape() { name = "GeneralRect_NEW", subname = "00_NEW", type = 3 }); fillList(); }; node.ContextMenu.MenuItems.Add(AddRect); MenuItem AddPath = new MenuItem("Add New General Shape (Path)"); AddPath.Click += delegate { TargetLVD.generalShapes.Add(new GeneralShape() { name = "GeneralPath_NEW", subname = "00_NEW", type = 4 }); fillList(); }; node.ContextMenu.MenuItems.Add(AddPath); } //--------------------------------------------- { TreeNode node = pointNode; node.ContextMenu = new ContextMenu(); MenuItem Add = new MenuItem("Add New General Point"); Add.Click += delegate { TargetLVD.generalPoints.Add(new GeneralPoint() { name = "GeneralPoint3D_NEW", subname = "00_NEW" }); fillList(); }; node.ContextMenu.MenuItems.Add(Add); } //--------------------------------------------- { TreeNode node = hurtNode; node.ContextMenu = new ContextMenu(); MenuItem AddSphere = new MenuItem("Add New Damage Sphere"); AddSphere.Click += delegate { TargetLVD.damageShapes.Add(new DamageShape() { name = "DamageeSphere_00_NEW", subname = "00_NEW", type = 2 }); fillList(); }; node.ContextMenu.MenuItems.Add(AddSphere); MenuItem AddCapsule = new MenuItem("Add New Damage Capsule"); AddCapsule.Click += delegate { TargetLVD.damageShapes.Add(new DamageShape() { name = "DamageeCapsule_00_NEW", subname = "00_NEW", type = 3 }); fillList(); }; node.ContextMenu.MenuItems.Add(AddCapsule); } //--------------------------------------------- { TreeNode node = enemyNode; node.ContextMenu = new ContextMenu(); MenuItem Add = new MenuItem("Add New Enemy Spawner"); Add.Click += delegate { TargetLVD.enemySpawns.Add(new EnemyGenerator() { name = "EnemyGenerator_NEW", subname = "00_NEW" }); fillList(); }; node.ContextMenu.MenuItems.Add(Add); } ElementCM = new ContextMenu(); MenuItem Delete = new MenuItem("Delete Entry"); Delete.Click += delegate { deleteSelected(); }; ElementCM.MenuItems.Add(Delete); CollisionCM = new ContextMenu(); CollisionCM.MenuItems.Add(Delete); MenuItem GenPassthru = new MenuItem("Regenerate Passthrough Angles"); GenPassthru.Click += delegate { if (treeView1.SelectedNode != null && treeView1.SelectedNode.Tag is Collision) { LVD.GeneratePassthroughs((Collision)treeView1.SelectedNode.Tag, true); } }; CollisionCM.MenuItems.Add(GenPassthru); MenuItem FlipNormals = new MenuItem("Flip Passthrough Angles"); FlipNormals.Click += delegate { if (treeView1.SelectedNode != null && treeView1.SelectedNode.Tag is Collision) { LVD.FlipPassthroughs((Collision)treeView1.SelectedNode.Tag); } }; CollisionCM.MenuItems.Add(FlipNormals); treeView1.NodeMouseClick += (sender, args) => treeView1.SelectedNode = args.Node; }