Cargo shuttle changes (#14363)

This commit is contained in:
metalgearsloth
2023-03-23 16:10:49 +11:00
committed by GitHub
parent 7f4bb7fe8a
commit 569f30b721
26 changed files with 523 additions and 628 deletions

View File

@@ -16,23 +16,25 @@ public sealed partial class DockingSystem
var dockingQuery = GetEntityQuery<DockingComponent>();
var xformQuery = GetEntityQuery<TransformComponent>();
var recentQuery = GetEntityQuery<RecentlyDockedComponent>();
var query = EntityQueryEnumerator<AutoDockComponent, PhysicsComponent>();
foreach (var (comp, body) in EntityQuery<AutoDockComponent, PhysicsComponent>())
while (query.MoveNext(out var dockUid, out var comp, out var body))
{
if (comp.Requesters.Count == 0 || !dockingQuery.TryGetComponent(comp.Owner, out var dock))
if (comp.Requesters.Count == 0 || !dockingQuery.TryGetComponent(dockUid, out var dock))
{
RemComp<AutoDockComponent>(comp.Owner);
RemComp<AutoDockComponent>(dockUid);
continue;
}
// Don't re-dock if we're already docked or recently were.
if (dock.Docked || recentQuery.HasComponent(comp.Owner)) continue;
if (dock.Docked || recentQuery.HasComponent(dockUid))
continue;
var dockable = GetDockable(body, xformQuery.GetComponent(comp.Owner));
var dockable = GetDockable(body, xformQuery.GetComponent(dockUid));
if (dockable == null) continue;
TryDock(dock, dockable);
TryDock(dockUid, dock, dockable.Owner, dockable);
}
// Work out recent docks that have gone past their designated threshold.