mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-27 14:12:16 +00:00
c087d014a1
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".
68 lines
1.6 KiB
C#
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
|
|
}
|
|
}
|