using System; using Content.Server.Nutrition.EntitySystems; using Content.Shared.Sound; using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; using Robust.Shared.Serialization.Manager.Attributes; using Robust.Shared.ViewVariables; namespace Content.Server.Nutrition.Components { [RegisterComponent, Friend(typeof(UtensilSystem))] public sealed class UtensilComponent : Component { [DataField("types")] private UtensilType _types = UtensilType.None; [ViewVariables] public UtensilType Types { get => _types; set { if (_types.Equals(value)) return; _types = value; } } /// /// The chance that the utensil has to break with each use. /// A value of 0 means that it is unbreakable. /// [ViewVariables] [DataField("breakChance")] public float BreakChance; /// /// The sound to be played if the utensil breaks. /// [ViewVariables] [DataField("breakSound")] public SoundSpecifier BreakSound = new SoundPathSpecifier("/Audio/Items/snap.ogg"); } // If you want to make a fancy output on "wrong" composite utensil use (like: you need fork and knife) // There should be Dictionary I guess (Dictionary) [Flags] public enum UtensilType : byte { None = 0, Fork = 1, Spoon = 1 << 1, Knife = 1 << 2 } }