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. /// <summary>
  24. /// 打开宝箱
  25. /// </summary>
  26. OpenTreasureBox,
  27. /// <summary>
  28. /// 其他互动类型
  29. /// </summary>
  30. Other,
  31. }
  32. /// <summary>
  33. /// 互动物体
  34. /// </summary>
  35. public ActivityObject Target;
  36. /// <summary>
  37. /// 是否可以互动
  38. /// </summary>
  39. public bool CanInteractive = false;
  40. /// <summary>
  41. /// 互动提示类型
  42. /// </summary>
  43. public InteractiveType Type = InteractiveType.PickUp;
  44.  
  45. public CheckInteractiveResult(ActivityObject target)
  46. {
  47. Target = target;
  48. }
  49. public CheckInteractiveResult(ActivityObject target, bool canInteractive)
  50. {
  51. Target = target;
  52. CanInteractive = canInteractive;
  53. }
  54. public CheckInteractiveResult(ActivityObject target, bool canInteractive, InteractiveType type)
  55. {
  56. Target = target;
  57. CanInteractive = canInteractive;
  58. Type = type;
  59. }
  60.  
  61. /// <summary>
  62. /// 互动提示显示的图标
  63. /// </summary>
  64. public Texture2D GetIcon()
  65. {
  66. if (!_init)
  67. {
  68. Init();
  69. }
  70. switch (Type)
  71. {
  72. case InteractiveType.PickUp:
  73. return _pickUpIcon;
  74. case InteractiveType.Bullet:
  75. return _bulletIcon;
  76. case InteractiveType.Replace:
  77. return _replaceIcon;
  78. }
  79.  
  80. return null;
  81. }
  82. private static Texture2D _pickUpIcon;
  83. private static Texture2D _bulletIcon;
  84. private static Texture2D _replaceIcon;
  85. private static bool _init = false;
  86. private static void Init()
  87. {
  88. _init = true;
  89. _pickUpIcon = ResourceManager.Load<Texture2D>(ResourcePath.resource_sprite_ui_roomUI_icon_pickup_png);
  90. _bulletIcon = ResourceManager.Load<Texture2D>(ResourcePath.resource_sprite_ui_roomUI_icon_bullet_png);
  91. _replaceIcon = ResourceManager.Load<Texture2D>(ResourcePath.resource_sprite_ui_roomUI_icon_replace_png);
  92. }
  93. }