using Content.Shared.Actions; using Robust.Shared.Serialization; namespace Content.Shared.Mech; public sealed partial class MechInhaleEvent : InstantActionEvent { } public sealed partial class MechTurnLightsEvent : InstantActionEvent { } public sealed partial class MechRCDToggleEvent : InstantActionEvent { } public sealed partial class MechRCDMenuEvent : InstantActionEvent { } public sealed partial class MechJetpackToggleEvent : InstantActionEvent { } /// /// Raised on mech equipment destruction. /// [ByRefEvent] public record struct MechEquipmentDestroyedEvent(); /// /// Raised on the mech during pilot setup /// /// [ByRefEvent] public record struct SetupMechUserEvent(EntityUid Pilot); [ByRefEvent] public record struct MechEquipmentSelectedEvent(EntityUid? Equipment); [ByRefEvent] public record struct MechEquipmentGotSelectedEvent(EntityUid Mech); [ByRefEvent] public record struct MechEquipmentGotDeselectedEvent(EntityUid Mech); [ByRefEvent] public record struct StartupMechShootableEvent(EntityUid Shootable); /// /// Sent to server when player selects mech equipment in radial menu. /// [Serializable, NetSerializable] public sealed partial class SelectMechEquipmentEvent : EntityEventArgs { public NetEntity User; public NetEntity? Equipment; public SelectMechEquipmentEvent(NetEntity user, NetEntity? equipment) { User = user; Equipment = equipment; } } [Serializable, NetSerializable] public sealed partial class PopulateMechEquipmentMenuEvent : EntityEventArgs { public List Equipment; public PopulateMechEquipmentMenuEvent(List equipment) { Equipment = equipment; } } /// /// Exsists just to avoid exceptions but close radial menu on mech exit /// [Serializable, NetSerializable] public sealed partial class CloseMechMenuEvent : EntityEventArgs { } public sealed partial class MechEquipmentEvent : EntityEventArgs where T : EntityEventArgs { public EntityUid Mech; public T Args; public MechEquipmentEvent(EntityUid mech, T args) { Mech = mech; Args = args; } } /// /// Raise on eject pilot to del remote pilot /// [Serializable, NetSerializable] public sealed partial class OnPilotEjectEvent : EntityEventArgs // Horizon RemotePilot { public NetEntity Mech; public OnPilotEjectEvent(NetEntity mech) { Mech = mech; } }