using System;
using Content.Shared.GameObjects.Components.Interactable;
using Robust.Shared.Localization;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;

namespace Content.Shared.Construction
{
    public class ToolConstructionGraphStep : ConstructionGraphStep
    {
        public ToolQuality Tool { get; private set; }
        public float Fuel { get; private set; }
        public string ExamineOverride { get; private set; }

        public override void ExposeData(ObjectSerializer serializer)
        {
            base.ExposeData(serializer);

            serializer.DataField(this, x => x.Tool, "tool", ToolQuality.None);
            serializer.DataField(this, x => x.Fuel, "fuel", 10f); // Default fuel cost.
            serializer.DataField(this, x => x.ExamineOverride, "examine", string.Empty);
        }

        public override void DoExamine(FormattedMessage message, bool inDetailsRange)
        {
            if (!string.IsNullOrEmpty(ExamineOverride))
            {
                message.AddMarkup(Loc.GetString(ExamineOverride));
                return;
            }

            message.AddMarkup(Loc.GetString($"Next, use a [color=cyan]{Tool.GetToolName()}[/color]."));
        }
    }
}
