protected override void SaveConfig() => Config.WriteObject(FConfigFile);
void SaveConfig(ConfigData config) => Config.WriteObject(config, true);
protected override void SaveConfig() => Config.WriteObject(config);
protected override void SaveConfig() { Log($"Configuration changes saved to {Name}.json"); Config.WriteObject(_pluginConfig, true); }
protected override void LoadDefaultConfig() { Config.WriteObject(GetDefaultConfig(), true); }
protected override void LoadDefaultConfig() { PrintWarning("Creating a new configuration file ..."); Config.WriteObject(Cfg, true); }
void SaveData() { Config.WriteObject(data); }
protected override void LoadDefaultConfig() => Config.WriteObject(DefaultConfig(), true);
protected override void LoadDefaultConfig() { g_config = new CornuConfig(); Config.WriteObject(g_config, true); Puts("New configuration file created."); }
protected override void SaveConfig() => Config.WriteObject(configData, true);
private bool CreateDefaultConfig() { Config.Clear(); var lootSpawns = Resources.FindObjectsOfTypeAll <LootSpawn>(); var itemModReveals = Resources.FindObjectsOfTypeAll <ItemModReveal>(); var itemModUnwraps = Resources.FindObjectsOfTypeAll <ItemModUnwrap>(); var murderers = Resources.FindObjectsOfTypeAll <NPCMurderer>(); var workbenches = Resources.FindObjectsOfTypeAll <Workbench>(); #if DEBUG var sb = new StringBuilder(); foreach (var reveal in itemModReveals) { var items = new List <ItemAmount>(); var stack = new Stack <LootSpawn>(); stack.Push(reveal.revealList); while (stack.Count > 0) { var lootSpawn = stack.Pop(); if (lootSpawn.subSpawn != null && lootSpawn.subSpawn.Length > 0) { foreach (var entry in lootSpawn.subSpawn) { stack.Push(entry.category); } continue; } if (lootSpawn.items != null) { items.AddRange(lootSpawn.items); } } sb.Clear(); sb.AppendLine(reveal.name); sb.AppendLine("Items:"); foreach (var item in items) { sb.AppendLine($"\t{item.itemDef.shortname}: {item.amount}"); } Puts(sb.ToString()); } Puts("LootContainer: {0} LootSpawn: {1} ItemModReveal: {2}", Resources.FindObjectsOfTypeAll <LootContainer>().Length, lootSpawns.Length, itemModReveals.Length); #endif var caseInsensitiveComparer = new CaseInsensitiveComparer(); Array.Sort(lootSpawns, (a, b) => caseInsensitiveComparer.Compare(a.name, b.name)); Array.Sort(itemModReveals, (a, b) => caseInsensitiveComparer.Compare(a.name, b.name)); Array.Sort(itemModUnwraps, (a, b) => caseInsensitiveComparer.Compare(a.name, b.name)); Array.Sort(murderers, (a, b) => caseInsensitiveComparer.Compare(a.name, b.name)); Array.Sort(workbenches, (a, b) => caseInsensitiveComparer.Compare(a.name, b.name)); var spawnGroupsData = new Dictionary <string, Dictionary <string, LootContainer> >(); var spawnGroups = SpawnHandler.Instance.SpawnGroups; //var spawnGroups = (List<SpawnGroup>)SpawnGroupsField.GetValue(SpawnHandler.Instance); var monuments = Resources.FindObjectsOfTypeAll <MonumentInfo>(); var indexes = GetSpawnGroupIndexes(spawnGroups, monuments); foreach (var spawnGroup in spawnGroups) { var spawnGroupKey = GetSpawnGroupKey(spawnGroup, monuments, indexes); if (spawnGroup.prefabs == null) { continue; } foreach (var entry in spawnGroup.prefabs) { var container = entry.prefab?.Get()?.GetComponent <LootContainer>(); if (container?.lootDefinition == null) { continue; } Dictionary <string, LootContainer> spawnGroupData; if (!spawnGroupsData.TryGetValue(spawnGroupKey, out spawnGroupData)) { spawnGroupsData[spawnGroupKey] = spawnGroupData = new Dictionary <string, LootContainer>(); } spawnGroupData[container.PrefabName] = container; } } var containerData = new Dictionary <string, LootContainer>(); var allPrefabs = GameManifest.Current.pooledStrings.ToList().ConvertAll(p => p.str).Where(p => _findLoot.IsMatch(p)).ToArray(); Array.Sort(allPrefabs, (a, b) => caseInsensitiveComparer.Compare(a, b)); foreach (var strPrefab in allPrefabs) { var container = GameManager.server.FindPrefab(strPrefab)?.GetComponent <LootContainer>(); if (container == null || container.lootDefinition == null && (container.LootSpawnSlots == null || container.LootSpawnSlots.Length <= 0)) { continue; } containerData[strPrefab] = container; } /*foreach (var container in containers) * { * if (container.gameObject.activeInHierarchy || container.GetComponent<SpawnPointInstance>() != null) continue; //skip spawned & spawn groups * containerData[container.PrefabName] = container; * }*/ /*foreach (var workbench in workbenches) * { * Puts("{0} {1} {2}", workbench.name, workbench.isActiveAndEnabled, workbench.gameObject.activeInHierarchy); * }*/ try { Config.Settings = new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, Converters = new List <JsonConverter> { new ItemAmountRangedConverter(), new LootSpawnEntryConverter(), new LootContainerConverter(), new LootSpawnConverter(), new LootSpawnSlotConverter(), new ItemModRevealConverter(), new ItemModUnwrapConverter(), new MurdererConverter(), new WorkbenchConverter(), new StringEnumConverter(), } }; Config.WriteObject(new ExportData { Version = Protocol.network, VersionConfig = VersionConfig, WorldSize = World.Size, WorldSeed = World.Seed, LootContainers = containerData, SpawnGroups = spawnGroupsData.OrderBy(l => l.Key).Distinct().Distinct().ToDictionary(l => l.Key, l => l.Value), ItemModReveals = itemModReveals.Distinct().Distinct().ToDictionary(l => l.name), ItemModUnwraps = itemModUnwraps.Where(l => l.revealList != null).Distinct().Distinct().ToDictionary(l => l.name), Murderers = murderers.Where(l => !l.gameObject.activeInHierarchy).Distinct().Distinct().ToDictionary(l => l.name), Workbenches = workbenches.Where(l => !l.gameObject.activeInHierarchy).Distinct().Distinct().ToDictionary(l => l.name), Categories = lootSpawns.Distinct().Distinct().ToDictionary(l => l.name) }); } catch (Exception e) { Puts("Config save failed: {0}{1}{2}", e.Message, Environment.NewLine, e.StackTrace); return(false); } Puts("Created new config"); return(LoadConfig()); }
protected override void SaveConfig() { Config.WriteObject(_config); }
//////////////////////////////////////////////////////////////////////// /// <summary> /// load the default config for this plugin /// </summary> /// //////////////////////////////////////////////////////////////////////// protected override void LoadDefaultConfig() { Config.WriteObject(ConfigOrDefault(null), true); }
void SaveConfig() => Config.WriteObject(configData, true);
protected override void LoadDefaultConfig() { config = new PluginConfig(); Config.WriteObject(config, true); }