Refactor stations to properly use entity prototypes. (stationsv3) (#16570)
* Update StationSpawningSystem.cs Web-edit to allow feeding in an existing entity. * Update StationSpawningSystem.cs value type moment * Update StationSpawningSystem.cs * Oh goddamnit this is a refactor now. * awawawa * aaaaaaaaaaa * ee * forgot records. * no records? no records. * What's in a name? * Sloth forcing me to do the refactor properly smh. * e * optional evac in test. * tests pls work * awa --------- Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
This commit is contained in:
@@ -53,30 +53,32 @@ public sealed partial class StationJobsSystem : EntitySystem
|
||||
|
||||
private void OnStationInitialized(StationInitializedEvent msg)
|
||||
{
|
||||
var stationJobs = AddComp<StationJobsComponent>(msg.Station);
|
||||
var stationData = Comp<StationDataComponent>(msg.Station);
|
||||
|
||||
if (stationData.StationConfig == null)
|
||||
if (!TryComp<StationJobsComponent>(msg.Station, out var stationJobs))
|
||||
return;
|
||||
|
||||
var mapJobList = stationData.StationConfig.AvailableJobs;
|
||||
var mapJobList = stationJobs.SetupAvailableJobs;
|
||||
|
||||
stationJobs.RoundStartTotalJobs = mapJobList.Values.Where(x => x[0] is not null && x[0] > 0).Sum(x => x[0]!.Value);
|
||||
stationJobs.MidRoundTotalJobs = mapJobList.Values.Where(x => x[1] is not null && x[1] > 0).Sum(x => x[1]!.Value);
|
||||
|
||||
stationJobs.TotalJobs = stationJobs.MidRoundTotalJobs;
|
||||
|
||||
stationJobs.JobList = mapJobList.ToDictionary(x => x.Key, x =>
|
||||
{
|
||||
if (x.Value[1] <= -1)
|
||||
return null;
|
||||
return (uint?) x.Value[1];
|
||||
});
|
||||
|
||||
stationJobs.RoundStartJobList = mapJobList.ToDictionary(x => x.Key, x =>
|
||||
{
|
||||
if (x.Value[0] <= -1)
|
||||
return null;
|
||||
return (uint?) x.Value[0];
|
||||
});
|
||||
stationJobs.OverflowJobs = stationData.StationConfig.OverflowJobs.ToHashSet();
|
||||
|
||||
stationJobs.OverflowJobs = stationJobs.OverflowJobs.ToHashSet();
|
||||
|
||||
UpdateJobsAvailable();
|
||||
}
|
||||
|
||||
@@ -464,9 +466,11 @@ public sealed partial class StationJobsSystem : EntitySystem
|
||||
var jobs = new Dictionary<EntityUid, Dictionary<string, uint?>>();
|
||||
var stationNames = new Dictionary<EntityUid, string>();
|
||||
|
||||
foreach (var station in _stationSystem.Stations)
|
||||
var query = EntityQueryEnumerator<StationJobsComponent>();
|
||||
|
||||
while (query.MoveNext(out var station, out var comp))
|
||||
{
|
||||
var list = Comp<StationJobsComponent>(station).JobList.ToDictionary(x => x.Key, x => x.Value);
|
||||
var list = comp.JobList.ToDictionary(x => x.Key, x => x.Value);
|
||||
jobs.Add(station, list);
|
||||
stationNames.Add(station, Name(station));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user