mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-12-11 21:01:22 +00:00
94 lines
2.2 KiB
C#
Executable file
94 lines
2.2 KiB
C#
Executable file
#region ================== Namespaces
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using CodeImp.DoomBuilder.Map;
|
|
using CodeImp.DoomBuilder.Rendering;
|
|
|
|
#endregion
|
|
|
|
namespace CodeImp.DoomBuilder.BuilderModes
|
|
{
|
|
public class ResultInvalidPolyobjectLines : ErrorResult
|
|
{
|
|
#region ================== Variables
|
|
|
|
private readonly List<Linedef> lines;
|
|
private readonly string linesinfo;
|
|
|
|
#endregion
|
|
|
|
#region ================== Properties
|
|
|
|
public override int Buttons { get { return 0; } }
|
|
|
|
#endregion
|
|
|
|
#region ================== Constructor / Destructor
|
|
|
|
public ResultInvalidPolyobjectLines(List<Linedef> lines, string details)
|
|
{
|
|
// Initialize
|
|
this.lines = lines;
|
|
this.hidden = true;
|
|
foreach(Linedef l in lines)
|
|
{
|
|
this.viewobjects.Add(l);
|
|
this.hidden &= l.IgnoredErrorChecks.Contains(this.GetType());
|
|
}
|
|
|
|
if(lines.Count == 1)
|
|
{
|
|
linesinfo = "Incorrect Polyobject setup for linedef " + lines[0].Index;
|
|
}
|
|
else
|
|
{
|
|
linesinfo = "Incorrect Polyobject setup for linedefs " + lines[0].Index;
|
|
for(int i = 1; i < lines.Count - 1; i++) linesinfo += ", " + lines[i].Index;
|
|
linesinfo += " and " + lines[lines.Count - 1].Index;
|
|
}
|
|
|
|
this.description = linesinfo + ": " + details;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ================== Methods
|
|
|
|
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
|
internal override void Hide(bool hide)
|
|
{
|
|
hidden = hide;
|
|
Type t = this.GetType();
|
|
if(hide)
|
|
{
|
|
foreach(Linedef l in lines)
|
|
l.IgnoredErrorChecks.Add(t);
|
|
}
|
|
else
|
|
{
|
|
foreach(Linedef l in lines)
|
|
if(l.IgnoredErrorChecks.Contains(t)) l.IgnoredErrorChecks.Remove(t);
|
|
}
|
|
}
|
|
|
|
// This must return the string that is displayed in the listbox
|
|
public override string ToString()
|
|
{
|
|
return linesinfo;
|
|
}
|
|
|
|
// Rendering
|
|
public override void PlotSelection(IRenderer2D renderer)
|
|
{
|
|
foreach(Linedef l in lines)
|
|
{
|
|
renderer.PlotLinedef(l, General.Colors.Selection);
|
|
renderer.PlotVertex(l.Start, ColorCollection.VERTICES);
|
|
renderer.PlotVertex(l.End, ColorCollection.VERTICES);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|