mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-30 07:31:36 +00:00
89 lines
2.1 KiB
C#
Executable file
89 lines
2.1 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 ResultInvalidPolyobjectThings : ErrorResult
|
|
{
|
|
#region ================== Variables
|
|
|
|
private readonly List<Thing> things;
|
|
private readonly string thingsinfo;
|
|
|
|
#endregion
|
|
|
|
#region ================== Properties
|
|
|
|
public override int Buttons { get { return 0; } }
|
|
|
|
#endregion
|
|
|
|
#region ================== Constructor / Destructor
|
|
|
|
public ResultInvalidPolyobjectThings(List<Thing> things, string details)
|
|
{
|
|
// Initialize
|
|
this.things = things;
|
|
this.hidden = true;
|
|
foreach(Thing t in things)
|
|
{
|
|
this.viewobjects.Add(t);
|
|
this.hidden &= t.IgnoredErrorChecks.Contains(this.GetType());
|
|
}
|
|
|
|
if(things.Count == 1)
|
|
{
|
|
thingsinfo = "Incorrect Polyobject setup for thing " + things[0].Index;
|
|
}
|
|
else
|
|
{
|
|
thingsinfo = "Incorrect Polyobject setup for things " + things[0].Index;
|
|
for(int i = 1; i < things.Count - 1; i++) thingsinfo += ", " + things[i].Index;
|
|
thingsinfo += " and " + things[things.Count - 1].Index;
|
|
}
|
|
|
|
this.description = thingsinfo + ": " + 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(Thing thing in things) thing.IgnoredErrorChecks.Add(t);
|
|
}
|
|
else
|
|
{
|
|
foreach(Thing thing in things)
|
|
if(thing.IgnoredErrorChecks.Contains(t)) thing.IgnoredErrorChecks.Remove(t);
|
|
}
|
|
}
|
|
|
|
// This must return the string that is displayed in the listbox
|
|
public override string ToString()
|
|
{
|
|
return thingsinfo;
|
|
}
|
|
|
|
// Rendering
|
|
public override void RenderOverlaySelection(IRenderer2D renderer)
|
|
{
|
|
foreach(Thing thing in things)
|
|
renderer.RenderThing(thing, General.Colors.Selection, General.Settings.ActiveThingsAlpha);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|