using Content.Shared.Chemistry.Reagent; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Chemistry; /// /// This handles the chemistry guidebook and caching it. /// public abstract class SharedChemistryGuideDataSystem : EntitySystem { [Dependency] protected readonly IPrototypeManager PrototypeManager = default!; protected readonly Dictionary Registry = new(); public IReadOnlyDictionary ReagentGuideRegistry => Registry; // Only ran on the server public abstract void ReloadAllReagentPrototypes(); } [Serializable, NetSerializable] public sealed class ReagentGuideRegistryChangedEvent : EntityEventArgs { public ReagentGuideChangeset Changeset; public ReagentGuideRegistryChangedEvent(ReagentGuideChangeset changeset) { Changeset = changeset; } } [Serializable, NetSerializable] public sealed class ReagentGuideChangeset { public Dictionary GuideEntries; public HashSet Removed; public ReagentGuideChangeset(Dictionary guideEntries, HashSet removed) { GuideEntries = guideEntries; Removed = removed; } }