2014-09-23 21:34:50 +00:00
|
|
|
|
#region ================== Namespaces
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using CodeImp.DoomBuilder.Map;
|
|
|
|
|
using CodeImp.DoomBuilder.Rendering;
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
namespace CodeImp.DoomBuilder.BuilderModes
|
|
|
|
|
{
|
|
|
|
|
public class ResultTexturesMisaligned : ErrorResult
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
#region ================== Variables
|
|
|
|
|
|
|
|
|
|
private readonly Sidedef side1;
|
|
|
|
|
private readonly Sidedef side2;
|
|
|
|
|
private readonly string texturename;
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region ================== Properties
|
|
|
|
|
|
|
|
|
|
public override int Buttons { get { return 0; } }
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region ================== Constructor / Destructor
|
|
|
|
|
|
|
|
|
|
public ResultTexturesMisaligned(Sidedef side1, Sidedef side2, string texturename)
|
|
|
|
|
{
|
|
|
|
|
// Initialize
|
|
|
|
|
this.side1 = side1;
|
|
|
|
|
this.side2 = side2;
|
|
|
|
|
this.texturename = texturename;
|
|
|
|
|
viewobjects.Add(side1.Line);
|
|
|
|
|
viewobjects.Add(side2.Line);
|
|
|
|
|
hidden = (side1.IgnoredErrorChecks.Contains(this.GetType()) && side2.IgnoredErrorChecks.Contains(this.GetType()));
|
|
|
|
|
description = "Textures are not aligned on given sidedefs. Some players may not like that.";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region ================== Methods
|
|
|
|
|
|
|
|
|
|
// This sets if this result is displayed in ErrorCheckForm (mxd)
|
2014-12-03 23:15:26 +00:00
|
|
|
|
internal override void Hide(bool hide)
|
|
|
|
|
{
|
2014-09-23 21:34:50 +00:00
|
|
|
|
hidden = hide;
|
|
|
|
|
Type t = this.GetType();
|
2015-12-28 15:01:53 +00:00
|
|
|
|
if(hide)
|
2014-09-23 21:34:50 +00:00
|
|
|
|
{
|
|
|
|
|
side1.IgnoredErrorChecks.Add(t);
|
|
|
|
|
side2.IgnoredErrorChecks.Add(t);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if(side1.IgnoredErrorChecks.Contains(t)) side1.IgnoredErrorChecks.Remove(t);
|
|
|
|
|
if(side2.IgnoredErrorChecks.Contains(t)) side2.IgnoredErrorChecks.Remove(t);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This must return the string that is displayed in the listbox
|
|
|
|
|
public override string ToString()
|
|
|
|
|
{
|
|
|
|
|
return "Texture '" + texturename + "' is not aligned on linedefs " + side1.Line.Index + " (" + (side1.IsFront ? "front" : "back")
|
|
|
|
|
+ ") and " + side2.Line.Index + " (" + (side2.IsFront ? "front" : "back") + ")";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Rendering
|
|
|
|
|
public override void PlotSelection(IRenderer2D renderer)
|
|
|
|
|
{
|
|
|
|
|
renderer.PlotLinedef(side1.Line, General.Colors.Selection);
|
|
|
|
|
renderer.PlotLinedef(side2.Line, General.Colors.Selection);
|
|
|
|
|
renderer.PlotVertex(side1.Line.Start, ColorCollection.VERTICES);
|
|
|
|
|
renderer.PlotVertex(side1.Line.End, ColorCollection.VERTICES);
|
|
|
|
|
renderer.PlotVertex(side2.Line.Start, ColorCollection.VERTICES);
|
|
|
|
|
renderer.PlotVertex(side2.Line.End, ColorCollection.VERTICES);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
}
|