using Content.Shared.Light.Components; using Content.Shared.Light.EntitySystems; using Content.Shared.Storage; using Robust.Shared.Audio; using Robust.Shared.Containers; using Robust.Shared.GameStates; using Robust.Shared.Utility; // DeltaV - Predicted Light Replacer & Added Radial Menu namespace Content.Shared.Light.Components; /// /// Device that allows user to quikly change bulbs in /// Can be reloaded by new light tubes or light bulbs /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] // DeltaV - Predicted Light Replacer & Added Radial Menu [Access(typeof(SharedLightReplacerSystem))] public sealed partial class LightReplacerComponent : Component { [DataField("sound")] public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Weapons/click.ogg") { Params = new() { Volume = -4f } }; /// /// Bulbs that were inserted inside light replacer /// [ViewVariables] public Container InsertedBulbs = default!; /// /// The default starting bulbs /// [DataField("contents")] public List Contents = new(); // Start DeltaV - Predicting Light Replacers & Adding Radial Menu /// /// This string defines what kind of tube will be inserted into light fixtures. /// [DataField, AutoNetworkedField] public string ActiveLightTube = "fluorescent light tube"; /// /// This string defines what kind of bulb will be inserted into light fixtures. /// [DataField, AutoNetworkedField] public string ActiveLightBulb = "incandescent light bulb"; /// /// The Icon Sprite for ejecting tubes in the radial menu. /// [DataField] public SpriteSpecifier EjectTubes = new SpriteSpecifier.Rsi(new ResPath("_DV/Objects/Specific/Janitorial/light_replacer.rsi"), "eject-tubes"); /// /// The Icon Sprite for ejecting bulbs in the radial menu. /// [DataField] public SpriteSpecifier EjectBulbs = new SpriteSpecifier.Rsi(new ResPath("_DV/Objects/Specific/Janitorial/light_replacer.rsi"), "eject-bulbs"); // End DeltaV - Predicting Light Replacers & Adding Radial Menu }