using System; using System.Collections.Generic; using Content.Shared.Sound; using Content.Shared.Tools; using Content.Shared.Tools.Components; using Robust.Shared.GameObjects; using Robust.Shared.Localization; using Robust.Shared.Serialization.Manager.Attributes; using Robust.Shared.Utility; using Robust.Shared.ViewVariables; namespace Content.Server.Tools.Components { /// /// Not to be confused with Multitool (power) /// [RegisterComponent] public class MultipleToolComponent : SharedMultipleToolComponent { [DataDefinition] public class ToolEntry { [DataField("behavior", required:true)] public PrototypeFlags Behavior { get; } = new(); [DataField("useSound")] public SoundSpecifier? Sound { get; } = null; [DataField("changeSound")] public SoundSpecifier? ChangeSound { get; } = null; [DataField("sprite")] public SpriteSpecifier? Sprite { get; } = null; } [DataField("entries", required:true)] public ToolEntry[] Entries { get; } = Array.Empty(); [ViewVariables] public int CurrentEntry = 0; [ViewVariables] public string CurrentQualityName = string.Empty; } }