6
StarHorizon_Public/Content.Shared/_DV/Harpy/HarpyVisualsSystem.cs
2026-01-24 12:49:55 +03:00

42 lines
1.7 KiB
C#

using Content.Shared.Inventory.Events;
// using Content.Shared.Tag; // Frontier
using Content.Shared.Humanoid;
using Content.Shared._NF.Clothing.Components; // Frontier
namespace Content.Shared._DV.Harpy;
public sealed class HarpyVisualsSystem : EntitySystem
{
// [Dependency] private readonly TagSystem _tagSystem = default!; // Frontier
[Dependency] private readonly SharedHumanoidAppearanceSystem _humanoidSystem = default!;
// [ValidatePrototypeId<TagPrototype>] // Frontier
// private const string HarpyWingsTag = "HidesHarpyWings"; // Frontier
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<HarpySingerComponent, DidEquipEvent>(OnDidEquipEvent);
SubscribeLocalEvent<HarpySingerComponent, DidUnequipEvent>(OnDidUnequipEvent);
}
private void OnDidEquipEvent(EntityUid uid, HarpySingerComponent component, DidEquipEvent args)
{
if (args.Slot == "outerClothing" && HasComp<HarpyHideWingsComponent>(args.Equipment)) // Frontier: Swap tag to comp
{
_humanoidSystem.SetLayerVisibility(uid, HumanoidVisualLayers.RArmExtension, false); // Frontier: RArm<RArmExtension
_humanoidSystem.SetLayerVisibility(uid, HumanoidVisualLayers.Tail, false);
}
}
private void OnDidUnequipEvent(EntityUid uid, HarpySingerComponent component, DidUnequipEvent args)
{
if (args.Slot == "outerClothing" && HasComp<HarpyHideWingsComponent>(args.Equipment)) // Frontier: Swap tag to comp
{
_humanoidSystem.SetLayerVisibility(uid, HumanoidVisualLayers.RArmExtension, true); // Frontier: RArm<RArmExtension
_humanoidSystem.SetLayerVisibility(uid, HumanoidVisualLayers.Tail, true);
}
}
}