89 lines
2.9 KiB
C#
89 lines
2.9 KiB
C#
// New Frontiers - This file is licensed under AGPLv3
|
|
// Copyright (c) 2024 New Frontiers Contributors
|
|
// See AGPLv3.txt for details.
|
|
using System.Numerics;
|
|
using Content.Client.Shuttles.UI;
|
|
using Content.Shared._NF.Shuttles.Events;
|
|
using Content.Shared.Shuttles.Components;
|
|
|
|
namespace Content.Client.Shuttles.BUI
|
|
{
|
|
public sealed partial class ShuttleConsoleBoundUserInterface
|
|
{
|
|
private void NfOpen()
|
|
{
|
|
_window ??= new ShuttleConsoleWindow();
|
|
_window.OnInertiaDampeningModeChanged += OnInertiaDampeningModeChanged;
|
|
_window.OnServiceFlagsChanged += OnServiceFlagsChanged;
|
|
_window.OnSetTargetCoordinates += OnSetTargetCoordinates;
|
|
_window.OnSetHideTarget += OnSetHideTarget;
|
|
_window.RequestTrackEntity += OnTrackEntity;
|
|
_window.OnMaxShuttleSpeedChanged += OnMaxShuttleSpeedChanged;
|
|
_window.OnNetworkPortButtonPressed += OnNetworkPortButtonPressed;
|
|
}
|
|
private void OnInertiaDampeningModeChanged(NetEntity? entityUid, InertiaDampeningMode mode)
|
|
{
|
|
SendMessage(new SetInertiaDampeningRequest
|
|
{
|
|
ShuttleEntityUid = entityUid,
|
|
Mode = mode,
|
|
});
|
|
}
|
|
|
|
private void OnServiceFlagsChanged(NetEntity? entityUid, ServiceFlags flags)
|
|
{
|
|
SendMessage(new SetServiceFlagsRequest
|
|
{
|
|
ShuttleEntityUid = entityUid,
|
|
ServiceFlags = flags,
|
|
});
|
|
}
|
|
|
|
private void OnSetTargetCoordinates(NetEntity? entityUid, Vector2 position)
|
|
{
|
|
SendMessage(new SetTargetCoordinatesRequest
|
|
{
|
|
ShuttleEntityUid = entityUid,
|
|
TrackedPosition = position,
|
|
TrackedEntity = NetEntity.Invalid
|
|
});
|
|
}
|
|
|
|
private void OnSetHideTarget(NetEntity? entityUid, bool hide)
|
|
{
|
|
SendMessage(new SetHideTargetRequest
|
|
{
|
|
Hidden = hide
|
|
});
|
|
}
|
|
|
|
private void OnTrackEntity(NetEntity? entityUid, NetEntity trackEntity)
|
|
{
|
|
SendMessage(new SetTargetCoordinatesRequest
|
|
{
|
|
ShuttleEntityUid = entityUid,
|
|
TrackedPosition = Vector2.Zero, // don't care
|
|
TrackedEntity = trackEntity
|
|
});
|
|
}
|
|
|
|
private void OnMaxShuttleSpeedChanged(NetEntity? entityUid, float maxSpeed)
|
|
{
|
|
SendMessage(new SetMaxShuttleSpeedRequest
|
|
{
|
|
ShuttleEntityUid = entityUid,
|
|
MaxSpeed = maxSpeed,
|
|
});
|
|
}
|
|
|
|
private void OnNetworkPortButtonPressed(string sourcePort, string targetPort)
|
|
{
|
|
SendMessage(new ShuttlePortButtonPressedMessage
|
|
{
|
|
SourcePort = sourcePort,
|
|
TargetPort = targetPort
|
|
});
|
|
}
|
|
}
|
|
}
|