Two additional checks to prevent FTLing stations (#32558)

Add two additional checks to prevent FTLing
This commit is contained in:
Plykiya
2024-10-03 19:55:36 -07:00
committed by GitHub
parent 570c166517
commit 295e63193c
3 changed files with 19 additions and 5 deletions

View File

@@ -124,6 +124,9 @@ public sealed partial class ShuttleConsoleSystem
if (!TryComp(shuttleUid, out ShuttleComponent? shuttleComp))
return;
if (shuttleComp.Enabled == false)
return;
// Check shuttle can even FTL
if (!_shuttle.CanFTL(shuttleUid.Value, out var reason))
{

View File

@@ -225,19 +225,29 @@ public sealed partial class ShuttleSystem
/// </summary>
public bool CanFTL(EntityUid shuttleUid, [NotNullWhen(false)] out string? reason)
{
// Currently in FTL already
if (HasComp<FTLComponent>(shuttleUid))
{
reason = Loc.GetString("shuttle-console-in-ftl");
return false;
}
if (FTLMassLimit > 0 &&
TryComp(shuttleUid, out PhysicsComponent? shuttlePhysics) &&
shuttlePhysics.Mass > FTLMassLimit)
if (TryComp<PhysicsComponent>(shuttleUid, out var shuttlePhysics))
{
// Static physics type is set when station anchor is enabled
if (shuttlePhysics.BodyType == BodyType.Static)
{
reason = Loc.GetString("shuttle-console-static");
return false;
}
// Too large to FTL
if (FTLMassLimit > 0 && shuttlePhysics.Mass > FTLMassLimit)
{
reason = Loc.GetString("shuttle-console-mass");
return false;
}
}
if (HasComp<PreventPilotComponent>(shuttleUid))
{

View File

@@ -4,6 +4,7 @@ shuttle-pilot-end = Stopped piloting
shuttle-console-in-ftl = Currently in FTL
shuttle-console-mass = Too large to FTL
shuttle-console-prevent = You are unable to pilot this ship
shuttle-console-static = Grid is static
# NAV