Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / mark / ActivityMark.cs
  1.  
  2. using Godot;
  3.  
  4. /// <summary>
  5. /// 物体生成标记
  6. /// </summary>
  7. [Tool]
  8. public partial class ActivityMark : Node2D
  9. {
  10. /// <summary>
  11. /// 物体类型
  12. /// </summary>
  13. [Export]
  14. public ActivityIdPrefix.ActivityPrefixType Type = ActivityIdPrefix.ActivityPrefixType.NonePrefix;
  15.  
  16. /// <summary>
  17. /// 物体id
  18. /// </summary>
  19. [Export]
  20. public string ItemId;
  21.  
  22. /// <summary>
  23. /// 所在层级
  24. /// </summary>
  25. [Export]
  26. public RoomLayerEnum Layer = RoomLayerEnum.NormalLayer;
  27.  
  28. /// <summary>
  29. /// 获取物体Id
  30. /// </summary>
  31. /// <returns></returns>
  32. public string GetItemId()
  33. {
  34. return ActivityIdPrefix.GetNameByPrefixType(Type) + ItemId;
  35. }
  36.  
  37. /// <summary>
  38. /// 调用该函数表示房间已经准备好了
  39. /// </summary>
  40. public virtual void BeReady(RoomInfo roomInfo)
  41. {
  42. var id = GetItemId();
  43. var instance = ActivityObject.Create(id);
  44. instance.PutDown(GlobalPosition, Layer);
  45. Visible = false;
  46. }
  47.  
  48. public override void _Draw()
  49. {
  50. if (Engine.IsEditorHint() || GameApplication.Instance.Debug)
  51. {
  52. DrawLine(new Vector2(-5, -5), new Vector2(5, 5), new Color(0.4F,0.56078434F,0.8784314F), 2f);
  53. DrawLine(new Vector2(-5, 5), new Vector2(5, -5), new Color(0.4F,0.56078434F,0.8784314F), 2f);
  54. }
  55. }
  56.  
  57. }