UltimateZoneBuilder/Source/Plugins/BuilderModes/ErrorChecks/CheckUnusedTextures.cs
MaxED c087d014a1 Selected things are now dragged while dragging vertices, linedefs and sectors.
Error checks: added "Check unused textures" option.
Replaced MissingTexture3D and UnknownTexture3D.
Sectors mode: restored "Lower/Raise Floor/Ceiling by 8 mp" actions.
Visual mode: in some cases sidedefs were rendered as selected when they were not.
Existing linedefs were not split while drawing new lines in some cases.
Texture and height overrides were not applied correctly in some cases.
Preferences form: "Ctrl+Alt+ScrollUp" and "Ctrl+Alt+ScrollDown" dropdown items were setting the shortcut to "Ctrl+Shift+ScrollUp" and "Ctrl+Shift+ScrollDown".
2014-01-13 08:06:56 +00:00

68 lines
1.6 KiB
C#

#region ================== Namespaces
using CodeImp.DoomBuilder.Map;
using System.Threading;
#endregion
namespace CodeImp.DoomBuilder.BuilderModes
{
[ErrorChecker("Check unused textures", true, 60)]
public class CheckUnusedTextures : ErrorChecker
{
#region ================== Constants
private int PROGRESS_STEP = 1000;
#endregion
#region ================== Constructor / Destructor
// Constructor
public CheckUnusedTextures()
{
// Total progress is done when all lines are checked
SetTotalProgress(General.Map.Map.Sidedefs.Count / PROGRESS_STEP);
}
#endregion
#region ================== Methods
// This runs the check
public override void Run()
{
int progress = 0;
int stepprogress = 0;
// Go for all the sidedefs
foreach(Sidedef sd in General.Map.Map.Sidedefs)
{
// Check upper texture
if(!sd.HighRequired() && ((sd.HighTexture.Length > 1) || (sd.HighTexture != "-")))
{
SubmitResult(new ResultUnusedTexture(sd, SidedefPart.Upper));
}
// Check lower texture
if(!sd.LowRequired() && ((sd.LowTexture.Length > 1) || (sd.LowTexture != "-")))
{
SubmitResult(new ResultUnusedTexture(sd, SidedefPart.Lower));
}
// Handle thread interruption
try { Thread.Sleep(0); }
catch(ThreadInterruptedException) { return; }
// We are making progress!
if((++progress / PROGRESS_STEP) > stepprogress)
{
stepprogress = (progress / PROGRESS_STEP);
AddProgress(1);
}
}
}
#endregion
}
}