using Robust.Shared.GameObjects; using Robust.Shared.IoC; namespace Robust.Client.GameObjects; /// /// An abstract entity system inheritor for systems that deal with appearance data. /// public abstract class VisualizerSystem : EntitySystem where T: Component { [Dependency] protected readonly AppearanceSystem AppearanceSystem = default!; [Dependency] protected readonly AnimationPlayerSystem AnimationSystem = default!; [Dependency] protected readonly SpriteSystem SpriteSystem = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAppearanceChange); } protected virtual void OnAppearanceChange(EntityUid uid, T component, ref AppearanceChangeEvent args) {} }