using System; using System.Collections.Generic; using Content.Shared.Chemistry; using Content.Shared.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Serialization; using Robust.Shared.GameObjects.Components.UserInterface; namespace Content.Shared.Kitchen { public class SharedMicrowaveComponent : Component { public override string Name => "Microwave"; public override uint? NetID => ContentNetIDs.MICROWAVE; [Serializable, NetSerializable] public class MicrowaveStartCookMessage : BoundUserInterfaceMessage { public MicrowaveStartCookMessage() { } } [Serializable, NetSerializable] public class MicrowaveEjectMessage : BoundUserInterfaceMessage { public MicrowaveEjectMessage() { } } [Serializable, NetSerializable] public class MicrowaveEjectSolidIndexedMessage : BoundUserInterfaceMessage { public EntityUid EntityID; public MicrowaveEjectSolidIndexedMessage(EntityUid entityID) { EntityID = entityID; } } [Serializable, NetSerializable] public class MicrowaveVaporizeReagentIndexedMessage : BoundUserInterfaceMessage { public Solution.ReagentQuantity ReagentQuantity; public MicrowaveVaporizeReagentIndexedMessage(Solution.ReagentQuantity reagentQuantity) { ReagentQuantity = reagentQuantity; } } [Serializable, NetSerializable] public class MicrowaveSelectCookTimeMessage : BoundUserInterfaceMessage { public uint newCookTime; public MicrowaveSelectCookTimeMessage(uint inputTime) { newCookTime = inputTime; } } } [NetSerializable, Serializable] public class MicrowaveUpdateUserInterfaceState : BoundUserInterfaceState { public readonly IReadOnlyList ReagentsReagents; public readonly List ContainedSolids; public bool IsMicrowaveBusy; public MicrowaveUpdateUserInterfaceState(IReadOnlyList reagents, List solids, bool busyStatus) { ReagentsReagents = reagents; ContainedSolids = solids; IsMicrowaveBusy = busyStatus; } } [Serializable, NetSerializable] public enum MicrowaveVisualState { Idle, Cooking } [NetSerializable, Serializable] public enum MicrowaveUiKey { Key } }