//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
//**************** Copyright (c) 2016 Marko Pintera (marko.pintera@gmail.com). All rights reserved. **********************//
using System.Collections.Generic;
using BansheeEngine;
namespace BansheeEditor
{
/** @addtogroup Inspectors
* @{
*/
///
/// Renders an inspector for the resource.
///
[CustomInspector(typeof(SpriteTexture))]
internal class SpriteTextureInspector : Inspector
{
private GUITextureField textureField = new GUITextureField(new LocEdString("Atlas"));
private GUIVector2Field offsetField = new GUIVector2Field(new LocEdString("Offset"));
private GUIVector2Field scaleField = new GUIVector2Field(new LocEdString("Scale"));
///
protected internal override void Initialize()
{
LoadResource();
SpriteTexture spriteTexture = InspectedObject as SpriteTexture;
if (spriteTexture == null)
return;
textureField.OnChanged += (x) =>
{
spriteTexture.Texture = x;
EditorApplication.SetDirty(spriteTexture);
};
offsetField.OnChanged += (x) =>
{
spriteTexture.Offset = x;
EditorApplication.SetDirty(spriteTexture);
};
scaleField.OnChanged += (x) =>
{
spriteTexture.Scale = x;
EditorApplication.SetDirty(spriteTexture);
};
Layout.AddElement(textureField);
Layout.AddElement(offsetField);
Layout.AddElement(scaleField);
}
///
protected internal override InspectableState Refresh()
{
SpriteTexture spriteTexture = InspectedObject as SpriteTexture;
if (spriteTexture == null)
return InspectableState.NotModified;
textureField.ValueRef = spriteTexture.Texture;
offsetField.Value = spriteTexture.Offset;
scaleField.Value = spriteTexture.Scale;
return InspectableState.NotModified;
}
}
/** @} */
}