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))
{
/// </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))
{
- reason = Loc.GetString("shuttle-console-mass");
- return false;
+ // 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))
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