6
2026-01-24 12:49:55 +03:00

99 lines
2.5 KiB
C#

using Robust.Shared.Serialization;
using Robust.Shared.Map;
using Content.Shared.Shuttles.BUIStates;
namespace Content.Shared._Mono.FireControl;
[Serializable, NetSerializable]
public sealed class FireControlConsoleUpdateEvent : EntityEventArgs
{
}
[Serializable, NetSerializable]
public sealed class FireControlConsoleBoundInterfaceState : BoundUserInterfaceState
{
public bool Connected;
public FireControllableEntry[] FireControllables;
public NavInterfaceState NavState;
public FireControlConsoleBoundInterfaceState(bool connected, FireControllableEntry[] fireControllables, NavInterfaceState navState)
{
Connected = connected;
FireControllables = fireControllables;
NavState = navState;
}
}
[Serializable, NetSerializable]
public enum FireControlConsoleUiKey : byte
{
Key,
}
[Serializable, NetSerializable]
public sealed class FireControlConsoleRefreshServerMessage : BoundUserInterfaceMessage
{
}
[Serializable, NetSerializable]
public sealed class FireControlConsoleFireMessage : BoundUserInterfaceMessage
{
public List<NetEntity> Selected;
public NetCoordinates Coordinates;
public FireControlConsoleFireMessage(List<NetEntity> selected, NetCoordinates coordinates)
{
Selected = selected;
Coordinates = coordinates;
}
}
/// <summary>
/// Event raised when a fire control console wants to fire weapons at specific coordinates.
/// Used for tracking cursor position.
/// </summary>
public sealed class FireControlConsoleFireEvent : EntityEventArgs
{
/// <summary>
/// The coordinates of the cursor/firing position
/// </summary>
public NetCoordinates Coordinates;
/// <summary>
/// The weapons selected to fire
/// </summary>
public List<NetEntity> Selected;
public FireControlConsoleFireEvent(NetCoordinates coordinates, List<NetEntity> selected)
{
Coordinates = coordinates;
Selected = selected;
}
}
[Serializable, NetSerializable]
public struct FireControllableEntry
{
/// <summary>
/// The entity in question
/// </summary>
public NetEntity NetEntity;
/// <summary>
/// Location of the entity
/// </summary>
public NetCoordinates Coordinates;
/// <summary>
/// Display name of the entity
/// </summary>
public string Name;
public FireControllableEntry(NetEntity entity, NetCoordinates coordinates, string name)
{
NetEntity = entity;
Coordinates = coordinates;
Name = name;
}
}