UltimateZoneBuilder/Source/Core/Controls/TextureSelectorControl.cs
MaxED 993328b57b Textures with names starting with "-" were not processed correctly.
Textures were not loaded properly from PK3/PK7 archives.
Visual mode: restored ability to remove textures using Delete action.
Visual mode: fixed several bugs in Cut/Copy/Paste things actions.
Visual mode: vavoom style 3d floors were not displayed properly.
Visual mode, 3d floors: added support for "RestrictLighting" (2) flag.
Visual mode, 3d floors: inner sides of 3d floors with "swimmable"/"render inside" flags used incorrect brightness value.
2013-07-31 12:38:47 +00:00

81 lines
2.1 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 System.Drawing;
using CodeImp.DoomBuilder.Windows;
using CodeImp.DoomBuilder.Data;
#endregion
namespace CodeImp.DoomBuilder.Controls
{
public class TextureSelectorControl : ImageSelectorControl
{
// Variables
private bool required;
// Properties
public bool Required { get { return required; } set { required = value; } }
// Setup
public override void Initialize()
{
base.Initialize();
// Fill autocomplete list
name.AutoCompleteCustomSource.AddRange(General.Map.Data.TextureNames.ToArray());
allowclear = true;
}
// This finds the image we need for the given texture name
protected override Image FindImage(string imagename)
{
// Check if name is a "none" texture
if((imagename.Length < 1) || (imagename == "-"))
{
DisplayImageSize(0, 0); //mxd
// Determine image to show
if(required)
return CodeImp.DoomBuilder.Properties.Resources.MissingTexture;
else
return null;
}
else
{
ImageData texture = General.Map.Data.GetTextureImage(imagename); //mxd
if(string.IsNullOrEmpty(texture.FullName) || texture is UnknownImage) DisplayImageSize(0, 0); //mxd
else DisplayImageSize(texture.ScaledWidth, texture.ScaledHeight); //mxd
// Set the image
return texture.GetPreview();
}
}
// This browses for a texture
protected override string BrowseImage(string imagename)
{
string result;
// Browse for texture
result = TextureBrowserForm.Browse(this.ParentForm, imagename, false);
if(result != null) return result; else return imagename;
}
}
}