decouple ItemToggle from PowerCellDraw (#31392)
* remove ItemToggle from PowerCellDraw query * add EntityQuery for resolves, make them all optional * move integration to ToggleCellDraw * add ToggleCellDraw to almost every PowerCellDraw prototype * :trollface: * :trollface: * :trollface: * let it disable on mapinit * set update time on mapinit, make borg power logic consistent now * :trollface: --------- Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
@@ -23,10 +23,14 @@ public sealed class ItemToggleSystem : EntitySystem
|
||||
[Dependency] private readonly SharedPointLightSystem _light = default!;
|
||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||
|
||||
private EntityQuery<ItemToggleComponent> _query;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
_query = GetEntityQuery<ItemToggleComponent>();
|
||||
|
||||
SubscribeLocalEvent<ItemToggleComponent, ComponentStartup>(OnStartup);
|
||||
SubscribeLocalEvent<ItemToggleComponent, MapInitEvent>(OnMapInit);
|
||||
SubscribeLocalEvent<ItemToggleComponent, ItemUnwieldedEvent>(TurnOffOnUnwielded);
|
||||
@@ -69,7 +73,7 @@ public sealed class ItemToggleSystem : EntitySystem
|
||||
/// <returns>Same as <see cref="TrySetActive"/></returns>
|
||||
public bool Toggle(Entity<ItemToggleComponent?> ent, EntityUid? user = null, bool predicted = true)
|
||||
{
|
||||
if (!Resolve(ent, ref ent.Comp))
|
||||
if (!_query.Resolve(ent, ref ent.Comp, false))
|
||||
return false;
|
||||
|
||||
return TrySetActive(ent, !ent.Comp.Activated, user, predicted);
|
||||
@@ -92,7 +96,7 @@ public sealed class ItemToggleSystem : EntitySystem
|
||||
/// </summary>
|
||||
public bool TryActivate(Entity<ItemToggleComponent?> ent, EntityUid? user = null, bool predicted = true)
|
||||
{
|
||||
if (!Resolve(ent, ref ent.Comp))
|
||||
if (!_query.Resolve(ent, ref ent.Comp, false))
|
||||
return false;
|
||||
|
||||
var uid = ent.Owner;
|
||||
@@ -135,7 +139,7 @@ public sealed class ItemToggleSystem : EntitySystem
|
||||
/// </summary>
|
||||
public bool TryDeactivate(Entity<ItemToggleComponent?> ent, EntityUid? user = null, bool predicted = true)
|
||||
{
|
||||
if (!Resolve(ent, ref ent.Comp))
|
||||
if (!_query.Resolve(ent, ref ent.Comp, false))
|
||||
return false;
|
||||
|
||||
var uid = ent.Owner;
|
||||
@@ -230,7 +234,7 @@ public sealed class ItemToggleSystem : EntitySystem
|
||||
|
||||
public bool IsActivated(Entity<ItemToggleComponent?> ent)
|
||||
{
|
||||
if (!Resolve(ent, ref ent.Comp, false))
|
||||
if (!_query.Resolve(ent, ref ent.Comp, false))
|
||||
return true; // assume always activated if no component
|
||||
|
||||
return ent.Comp.Activated;
|
||||
|
||||
Reference in New Issue
Block a user