[Dependency] private readonly IAdminManager _adminManager = default!;
[Dependency] private readonly AppearanceSystem _appearance = default!;
[Dependency] private readonly AudioSystem _audio = default!;
+ private EntityQuery<ApcPowerReceiverComponent> _recQuery;
+ private EntityQuery<ApcPowerProviderComponent> _provQuery;
public override void Initialize()
{
SubscribeLocalEvent<ApcPowerReceiverComponent, GetVerbsEvent<Verb>>(OnGetVerbs);
SubscribeLocalEvent<PowerSwitchComponent, GetVerbsEvent<AlternativeVerb>>(AddSwitchPowerVerb);
+
+ _recQuery = GetEntityQuery<ApcPowerReceiverComponent>();
+ _provQuery = GetEntityQuery<ApcPowerProviderComponent>();
}
private void OnGetVerbs(EntityUid uid, ApcPowerReceiverComponent component, GetVerbsEvent<Verb> args)
private void OnProviderConnected(Entity<ApcPowerReceiverComponent> receiver, ref ExtensionCableSystem.ProviderConnectedEvent args)
{
var providerUid = args.Provider.Owner;
- if (!EntityManager.TryGetComponent<ApcPowerProviderComponent>(providerUid, out var provider))
+ if (!_provQuery.TryGetComponent(providerUid, out var provider))
return;
receiver.Comp.Provider = provider;
private void OnReceiverConnected(Entity<ApcPowerProviderComponent> provider, ref ExtensionCableSystem.ReceiverConnectedEvent args)
{
- if (EntityManager.TryGetComponent(args.Receiver, out ApcPowerReceiverComponent? receiver))
+ if (_recQuery.TryGetComponent(args.Receiver, out var receiver))
{
provider.Comp.AddReceiver(receiver);
}
private void OnReceiverDisconnected(EntityUid uid, ApcPowerProviderComponent provider, ExtensionCableSystem.ReceiverDisconnectedEvent args)
{
- if (EntityManager.TryGetComponent(args.Receiver, out ApcPowerReceiverComponent? receiver))
+ if (_recQuery.TryGetComponent(args.Receiver, out var receiver))
{
provider.RemoveReceiver(receiver);
}
if (!HasComp<HandsComponent>(args.User))
return;
- if (!TryComp<ApcPowerReceiverComponent>(uid, out var receiver))
+ if (!_recQuery.TryGetComponent(uid, out var receiver))
return;
if (!receiver.NeedsPower)
/// </summary>
public bool IsPowered(EntityUid uid, ApcPowerReceiverComponent? receiver = null)
{
- if (!Resolve(uid, ref receiver, false))
+ if (!_recQuery.Resolve(uid, ref receiver, false))
return true;
return receiver.Powered;
/// </summary>
public bool TogglePower(EntityUid uid, bool playSwitchSound = true, ApcPowerReceiverComponent? receiver = null, EntityUid? user = null)
{
- if (!Resolve(uid, ref receiver, false))
+ if (!_recQuery.Resolve(uid, ref receiver, false))
return true;
// it'll save a lot of confusion if 'always powered' means 'always powered'
public abstract class SharedAmbientSoundSystem : EntitySystem
{
+ private EntityQuery<AmbientSoundComponent> _query;
+
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<AmbientSoundComponent, ComponentGetState>(GetCompState);
SubscribeLocalEvent<AmbientSoundComponent, ComponentHandleState>(HandleCompState);
+ _query = GetEntityQuery<AmbientSoundComponent>();
}
public virtual void SetAmbience(EntityUid uid, bool value, AmbientSoundComponent? ambience = null)
{
- if (!Resolve(uid, ref ambience, false) || ambience.Enabled == value)
+ if (!_query.Resolve(uid, ref ambience, false) || ambience.Enabled == value)
return;
ambience.Enabled = value;
public virtual void SetRange(EntityUid uid, float value, AmbientSoundComponent? ambience = null)
{
- if (!Resolve(uid, ref ambience, false) || MathHelper.CloseToPercent(ambience.Range, value))
+ if (!_query.Resolve(uid, ref ambience, false) || MathHelper.CloseToPercent(ambience.Range, value))
return;
ambience.Range = value;
public virtual void SetVolume(EntityUid uid, float value, AmbientSoundComponent? ambience = null)
{
- if (!Resolve(uid, ref ambience, false) || MathHelper.CloseToPercent(ambience.Volume, value))
+ if (!_query.Resolve(uid, ref ambience, false) || MathHelper.CloseToPercent(ambience.Volume, value))
return;
ambience.Volume = value;
public virtual void SetSound(EntityUid uid, SoundSpecifier sound, AmbientSoundComponent? ambience = null)
{
- if (!Resolve(uid, ref ambience, false) || ambience.Sound == sound)
+ if (!_query.Resolve(uid, ref ambience, false) || ambience.Sound == sound)
return;
ambience.Sound = sound;