AutoCompState + ItemToggle fixes (#23422)

* AutoCompState + ItemToggle fixes

Fix a lot of the comp states that are never actually networked and also cleaned up ItemToggle events a bunch. ItemToggle will still need some future work for lights and sounds.

* Also catch these
This commit is contained in:
metalgearsloth
2024-01-03 17:24:02 +11:00
committed by GitHub
parent 2548156eae
commit 2166958bd0
29 changed files with 160 additions and 294 deletions

View File

@@ -6,6 +6,7 @@ using Content.Shared.Damage;
using Content.Shared.Database;
using Content.Shared.Interaction;
using Content.Shared.Tools.Components;
using ItemToggleComponent = Content.Shared.Item.ItemToggle.Components.ItemToggleComponent;
namespace Content.Server.Damage.Systems
{

View File

@@ -5,6 +5,7 @@ using Content.Shared.Eye.Blinding.Components;
using Content.Shared.Eye.Blinding.Systems;
using Content.Shared.Tools.Components;
using Content.Shared.Item.ItemToggle;
using Content.Shared.Item.ItemToggle.Components;
namespace Content.Server.Eye.Blinding.EyeProtection
{
@@ -18,7 +19,7 @@ namespace Content.Server.Eye.Blinding.EyeProtection
{
base.Initialize();
SubscribeLocalEvent<RequiresEyeProtectionComponent, ToolUseAttemptEvent>(OnUseAttempt);
SubscribeLocalEvent<RequiresEyeProtectionComponent, ItemToggleDoneEvent>(OnWelderToggled);
SubscribeLocalEvent<RequiresEyeProtectionComponent, ItemToggledEvent>(OnWelderToggled);
SubscribeLocalEvent<EyeProtectionComponent, GetEyeProtectionEvent>(OnGetProtection);
SubscribeLocalEvent<EyeProtectionComponent, InventoryRelayedEvent<GetEyeProtectionEvent>>(OnGetRelayedProtection);
@@ -57,7 +58,7 @@ namespace Content.Server.Eye.Blinding.EyeProtection
_statusEffectsSystem.TryAddStatusEffect(args.User, TemporaryBlindnessSystem.BlindingStatusEffect,
statusTimeSpan, false, TemporaryBlindnessSystem.BlindingStatusEffect);
}
private void OnWelderToggled(EntityUid uid, RequiresEyeProtectionComponent component, ItemToggleDoneEvent args)
private void OnWelderToggled(EntityUid uid, RequiresEyeProtectionComponent component, ItemToggledEvent args)
{
component.Toggled = _itemToggle.IsActivated(uid);
}

View File

@@ -2,6 +2,8 @@ using Content.Shared.Item;
using Content.Server.CombatMode.Disarm;
using Content.Server.Kitchen.Components;
using Content.Shared.Item.ItemToggle;
using Content.Shared.Item.ItemToggle.Components;
using ItemToggleComponent = Content.Shared.Item.ItemToggle.Components.ItemToggleComponent;
namespace Content.Server.Item;
@@ -11,10 +13,10 @@ public sealed class ItemToggleSystem : SharedItemToggleSystem
{
base.Initialize();
SubscribeLocalEvent<ItemToggleComponent, ItemToggleDoneEvent>(Toggle);
SubscribeLocalEvent<ItemToggleComponent, ItemToggledEvent>(Toggle);
}
private void Toggle(EntityUid uid, ItemToggleComponent comp, ref ItemToggleDoneEvent args)
private void Toggle(EntityUid uid, ItemToggleComponent comp, ref ItemToggledEvent args)
{
if (args.Activated == true)
{

View File

@@ -78,7 +78,7 @@ namespace Content.Server.Light.EntitySystems
if (TryComp<ItemComponent>(ent, out var item))
{
_item.SetHeldPrefix(ent, "unlit", item);
_item.SetHeldPrefix(ent, "unlit", component: item);
}
break;
@@ -96,7 +96,7 @@ namespace Content.Server.Light.EntitySystems
{
if (TryComp<ItemComponent>(ent, out var item))
{
_item.SetHeldPrefix(ent, "lit", item);
_item.SetHeldPrefix(ent, "lit", component: item);
}
component.CurrentState = ExpendableLightState.Lit;
@@ -163,7 +163,7 @@ namespace Content.Server.Light.EntitySystems
{
if (TryComp<ItemComponent>(uid, out var item))
{
_item.SetHeldPrefix(uid, "unlit", item);
_item.SetHeldPrefix(uid, "unlit", component: item);
}
component.CurrentState = ExpendableLightState.BrandNew;

View File

@@ -107,10 +107,10 @@ namespace Content.Server.Light.EntitySystems
switch (component.CurrentState)
{
case SmokableState.Lit:
_item.SetHeldPrefix(uid, "lit", item);
_item.SetHeldPrefix(uid, "lit", component: item);
break;
default:
_item.SetHeldPrefix(uid, "unlit", item);
_item.SetHeldPrefix(uid, "unlit", component: item);
break;
}
}

View File

@@ -7,6 +7,7 @@ using Content.Shared.Damage.Events;
using Content.Shared.Examine;
using Content.Shared.Item;
using Content.Shared.Item.ItemToggle;
using Content.Shared.Item.ItemToggle.Components;
using Content.Shared.Popups;
using Content.Shared.Stunnable;
@@ -28,7 +29,7 @@ namespace Content.Server.Stunnable.Systems
SubscribeLocalEvent<StunbatonComponent, SolutionContainerChangedEvent>(OnSolutionChange);
SubscribeLocalEvent<StunbatonComponent, StaminaDamageOnHitAttemptEvent>(OnStaminaHitAttempt);
SubscribeLocalEvent<StunbatonComponent, ItemToggleActivateAttemptEvent>(TryTurnOn);
SubscribeLocalEvent<StunbatonComponent, ItemToggleDoneEvent>(ToggleDone);
SubscribeLocalEvent<StunbatonComponent, ItemToggledEvent>(ToggleDone);
}
private void OnStaminaHitAttempt(Entity<StunbatonComponent> entity, ref StaminaDamageOnHitAttemptEvent args)
@@ -58,12 +59,12 @@ namespace Content.Server.Stunnable.Systems
args.PushMarkup(chargeMessage);
}
private void ToggleDone(Entity<StunbatonComponent> entity, ref ItemToggleDoneEvent args)
private void ToggleDone(Entity<StunbatonComponent> entity, ref ItemToggledEvent args)
{
if (!TryComp<ItemComponent>(entity, out var item))
return;
_item.SetHeldPrefix(entity.Owner, args.Activated ? "on" : "off", item);
_item.SetHeldPrefix(entity.Owner, args.Activated ? "on" : "off", component: item);
}
private void TryTurnOn(Entity<StunbatonComponent> entity, ref ItemToggleActivateAttemptEvent args)

View File

@@ -12,6 +12,7 @@ using Content.Shared.Item.ItemToggle;
using Content.Shared.Tools.Components;
using Robust.Shared.GameStates;
using System.Linq;
using Content.Shared.Item.ItemToggle.Components;
namespace Content.Server.Tools
{

View File

@@ -1,20 +0,0 @@
using Content.Shared.Item;
using Content.Shared.Weapons.Reflect;
namespace Content.Server.Weapons.Reflect;
public sealed class ReflectSystem : SharedReflectSystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ReflectComponent, ItemToggleReflectUpdateEvent>(ToggleReflect);
}
private void ToggleReflect(EntityUid uid, ReflectComponent comp, ref ItemToggleReflectUpdateEvent args)
{
comp.Enabled = args.Activated;
Dirty(uid, comp);
}
}