Coordinates Disks & Shuttle FTL Travel (#23240)

* Adds the CentComm Disk and configures it to work with direct-use shuttles

* Added functionality for drone shuttles (i.e. cargo shuttle)

* Adds support for pods, and a disk console object for disks to be inserted into. Also sprites.

* Added the disk to HoP's locker

* Removed leftover logs & comments

* Fix for integration test

* Apply suggestions from code review (formatting & proper DataField)

Co-authored-by: 0x6273 <0x40@keemail.me>

* Fix integration test & changes based on code review

* Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks

* Check pods & non-evac shuttles for CentCom travel, even in FTL

* Import

* Remove CentCom travel restrictions & pod disk consoles

* Major changes that changes the coordinates disk system to work with salvage expeditions

* Missed CC diskcase removal

* Fix build

* Review suggestions and changes

* Major additional changes after merge

* Minor tag miss

* Integration test fix

* review

---------

Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
SlamBamActionman
2024-04-01 06:50:00 +02:00
committed by GitHub
parent cc35f16839
commit bed9e9ac6a
24 changed files with 217 additions and 23 deletions

View File

@@ -9,7 +9,7 @@ namespace Content.Server.Shuttles.Components;
[RegisterComponent, Access(typeof(EmergencyShuttleSystem)), AutoGenerateComponentPause]
public sealed partial class EscapePodComponent : Component
{
[DataField("launchTime", customTypeSerializer:typeof(TimeOffsetSerializer))]
[DataField(customTypeSerializer:typeof(TimeOffsetSerializer))]
[AutoPausedField]
public TimeSpan? LaunchTime;
}

View File

@@ -14,5 +14,11 @@ namespace Content.Server.Shuttles.Components
/// </summary>
[DataField("zoom")]
public Vector2 Zoom = new(1.5f, 1.5f);
/// <summary>
/// Should this console have access to restricted FTL destinations?
/// </summary>
[ViewVariables(VVAccess.ReadWrite), DataField("whitelistSpecific")]
public List<EntityUid> FTLWhitelist = new List<EntityUid>();
}
}

View File

@@ -418,7 +418,7 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem
}
var mapId = _mapManager.CreateMap();
var grid = _map.LoadGrid(mapId, component.Map.ToString(), new MapLoadOptions()
var grid = _map.LoadGrid(mapId, component.Map.ToString(), new MapLoadOptions()
{
LoadMap = false,
});

View File

@@ -44,6 +44,10 @@ public sealed partial class ShuttleConsoleSystem
}
var nCoordinates = new NetCoordinates(GetNetEntity(targetXform.ParentUid), targetXform.LocalPosition);
if (targetXform.ParentUid == EntityUid.Invalid)
{
nCoordinates = new NetCoordinates(GetNetEntity(beaconEnt), targetXform.LocalPosition);
}
// Check target exists
if (!_shuttle.CanFTLBeacon(nCoordinates))
@@ -128,7 +132,7 @@ public sealed partial class ShuttleConsoleSystem
}
// Check shuttle can FTL to this target.
if (!_shuttle.CanFTLTo(shuttleUid.Value, targetMap))
if (!_shuttle.CanFTLTo(shuttleUid.Value, targetMap, ent))
{
return;
}