targetLabel = Loc.GetString("access-overrider-window-target-label") + " " + EntityManager.GetComponent<MetaDataComponent>(component.TargetAccessReaderId).EntityName;
targetLabelColor = Color.White;
- if (!_accessReader.GetMainAccessReader(accessReader, out var accessReaderComponent))
+ if (!_accessReader.GetMainAccessReader(accessReader, out var accessReaderEnt))
return;
- var currentAccessHashsets = accessReaderComponent.AccessLists;
+ var currentAccessHashsets = accessReaderEnt.Value.Comp.AccessLists;
currentAccess = ConvertAccessHashSetsToList(currentAccessHashsets).ToArray();
}
return;
}
- if (!_accessReader.GetMainAccessReader(component.TargetAccessReaderId, out var accessReader))
+ if (!_accessReader.GetMainAccessReader(component.TargetAccessReaderId, out var accessReaderEnt))
return;
- var oldTags = ConvertAccessHashSetsToList(accessReader.AccessLists);
+ var oldTags = ConvertAccessHashSetsToList(accessReaderEnt.Value.Comp.AccessLists);
var privilegedId = component.PrivilegedIdSlot.Item;
if (oldTags.SequenceEqual(newAccessList))
var removedTags = oldTags.Except(newAccessList).Select(tag => "-" + tag).ToList();
_adminLogger.Add(LogType.Action, LogImpact.Medium,
- $"{ToPrettyString(player):player} has modified {ToPrettyString(component.TargetAccessReaderId):entity} with the following allowed access level holders: [{string.Join(", ", addedTags.Union(removedTags))}] [{string.Join(", ", newAccessList)}]");
+ $"{ToPrettyString(player):player} has modified {ToPrettyString(accessReaderEnt.Value):entity} with the following allowed access level holders: [{string.Join(", ", addedTags.Union(removedTags))}] [{string.Join(", ", newAccessList)}]");
- accessReader.AccessLists = ConvertAccessListToHashSet(newAccessList);
- Dirty(component.TargetAccessReaderId, accessReader);
+ accessReaderEnt.Value.Comp.AccessLists = ConvertAccessListToHashSet(newAccessList);
+ Dirty(accessReaderEnt.Value);
}
/// <summary>
continue;
// use the access reader from the door electronics if they exist
- if (!_access.GetMainAccessReader(airlockUid, out var accessComp))
+ if (!_access.GetMainAccessReader(airlockUid, out var accessEnt))
continue;
// check access
- if (!_access.AreAccessTagsAllowed(accessIds, accessComp) || _access.AreAccessTagsAllowed(virusComp.Blacklist, accessComp))
+ if (!_access.AreAccessTagsAllowed(accessIds, accessEnt.Value.Comp) || _access.AreAccessTagsAllowed(virusComp.Blacklist, accessEnt.Value.Comp))
continue;
// open and bolt airlocks
return false;
}
- public bool GetMainAccessReader(EntityUid uid, [NotNullWhen(true)] out AccessReaderComponent? component)
+ public bool GetMainAccessReader(EntityUid uid, [NotNullWhen(true)] out Entity<AccessReaderComponent>? ent)
{
- component = null;
- if (!TryComp(uid, out AccessReaderComponent? accessReader))
+ ent = null;
+ if (!TryComp<AccessReaderComponent>(uid, out var accessReader))
return false;
- component = accessReader;
+ ent = (uid, accessReader);
- if (component.ContainerAccessProvider == null)
+ if (ent.Value.Comp.ContainerAccessProvider == null)
return true;
- if (!_containerSystem.TryGetContainer(uid, component.ContainerAccessProvider, out var container))
+ if (!_containerSystem.TryGetContainer(uid, ent.Value.Comp.ContainerAccessProvider, out var container))
return true;
foreach (var entity in container.ContainedEntities)
{
- if (TryComp(entity, out AccessReaderComponent? containedReader))
+ if (TryComp<AccessReaderComponent>(entity, out var containedReader))
{
- component = containedReader;
+ ent = (entity, containedReader);
return true;
}
}