CaptureOptions.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. using System.Collections.Generic;
  2. using Assets.HeroEditor4D.Common.Scripts.CharacterScripts;
  3. using Assets.HeroEditor4D.Common.Scripts.Enums;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. namespace Assets.HeroEditor4D.Common.Scripts.EditorScripts
  7. {
  8. public class CaptureOptions : MonoBehaviour
  9. {
  10. public Toggle Left;
  11. public Toggle Right;
  12. public Toggle Front;
  13. public Toggle Back;
  14. public Toggle Idle;
  15. public Toggle Ready;
  16. public Toggle Walk;
  17. public Toggle Run;
  18. public Toggle Slash;
  19. public Toggle Jab;
  20. public Toggle Shot;
  21. public Toggle Cast;
  22. public Toggle Block;
  23. public Toggle Jump;
  24. public Toggle Climb;
  25. public Toggle Death;
  26. public Toggle Shadow;
  27. public InputField FrameSize;
  28. public InputField FrameCount;
  29. public void Open()
  30. {
  31. gameObject.SetActive(true);
  32. }
  33. public void Close()
  34. {
  35. gameObject.SetActive(false);
  36. }
  37. public void Capture()
  38. {
  39. var direction = Vector2.right;
  40. if (Right.isOn) direction = Vector2.right;
  41. if (Left.isOn) direction = Vector2.left;
  42. if (Front.isOn) direction = Vector2.down;
  43. if (Back.isOn) direction = Vector2.up;
  44. var options = new List<CaptureOption>();
  45. if (Idle.isOn) options.Add(new CaptureOption("Idle"));
  46. if (Ready.isOn) options.Add(new CaptureOption("Ready"));
  47. if (Walk.isOn) options.Add(new CaptureOption("Walk"));
  48. if (Run.isOn) options.Add(new CaptureOption("Run"));
  49. if (Slash.isOn) options.Add(new CaptureOption("Idle", FindObjectOfType<Character4D>().WeaponType == WeaponType.Melee2H ? "Slash2H" : "Slash1H"));
  50. if (Jab.isOn) options.Add(new CaptureOption("Idle", "Jab"));
  51. if (Shot.isOn)
  52. {
  53. var character = FindObjectOfType<Character>();
  54. switch (character.WeaponType)
  55. {
  56. case WeaponType.Bow:
  57. options.Add(new CaptureOption("Idle", "ShotBow"));
  58. break;
  59. case WeaponType.Firearm1H:
  60. options.Add(new CaptureOption("Ready", "Fire1H"));
  61. break;
  62. case WeaponType.Firearm2H:
  63. options.Add(new CaptureOption("Ready", "Fire2H"));
  64. break;
  65. case WeaponType.Paired:
  66. options.Add(new CaptureOption("Idle", "SecondaryShot"));
  67. break;
  68. }
  69. }
  70. if (Cast.isOn) options.Add(new CaptureOption("Idle", "Cast"));
  71. if (Block.isOn) options.Add(new CaptureOption("ShieldBlock"));
  72. if (Jump.isOn) options.Add(new CaptureOption("Jump", "Idle"));
  73. if (Climb.isOn) options.Add(new CaptureOption("Climb"));
  74. if (Death.isOn) options.Add(new CaptureOption(null, null, "Death"));
  75. FindObjectOfType<SpriteSheetCapture>().Capture(direction, options, int.Parse(FrameSize.text), int.Parse(FrameCount.text), Shadow.isOn);
  76. Close();
  77. }
  78. public void OnFrameSizeChanged(string value)
  79. {
  80. if (FrameSize.text == "") return;
  81. var valueInt = int.Parse(value);
  82. if (valueInt < 128) valueInt = 128;
  83. if (valueInt > 512) valueInt = 512;
  84. FrameSize.SetTextWithoutNotify(valueInt.ToString());
  85. }
  86. public void OnFrameCountChanged(string value)
  87. {
  88. if (FrameCount.text == "") return;
  89. var valueInt = int.Parse(value);
  90. if (valueInt < 4) valueInt = 4;
  91. if (valueInt > 16) valueInt = 16;
  92. FrameCount.SetTextWithoutNotify(valueInt.ToString());
  93. }
  94. }
  95. }