using System.Threading; using Content.Shared.Damage; using Content.Shared.Sound; namespace Content.Server.Mining.Components { /// /// When interacting with an allows it to spawn entities. /// [RegisterComponent] public sealed class PickaxeComponent : Component { [ViewVariables(VVAccess.ReadWrite)] [DataField("sound")] public SoundSpecifier MiningSound { get; set; } = new SoundPathSpecifier("/Audio/Items/Mining/pickaxe.ogg"); [ViewVariables(VVAccess.ReadWrite)] [DataField("timeMultiplier")] public float MiningTimeMultiplier { get; set; } = 1f; /// /// What damage should be given to objects when /// mined using a pickaxe? /// [DataField("damage", required: true)] public DamageSpecifier Damage { get; set; } = default!; /// /// How many entities can this pickaxe mine at once? /// [ViewVariables(VVAccess.ReadWrite)] [DataField("maxEntities")] public int MaxMiningEntities = 1; [ViewVariables] public readonly Dictionary MiningEntities = new(); } }