UltimateZoneBuilder/Source/Core/Map/GroupInfo.cs
MaxED 3a35b7603a Fixed, Map Analysis mode, "Check stuck things" check: rewritten parts of the flags checking logic to allow more accurate flag checks.
Fixed, Map Analysis mode: fixed a crash when trying to dissolve an invalid sector when one of it's linedefs referenced it on the both sides.
Fixed, Sectors mode: fixed incorrect undo description when deleting sectors.
Internal: joined declaration and assignment of some more variables.
2015-12-28 15:01:53 +00:00

42 lines
1.3 KiB
C#

using System.Collections.Generic;
namespace CodeImp.DoomBuilder.Map
{
public class GroupInfo
{
private readonly int numSectors;
private readonly int numLines;
private readonly int numVerts;
private readonly int numThings;
private readonly int index;
private readonly bool empty;
public bool Empty { get { return empty; } }
public int Index { get { return index; } }
public GroupInfo(int index, int numSectors, int numLines, int numVerts, int numThings)
{
this.index = index;
this.numSectors = numSectors;
this.numLines = numLines;
this.numVerts = numVerts;
this.numThings = numThings;
empty = (numSectors == 0 && numLines == 0 && numVerts == 0 && numThings == 0);
}
public override string ToString()
{
if(empty) return index + ": Empty";
List<string> result = new List<string>();
if(numSectors > 0) result.Add(numSectors + (numSectors > 1 ? " sectors" : " sector"));
if(numLines > 0) result.Add(numLines + (numLines > 1 ? " lines" : " line"));
if(numVerts > 0) result.Add(numVerts + (numVerts > 1 ? " vertices" : " vertex"));
if(numThings > 0) result.Add(numThings + (numThings > 1 ? " things" : " thing"));
return index + ": " + string.Join(", ", result.ToArray());
}
}
}