SpriteTextureInspector.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System.Collections.Generic;
  2. using BansheeEngine;
  3. namespace BansheeEditor
  4. {
  5. /// <summary>
  6. /// Renders an inspector for the <see cref="SpriteTexture"/> resource.
  7. /// </summary>
  8. [CustomInspector(typeof(SpriteTexture))]
  9. internal class SpriteTextureInspector : Inspector
  10. {
  11. private GUITextureField textureField = new GUITextureField(new LocEdString("Texture"));
  12. private GUIVector2Field offsetField = new GUIVector2Field(new LocEdString("Offset"));
  13. private GUIVector2Field scaleField = new GUIVector2Field(new LocEdString("Scale"));
  14. private bool isInitialized;
  15. /// <inheritdoc/>
  16. internal override bool Refresh()
  17. {
  18. SpriteTexture spriteTexture = referencedObject as SpriteTexture;
  19. if (spriteTexture == null)
  20. return false;
  21. if (!isInitialized)
  22. {
  23. textureField.OnChanged += (x) =>
  24. {
  25. spriteTexture.Texture = x as Texture2D;
  26. EditorApplication.SetDirty(spriteTexture);
  27. };
  28. offsetField.OnChanged += (x) =>
  29. {
  30. spriteTexture.Offset = x;
  31. EditorApplication.SetDirty(spriteTexture);
  32. };
  33. scaleField.OnChanged += (x) =>
  34. {
  35. spriteTexture.Scale = x;
  36. EditorApplication.SetDirty(spriteTexture);
  37. };
  38. layout.AddElement(textureField);
  39. layout.AddElement(offsetField);
  40. layout.AddElement(scaleField);
  41. isInitialized = true;
  42. }
  43. bool anythingModified = false;
  44. if (textureField.Value != spriteTexture.Texture)
  45. {
  46. textureField.Value = spriteTexture.Texture;
  47. anythingModified = true;
  48. }
  49. if (offsetField.Value != spriteTexture.Offset)
  50. {
  51. offsetField.Value = spriteTexture.Offset;
  52. anythingModified = true;
  53. }
  54. if (scaleField.Value != spriteTexture.Scale)
  55. {
  56. scaleField.Value = spriteTexture.Scale;
  57. anythingModified = true;
  58. }
  59. return anythingModified;
  60. }
  61. }
  62. }