Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / activity / CheckInteractiveResult.cs
  1.  
  2. using Godot;
  3.  
  4. /// <summary>
  5. /// 检测互动返回的数据集
  6. /// </summary>
  7. public class CheckInteractiveResult
  8. {
  9. public enum InteractiveType
  10. {
  11. /// <summary>
  12. /// 拾起物体
  13. /// </summary>
  14. PickUp,
  15. /// <summary>
  16. /// 拾起弹药
  17. /// </summary>
  18. Bullet,
  19. /// <summary>
  20. /// 替换
  21. /// </summary>
  22. Replace,
  23. }
  24. /// <summary>
  25. /// 互动物体
  26. /// </summary>
  27. public ActivityObject Target;
  28. /// <summary>
  29. /// 是否可以互动
  30. /// </summary>
  31. public bool CanInteractive = false;
  32. /// <summary>
  33. /// 互动提示类型
  34. /// </summary>
  35. public InteractiveType Type = InteractiveType.PickUp;
  36.  
  37. public CheckInteractiveResult(ActivityObject target)
  38. {
  39. Target = target;
  40. }
  41. public CheckInteractiveResult(ActivityObject target, bool canInteractive)
  42. {
  43. Target = target;
  44. CanInteractive = canInteractive;
  45. }
  46. public CheckInteractiveResult(ActivityObject target, bool canInteractive, InteractiveType type)
  47. {
  48. Target = target;
  49. CanInteractive = canInteractive;
  50. Type = type;
  51. }
  52.  
  53. /// <summary>
  54. /// 互动提示显示的图标
  55. /// </summary>
  56. public Texture2D GetIcon()
  57. {
  58. if (!_init)
  59. {
  60. Init();
  61. }
  62. switch (Type)
  63. {
  64. case InteractiveType.PickUp:
  65. return _pickUpIcon;
  66. case InteractiveType.Bullet:
  67. return _bulletIcon;
  68. case InteractiveType.Replace:
  69. return _replaceIcon;
  70. }
  71.  
  72. return null;
  73. }
  74. private static Texture2D _pickUpIcon;
  75. private static Texture2D _bulletIcon;
  76. private static Texture2D _replaceIcon;
  77. private static bool _init = false;
  78. private static void Init()
  79. {
  80. _init = true;
  81. _pickUpIcon = ResourceManager.Load<Texture2D>(ResourcePath.resource_sprite_ui_roomUI_icon_pickup_png);
  82. _bulletIcon = ResourceManager.Load<Texture2D>(ResourcePath.resource_sprite_ui_roomUI_icon_bullet_png);
  83. _replaceIcon = ResourceManager.Load<Texture2D>(ResourcePath.resource_sprite_ui_roomUI_icon_replace_png);
  84. }
  85. }