UltimateZoneBuilder/Source/Plugins/BuilderModes/ErrorChecks/ResultTextureMissing.cs
MaxED 013865e27d Voxels can now be loaded from WAD resources.
Reverted "Delete Item" action to the way it worked in DB2.
Added "Dissolve Item" action, which works the way "Delete Item" worked in previous revisions of GZDB.
Added "Auto Clear Sidedef Textures" action, "Edit" menu and toolbar button, which toggle automatic removal of sidedef textures when floor or ceiling height is changed or when geometry is drawn, copied or pasted.
Draw Settings panel: upper/lower texture overrides can now be used.
Draw Settings panel: added 2 sets of buttons, which allow to quickly set or clear textures in current selection.
Things are now rendered behind AND on top of the grid/linedefs/vertices when they are dragged.
Redesigned hints system. They are now shown in a side panel.
Edit area auto-focusing is now disabled when script editor is open.
Texture Browser form: no texture group was selected when opening the form in some cases.
Fixed several strange/misleading text messages.
2014-01-08 09:46:57 +00:00

105 lines
3 KiB
C#

#region ================== Copyright (c) 2007 Pascal vd Heiden
/*
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
* This program is released under GNU General Public License
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#endregion
#region ================== Namespaces
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Rendering;
#endregion
namespace CodeImp.DoomBuilder.BuilderModes
{
public class ResultMissingTexture : ErrorResult
{
#region ================== Variables
private Sidedef side;
private SidedefPart part;
#endregion
#region ================== Properties
public override int Buttons { get { return 1; } }
public override string Button1Text { get { return "Add Default Texture"; } }
#endregion
#region ================== Constructor / Destructor
// Constructor
public ResultMissingTexture(Sidedef sd, SidedefPart part)
{
// Initialize
this.side = sd;
this.part = part;
this.viewobjects.Add(sd);
this.description = "This sidedef is missing a texture where it is required and could cause a 'Hall Of Mirrors' visual problem in the map. Click the Add Default Texture button to add a texture to the line.";
}
#endregion
#region ================== Methods
// This must return the string that is displayed in the listbox
public override string ToString()
{
string sidestr = side.IsFront ? "front" : "back";
switch (part)
{
case SidedefPart.Upper:
return "Sidedef " + side.Index + " has missing upper texture (" + sidestr + " side)";
case SidedefPart.Middle:
return "Sidedef " + side.Index + " has missing middle texture (" + sidestr + " side)";
case SidedefPart.Lower:
return "Sidedef " + side.Index + " has missing lower texture (" + sidestr + " side)";
default:
return "ERROR";
}
}
// Rendering
public override void PlotSelection(IRenderer2D renderer)
{
renderer.PlotLinedef(side.Line, General.Colors.Selection);
renderer.PlotVertex(side.Line.Start, ColorCollection.VERTICES);
renderer.PlotVertex(side.Line.End, ColorCollection.VERTICES);
}
// Fix by setting default texture
public override bool Button1Click(bool batchMode)
{
if(!batchMode) General.Map.UndoRedo.CreateUndo("Missing texture correction");
General.Settings.FindDefaultDrawSettings();
switch (part)
{
case SidedefPart.Upper: side.SetTextureHigh(General.Map.Options.DefaultTopTexture); break;
case SidedefPart.Middle: side.SetTextureMid(General.Map.Options.DefaultWallTexture); break;
case SidedefPart.Lower: side.SetTextureLow(General.Map.Options.DefaultBottomTexture); break;
}
General.Map.Map.Update();
return true;
}
#endregion
}
}