protected override void BeforePack() { CharacterDropConfigs = ConfigurationManager.CharacterDropConfigs; CharacterDropLists = ConfigurationManager.CharacterDropLists; Log.LogDebug($"Packaged CharacterDrop configurations: {ConfigurationManager.CharacterDropConfigs?.Subsections?.Count ?? 0}"); Log.LogDebug($"Packaged CharacterDrop lists: {ConfigurationManager.CharacterDropLists?.Subsections?.Count ?? 0}"); }
public static void MergeInto(this CharacterDropListConfigurationFile source, CharacterDropListConfigurationFile target) { foreach (var sourceMob in source.Subsections) { if (target.Subsections.ContainsKey(sourceMob.Key)) { var targetMob = target.Subsections[sourceMob.Key]; foreach (var sourceItem in sourceMob.Value.Subsections) { if (targetMob.Subsections.ContainsKey(sourceItem.Key)) { Log.LogWarning($"Overlapping drop configs for {sourceItem.Value.SectionKey}, overriding existing."); } targetMob.Subsections[sourceItem.Key] = sourceItem.Value; } } else { target.Subsections[sourceMob.Key] = sourceMob.Value; } } }