using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Morgue.Components; /// /// Allows an entity storage to dispose bodies by turning them into ash. /// [RegisterComponent, NetworkedComponent] [AutoGenerateComponentState, AutoGenerateComponentPause] public sealed partial class CrematoriumComponent : Component { /// /// The entity to spawn when something was burned. /// [DataField, AutoNetworkedField] public EntProtoId LeftOverProtoId = "Ash"; /// /// The time it takes to cremate something. /// [DataField, AutoNetworkedField] public TimeSpan CookTime = TimeSpan.FromSeconds(5); /// /// The timestamp at which cremating is finished. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoNetworkedField, AutoPausedField] public TimeSpan ActiveUntil = TimeSpan.Zero; [DataField] public SoundSpecifier CremateStartSound = new SoundPathSpecifier("/Audio/Items/Lighters/lighter1.ogg"); [DataField] public SoundSpecifier CrematingSound = new SoundPathSpecifier("/Audio/Effects/burning.ogg"); [DataField] public SoundSpecifier CremateFinishSound = new SoundPathSpecifier("/Audio/Machines/ding.ogg"); }