mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-23 20:32:34 +00:00
7febb2434f
DECORATE: added "$obsolete" special comment. When present, it marks the thing as obsolete. It will be detected by "Check obsolete thing" Map Analysis Mode check and will be marked in the Thing Properties Window and the Thing Info panel. Map Analysis mode: added "Check obsolete things" check. Updated documentation ("DECORATE keys" page). Updated ZDoom_DECORATE.cfg.
78 lines
2.1 KiB
C#
78 lines
2.1 KiB
C#
#region ================== Namespaces
|
|
|
|
using System;
|
|
using CodeImp.DoomBuilder.Map;
|
|
using CodeImp.DoomBuilder.Rendering;
|
|
|
|
#endregion
|
|
|
|
namespace CodeImp.DoomBuilder.BuilderModes
|
|
{
|
|
public class ResultObsoleteThing : ErrorResult
|
|
{
|
|
#region ================== Variables
|
|
|
|
private readonly Thing thing;
|
|
|
|
#endregion
|
|
|
|
#region ================== Properties
|
|
|
|
public override int Buttons { get { return 1; } }
|
|
public override string Button1Text { get { return "Delete Thing"; } }
|
|
|
|
#endregion
|
|
|
|
#region ================== Constructor / Destructor
|
|
|
|
public ResultObsoleteThing(Thing t, string message)
|
|
{
|
|
// Initialize
|
|
this.thing = t;
|
|
this.viewobjects.Add(t);
|
|
this.hidden = t.IgnoredErrorChecks.Contains(this.GetType());
|
|
|
|
if(string.IsNullOrEmpty(message))
|
|
this.description = "This thing is marked as obsolete in DECORATE. You should probably replace or delete it.";
|
|
else
|
|
this.description = "This thing is marked as obsolete in DECORATE: " + message;
|
|
}
|
|
|
|
#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) thing.IgnoredErrorChecks.Add(t);
|
|
else 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 "Thing " + thing.Index + " (" + General.Map.Data.GetThingInfo(thing.Type).Title + ") at " + thing.Position.x + ", " + thing.Position.y + " is obsolete.";
|
|
}
|
|
|
|
// Rendering
|
|
public override void RenderOverlaySelection(IRenderer2D renderer)
|
|
{
|
|
renderer.RenderThing(thing, General.Colors.Selection, Presentation.THINGS_ALPHA);
|
|
}
|
|
|
|
// This removes the thing
|
|
public override bool Button1Click(bool batchMode)
|
|
{
|
|
if(!batchMode) General.Map.UndoRedo.CreateUndo("Delete thing");
|
|
thing.Dispose();
|
|
General.Map.IsChanged = true;
|
|
General.Map.ThingsFilter.Update();
|
|
return true;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|