using Godot; /// <summary> /// 物体生成标记 /// </summary> [Tool] public partial class ActivityMark : Node2D { /// <summary> /// 物体类型 /// </summary> [Export] public ActivityIdPrefix.ActivityPrefixType Type = ActivityIdPrefix.ActivityPrefixType.NonePrefix; /// <summary> /// 物体id /// </summary> [Export] public string ItemId; /// <summary> /// 所在层级 /// </summary> [Export] public RoomLayerEnum Layer = RoomLayerEnum.NormalLayer; /// <summary> /// 绘制的颜色 /// </summary> protected Color DrawColor = new Color(0.4F, 0.56078434F, 0.8784314F); /// <summary> /// 获取物体Id /// </summary> /// <returns></returns> public string GetItemId() { return ActivityIdPrefix.GetNameByPrefixType(Type) + ItemId; } /// <summary> /// 调用该函数表示房间已经准备好了 /// </summary> public virtual void BeReady(RoomInfo roomInfo) { var instance = ActivityObject.Create(GetItemId()); instance.PutDown(GlobalPosition, Layer); Visible = false; } public override void _Draw() { if (Engine.IsEditorHint() || GameApplication.Instance.Debug) { DrawLine(new Vector2(-5, -5), new Vector2(5, 5), DrawColor, 2f); DrawLine(new Vector2(-5, 5), new Vector2(5, -5), DrawColor, 2f); } } }