private void OnPrototypeReload(PrototypesReloadedEventArgs args) { if (!args.ByType.TryGetValue(typeof(AlertLevelPrototype), out var alertPrototypes) || !alertPrototypes.Modified.TryGetValue(DefaultAlertLevelSet, out var alertObject) || alertObject is not AlertLevelPrototype alerts) { return; } foreach (var comp in EntityQuery <AlertLevelComponent>()) { comp.AlertLevels = alerts; if (!comp.AlertLevels.Levels.ContainsKey(comp.CurrentLevel)) { var defaultLevel = comp.AlertLevels.DefaultLevel; if (string.IsNullOrEmpty(defaultLevel)) { defaultLevel = comp.AlertLevels.Levels.Keys.First(); } SetLevel(comp.Owner, defaultLevel, true, true, true); } } RaiseLocalEvent(new AlertLevelPrototypeReloadedEvent()); }
private void OnReload(PrototypesReloadedEventArgs obj) { _parallax.UnloadParallax(Fallback); _parallax.LoadDefaultParallax(); foreach (var comp in EntityQuery <ParallaxComponent>(true)) { _parallax.UnloadParallax(comp.Parallax); _parallax.LoadParallaxByName(comp.Parallax); } }
/// <summary> /// Updates the reaction cache when the prototypes are reloaded. /// </summary> /// <param name="eventArgs">The set of modified prototypes.</param> private void OnPrototypesReloaded(PrototypesReloadedEventArgs eventArgs) { if (!eventArgs.ByType.TryGetValue(typeof(ReactionPrototype), out var set)) { return; } foreach (var(reactant, cache) in _reactions) { cache.RemoveAll((reaction) => set.Modified.ContainsKey(reaction.ID)); if (cache.Count == 0) { _reactions.Remove(reactant); } } foreach (var prototype in set.Modified.Values) { CacheReaction((ReactionPrototype)prototype); } }