using Content.Shared.Chemistry.EntitySystems; using Content.Shared.Chemistry.Reaction; using Robust.Shared.Audio; using Robust.Shared.Audio.Components; using Robust.Shared.GameStates; using Robust.Shared.Serialization; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Chemistry.Components; /// /// This is used for an entity that uses to mix any container with a solution after a period of time. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(SharedSolutionContainerMixerSystem))] public sealed partial class SolutionContainerMixerComponent : Component { [DataField, ViewVariables(VVAccess.ReadWrite)] public string ContainerId = "mixer"; [DataField, AutoNetworkedField] public bool Mixing; /// /// How long it takes for mixing to occurs. /// [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] public TimeSpan MixDuration; [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] public TimeSpan MixTimeEnd; [DataField, AutoNetworkedField] public SoundSpecifier? MixingSound; [ViewVariables] public Entity? MixingSoundEntity; } [Serializable, NetSerializable] public enum SolutionContainerMixerVisuals : byte { Mixing }