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
}