using Robust.Client.GameObjects; using Content.Shared._Goobstation.Bingle; using Content.Shared.CombatMode; namespace Content.Client._Goobstation.Bingle; /// /// Handles the appearance of bingles. /// public sealed class BingleSystem : EntitySystem { [Dependency] private readonly AppearanceSystem _appearance = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnCombatToggle); // WD EDIT SubscribeLocalEvent(OnAppearanceChange); } /// /// Makes the eyes glow red when combat mode is engaged. /// private void OnCombatToggle(EntityUid uid, BingleComponent component, CombatModeToggledEvent args) // WD EDIT { if (!TryComp(uid, out var sprite)) return; _appearance.OnChangeData(uid, sprite); } public void OnAppearanceChange(EntityUid uid, BingleComponent component, ref AppearanceChangeEvent args) { var sprite = args.Sprite; if (sprite == null) return; if (!TryComp(uid, out var combat)) return; if (!sprite.LayerMapTryGet(BingleVisual.Combat, out var layer)) return; sprite.LayerSetVisible(layer, combat.IsInCombatMode); } }