示例#1
0
        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;
        }