Fix access for vehicles and mechs (#20737)

* fix access for vehicles and mechs

* optimize
This commit is contained in:
Nemanja 2023-10-05 05:12:40 -04:00 committed by Debug
parent 6f148ee5f1
commit dc6a026135
3 changed files with 7 additions and 17 deletions

View File

@ -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;
}

View File

@ -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)

View File

@ -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>