Fix access for vehicles and mechs (#20737)
* fix access for vehicles and mechs * optimize
This commit is contained in:
parent
6f148ee5f1
commit
dc6a026135
|
|
@ -71,7 +71,7 @@ public sealed class AccessReaderSystem : EntitySystem
|
|||
{
|
||||
args.Handled = true;
|
||||
reader.Enabled = false;
|
||||
Dirty(reader);
|
||||
Dirty(uid, reader);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -183,16 +183,16 @@ public sealed class AccessReaderSystem : EntitySystem
|
|||
{
|
||||
FindAccessItemsInventory(uid, out var items);
|
||||
|
||||
foreach (var item in new ValueList<EntityUid>(items))
|
||||
{
|
||||
items.UnionWith(FindPotentialAccessItems(item));
|
||||
}
|
||||
|
||||
var ev = new GetAdditionalAccessEvent
|
||||
{
|
||||
Entities = items
|
||||
};
|
||||
RaiseLocalEvent(uid, ref ev);
|
||||
|
||||
foreach (var item in new ValueList<EntityUid>(items))
|
||||
{
|
||||
items.UnionWith(FindPotentialAccessItems(item));
|
||||
}
|
||||
items.Add(uid);
|
||||
return items;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
using System.Linq;
|
||||
using Content.Shared.Access.Components;
|
||||
using Content.Shared.Access.Systems;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Destructible;
|
||||
|
|
@ -30,7 +29,6 @@ public abstract class SharedMechSystem : EntitySystem
|
|||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly INetManager _net = default!;
|
||||
[Dependency] private readonly ActionBlockerSystem _actionBlocker = default!;
|
||||
[Dependency] private readonly AccessReaderSystem _access = default!;
|
||||
[Dependency] private readonly SharedActionsSystem _actions = default!;
|
||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||
[Dependency] private readonly SharedContainerSystem _container = default!;
|
||||
|
|
@ -105,8 +103,6 @@ public abstract class SharedMechSystem : EntitySystem
|
|||
return;
|
||||
|
||||
args.Entities.Add(pilot.Value);
|
||||
_access.FindAccessItemsInventory(pilot.Value, out var items);
|
||||
args.Entities.UnionWith(items);
|
||||
}
|
||||
|
||||
private void SetupUser(EntityUid mech, EntityUid pilot, MechComponent? component = null)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
using System.Numerics;
|
||||
using Content.Shared.Access.Components;
|
||||
using Content.Shared.Access.Systems;
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Audio;
|
||||
using Content.Shared.Buckle;
|
||||
|
|
@ -35,7 +34,6 @@ public abstract partial class SharedVehicleSystem : EntitySystem
|
|||
[Dependency] private readonly SharedAmbientSoundSystem _ambientSound = default!;
|
||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||
[Dependency] private readonly TagSystem _tagSystem = default!;
|
||||
[Dependency] private readonly AccessReaderSystem _access = default!;
|
||||
[Dependency] private readonly SharedPopupSystem _popupSystem = default!;
|
||||
[Dependency] private readonly SharedHandVirtualItemSystem _virtualItemSystem = default!;
|
||||
[Dependency] private readonly SharedActionsSystem _actionsSystem = default!;
|
||||
|
|
@ -326,11 +324,7 @@ public abstract partial class SharedVehicleSystem : EntitySystem
|
|||
{
|
||||
if (component.Rider == null)
|
||||
return;
|
||||
var rider = component.Rider.Value;
|
||||
|
||||
args.Entities.Add(rider);
|
||||
_access.FindAccessItemsInventory(rider, out var items);
|
||||
args.Entities.UnionWith(items);
|
||||
args.Entities.Add(component.Rider.Value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Reference in New Issue