UltimateZoneBuilder/Source/Core/Map/GroupInfo.cs
MaxED 7cce80f030 Selection groups are now stored in the map's .dbs file.
Rewritten Add to/Select/Clear group Edit menu handling.
2014-07-16 09:45:04 +00:00

40 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());
}
}
}