示例#1
0
 private void polygonAdd_Click(object sender, EventArgs e)
 {
     DAT.COLL_DATA.AreaTableEntry ate = new DAT.COLL_DATA.AreaTableEntry();
     ate.nbLinks = 1;
     DAT.COLL_DATA coll = (DAT.COLL_DATA)currentEntry;
     coll.areaTable.Add(ate);
     meleePolygons.Nodes.Add(new TreeNode($"Polygon {meleePolygons.Nodes.Count}")
     {
         Tag = ate
     });
 }
示例#2
0
        private void polygonSubtract_Click(object sender, EventArgs e)
        {
            DAT.COLL_DATA coll = (DAT.COLL_DATA)currentEntry;
            DAT.COLL_DATA.AreaTableEntry link = (DAT.COLL_DATA.AreaTableEntry)meleePolygons.SelectedNode.Tag;
            coll.areaTable.Remove(link);
            int index = meleePolygons.SelectedNode.Index;

            meleePolygons.Nodes.Remove(meleePolygons.SelectedNode);
            for (int i = index; i < meleePolygons.Nodes.Count; i++)
            {
                meleePolygons.Nodes[i].Text = $"Polygon {i}";
            }
        }
示例#3
0
 private void selectItem(object sender, TreeViewEventArgs e)
 {
     if (sender == meleeVerts)
     {
         currentMeleeVert = (Vector2)meleeVerts.SelectedNode.Tag;
         meleeX.Value     = (Decimal)currentMeleeVert.X;
         meleeY.Value     = (Decimal)currentMeleeVert.Y;
     }
     else if (sender == meleeLinks)
     {
         currentLink     = (DAT.COLL_DATA.Link)meleeLinks.SelectedNode.Tag;
         vertStart.Value = currentLink.vertexIndices[0];
         vertEnd.Value   = currentLink.vertexIndices[1];
         if (currentLink.connectors[0] != ushort.MaxValue)
         {
             linkBefore.Value = currentLink.connectors[0];
         }
         else
         {
             linkBefore.Value = -1;
         }
         if (currentLink.connectors[1] != ushort.MaxValue)
         {
             linkAfter.Value = currentLink.connectors[1];
         }
         else
         {
             linkAfter.Value = -1;
         }
         leftWall.Checked         = ((currentLink.collisionAngle & 4) != 0);
         rightWall.Checked        = ((currentLink.collisionAngle & 8) != 0);
         floor.Checked            = ((currentLink.collisionAngle & 1) != 0);
         ceiling.Checked          = ((currentLink.collisionAngle & 2) != 0);
         ledge.Checked            = ((currentLink.flags & 2) != 0);
         meleeDropThrough.Checked = ((currentLink.flags & 1) != 0);
         comboBox2.Text           = Enum.GetName(typeof(CollisionMatType), currentLink.material);
     }
     else if (sender == meleePolygons)
     {
         currentAreaTableEntry = (DAT.COLL_DATA.AreaTableEntry)meleePolygons.SelectedNode.Tag;
         polyStart.Value       = currentAreaTableEntry.idxLowestSpot;
         polyEnd.Value         = currentAreaTableEntry.idxLowestSpot + currentAreaTableEntry.nbLinks - 1;
         Console.WriteLine(meleePolygons.SelectedNode.Text + $" - ({currentAreaTableEntry.xBotLeftCorner},{currentAreaTableEntry.yBotLeftCorner}),({currentAreaTableEntry.xTopRightCorner},{currentAreaTableEntry.yTopRightCorner})");
     }
 }