using Content.Shared.Smoking; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.IgnitionSource.Components; [NetworkedComponent, RegisterComponent, AutoGenerateComponentState, AutoGenerateComponentPause] public sealed partial class MatchstickComponent : Component { /// /// Current state to matchstick. Can be Unlit, Lit or Burnt. /// [DataField, AutoNetworkedField] public SmokableState State = SmokableState.Unlit; /// /// How long the matchstick will burn for. /// [DataField, AutoNetworkedField] public TimeSpan Duration = TimeSpan.FromSeconds(10); /// /// The time that the match will burn out. If null, that means the match is unlit. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoNetworkedField, AutoPausedField] public TimeSpan? TimeMatchWillBurnOut; /// /// Sound played when you ignite the matchstick. /// [DataField] public SoundSpecifier? IgniteSound; }