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;
}
}