Skip to content
Snippets Groups Projects
Commit 07a4c5c5 authored by MaxED's avatar MaxED
Browse files

Added "Sidedef Lower Texture", "Sidedef Middle Texture" and "Sidedef Upper...

Added "Sidedef Lower Texture", "Sidedef Middle Texture" and "Sidedef Upper Texture" Find and Replace modes.
parent a75555dd
No related branches found
No related tags found
No related merge requests found
......@@ -289,6 +289,9 @@
<Compile Include="FindReplace\FindSectorFloorFlat.cs" />
<Compile Include="FindReplace\FindSectorFloorHeight.cs" />
<Compile Include="FindReplace\FindSidedefFlags.cs" />
<Compile Include="FindReplace\FindSidedefLowerTexture.cs" />
<Compile Include="FindReplace\FindSidedefMiddleTexture.cs" />
<Compile Include="FindReplace\FindSidedefUpperTexture.cs" />
<Compile Include="FindReplace\FindThingAngle.cs" />
<Compile Include="FindReplace\FindAnyTextureFlat.cs" />
<Compile Include="FindReplace\FindThingFlags.cs" />
......
#region ================== Namespaces
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.Map;
#endregion
namespace CodeImp.DoomBuilder.BuilderModes
{
[FindReplace("Sidedef Lower Texture", BrowseButton = true)]
internal class FindSidedefLowerTexture : BaseFindSidedef
{
#region ================== Properties
public override Image BrowseImage { get { return Properties.Resources.List; } }
#endregion
#region ================== Methods
// This is called when the browse button is pressed
public override string Browse(string initialvalue)
{
return General.Interface.BrowseTexture(BuilderPlug.Me.FindReplaceForm, initialvalue);
}
// This is called to perform a search (and replace)
// Returns a list of items to show in the results list
// replacewith is null when not replacing
public override FindReplaceObject[] Find(string value, bool withinselection, bool replace, string replacewith, bool keepselection)
{
List<FindReplaceObject> objs = new List<FindReplaceObject>();
// Interpret the replacement
if(replace && (string.IsNullOrEmpty(replacewith) || replacewith.Length > General.Map.Config.MaxTextureNameLength))
{
MessageBox.Show("Invalid replace value for this search type!", "Find and Replace", MessageBoxButtons.OK, MessageBoxIcon.Error);
return objs.ToArray();
}
// Interpret the find
bool isregex = (value.IndexOf('*') != -1 || value.IndexOf('?') != -1); //mxd
MatchingTextureSet set = new MatchingTextureSet(new Collection<string> { value.Trim() }); //mxd
// Where to search?
ICollection<Sidedef> sidelist = withinselection ? General.Map.Map.GetSidedefsFromSelectedLinedefs(true) : General.Map.Map.Sidedefs;
// Go for all sidedefs
foreach(Sidedef sd in sidelist)
{
if(set.IsMatch(sd.LowTexture) && (value != "-" || sd.LowRequired()))
{
// Replace and add to list
if(replace) sd.SetTextureLow(replacewith);
objs.Add(new FindReplaceObject(sd, "Sidedef " + sd.Index + " (" + (sd.IsFront ? "front" : "back") + ", low)" + (isregex ? " - " + sd.LowTexture : null)));
}
}
// When replacing, make sure we keep track of used textures
if(replace) General.Map.Data.UpdateUsedTextures();
return objs.ToArray();
}
#endregion
}
}
#region ================== Namespaces
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.Map;
#endregion
namespace CodeImp.DoomBuilder.BuilderModes
{
[FindReplace("Sidedef Middle Texture", BrowseButton = true)]
internal class FindSidedefMiddleTexture : BaseFindSidedef
{
#region ================== Properties
public override Image BrowseImage { get { return Properties.Resources.List; } }
#endregion
#region ================== Methods
// This is called when the browse button is pressed
public override string Browse(string initialvalue)
{
return General.Interface.BrowseTexture(BuilderPlug.Me.FindReplaceForm, initialvalue);
}
// This is called to perform a search (and replace)
// Returns a list of items to show in the results list
// replacewith is null when not replacing
public override FindReplaceObject[] Find(string value, bool withinselection, bool replace, string replacewith, bool keepselection)
{
List<FindReplaceObject> objs = new List<FindReplaceObject>();
// Interpret the replacement
if(replace && (string.IsNullOrEmpty(replacewith) || replacewith.Length > General.Map.Config.MaxTextureNameLength))
{
MessageBox.Show("Invalid replace value for this search type!", "Find and Replace", MessageBoxButtons.OK, MessageBoxIcon.Error);
return objs.ToArray();
}
// Interpret the find
bool isregex = (value.IndexOf('*') != -1 || value.IndexOf('?') != -1); //mxd
MatchingTextureSet set = new MatchingTextureSet(new Collection<string> { value.Trim() }); //mxd
// Where to search?
ICollection<Sidedef> sidelist = withinselection ? General.Map.Map.GetSidedefsFromSelectedLinedefs(true) : General.Map.Map.Sidedefs;
// Go for all sidedefs
foreach(Sidedef sd in sidelist)
{
if(set.IsMatch(sd.MiddleTexture) && (value != "-" || sd.MiddleRequired()))
{
// Replace and add to list
if(replace) sd.SetTextureMid(replacewith);
objs.Add(new FindReplaceObject(sd, "Sidedef " + sd.Index + " (" + (sd.IsFront ? "front" : "back") + ", middle)" + (isregex ? " - " + sd.MiddleTexture : null)));
}
}
// When replacing, make sure we keep track of used textures
if(replace) General.Map.Data.UpdateUsedTextures();
return objs.ToArray();
}
#endregion
}
}
#region ================== Namespaces
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.Map;
#endregion
namespace CodeImp.DoomBuilder.BuilderModes
{
[FindReplace("Sidedef Upper Texture", BrowseButton = true)]
internal class FindSidedefUpperTexture : BaseFindSidedef
{
#region ================== Properties
public override Image BrowseImage { get { return Properties.Resources.List; } }
#endregion
#region ================== Methods
// This is called when the browse button is pressed
public override string Browse(string initialvalue)
{
return General.Interface.BrowseTexture(BuilderPlug.Me.FindReplaceForm, initialvalue);
}
// This is called to perform a search (and replace)
// Returns a list of items to show in the results list
// replacewith is null when not replacing
public override FindReplaceObject[] Find(string value, bool withinselection, bool replace, string replacewith, bool keepselection)
{
List<FindReplaceObject> objs = new List<FindReplaceObject>();
// Interpret the replacement
if(replace && (string.IsNullOrEmpty(replacewith) || replacewith.Length > General.Map.Config.MaxTextureNameLength))
{
MessageBox.Show("Invalid replace value for this search type!", "Find and Replace", MessageBoxButtons.OK, MessageBoxIcon.Error);
return objs.ToArray();
}
// Interpret the find
bool isregex = (value.IndexOf('*') != -1 || value.IndexOf('?') != -1); //mxd
MatchingTextureSet set = new MatchingTextureSet(new Collection<string> { value.Trim() }); //mxd
// Where to search?
ICollection<Sidedef> sidelist = withinselection ? General.Map.Map.GetSidedefsFromSelectedLinedefs(true) : General.Map.Map.Sidedefs;
// Go for all sidedefs
foreach(Sidedef sd in sidelist)
{
if(set.IsMatch(sd.HighTexture) && (value != "-" || sd.HighRequired()))
{
// Replace and add to list
if(replace) sd.SetTextureHigh(replacewith);
objs.Add(new FindReplaceObject(sd, "Sidedef " + sd.Index + " (" + (sd.IsFront ? "front" : "back") + ", high)" + (isregex ? " - " + sd.HighTexture : null)));
}
}
// When replacing, make sure we keep track of used textures
if(replace) General.Map.Data.UpdateUsedTextures();
return objs.ToArray();
}
#endregion
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment