private static void AddEarthTurret(Dictionary <string, ItemTypesServer.ItemTypeRaw> items) { var turretName = EARTHTURRET_NAMESPACE; var turretNode = new JSONNode() .SetAs("icon", GameLoader.ICON_PATH + "EarthTurret.png") .SetAs("isPlaceable", "true") .SetAs("onPlaceAudio", "stonePlace") .SetAs("onRemoveAudio", "stoneDelete") .SetAs("onRemoveAmount", 1) .SetAs("sideall", ColonyBuiltIn.ItemTypes.STONEBRICKS.Name) .SetAs("isSolid", "true") .SetAs("sidex+", EARTHTURRET_NAMESPACE + "sides") .SetAs("sidex-", EARTHTURRET_NAMESPACE + "sides") .SetAs("sidez+", EARTHTURRET_NAMESPACE + "sides") .SetAs("sidez-", EARTHTURRET_NAMESPACE + "sides"); var categories = new JSONNode(NodeType.Array); categories.AddToArray(new JSONNode("machine")); categories.AddToArray(new JSONNode("turret")); categories.AddToArray(new JSONNode("magic")); turretNode.SetAs("categories", categories); var item = new ItemTypesServer.ItemTypeRaw(turretName, turretNode); Turret.TurretTypes[EARTHTURRET_NAMESPACE] = item; items.Add(turretName, item); }
private static void AddCrossbowTurret(Dictionary <string, ItemTypesServer.ItemTypeRaw> items) { var turretName = CROSSBOW_NAMESPACE; var turretNode = new JSONNode() .SetAs("icon", GameLoader.ICON_PATH + "CrossbowTurret.png") .SetAs("isPlaceable", true) .SetAs("onPlaceAudio", "stonePlace") .SetAs("onRemoveAudio", "stoneDelete") .SetAs("sideall", ColonyBuiltIn.ItemTypes.STONEBRICKS.Name) .SetAs("onRemoveAmount", 1) .SetAs("isSolid", true) .SetAs("sidex+", CROSSBOW_NAMESPACE + "sides") .SetAs("sidex-", CROSSBOW_NAMESPACE + "sides") .SetAs("sidez+", CROSSBOW_NAMESPACE + "sides") .SetAs("sidez-", CROSSBOW_NAMESPACE + "sides") .SetAs("npcLimit", 0) .SetAs("maxStackSize", 300); var categories = new JSONNode(NodeType.Array); categories.AddToArray(new JSONNode("machine")); categories.AddToArray(new JSONNode("turret")); turretNode.SetAs("categories", categories); var item = new ItemTypesServer.ItemTypeRaw(turretName, turretNode); TurretTypes[CROSSBOW_NAMESPACE] = item; items.Add(turretName, item); }
public static void Add(Dictionary <string, ItemTypesServer.ItemTypeRaw> items) { var name = GameLoader.NAMESPACE + ".BuildersWand"; var node = new JSONNode(); node["icon"] = new JSONNode(GameLoader.ICON_PATH + "BuildersWand.png"); node["isPlaceable"] = new JSONNode(false); node["maxStackSize"] = new JSONNode(10); Item = new ItemTypesServer.ItemTypeRaw(name, node); items.Add(name, Item); var categories = new JSONNode(NodeType.Array); categories.AddToArray(new JSONNode("tool")); categories.AddToArray(new JSONNode("magic")); node.SetAs("categories", categories); var seclectorName = GameLoader.NAMESPACE + ".AutoLoad.Selector"; var selector = new JSONNode(); selector["icon"] = new JSONNode(GameLoader.ICON_PATH + "Selector.png"); selector["isPlaceable"] = new JSONNode(false); selector["mesh"] = new JSONNode(GameLoader.MESH_PATH + "Selector.ply"); selector["destructionTime"] = new JSONNode(1); selector["sideall"] = new JSONNode("SELF"); selector["onRemove"] = new JSONNode(NodeType.Array); Selector = new ItemTypesServer.ItemTypeRaw(seclectorName, selector); items.Add(seclectorName, Selector); }
private static void AddMatchlockTurret(Dictionary <string, ItemTypesServer.ItemTypeRaw> items) { var turretName = MATCHLOCK_NAMESPACE; var turretNode = new JSONNode() .SetAs("icon", GameLoader.ICON_PATH + "MatchlockTurret.png") .SetAs("isPlaceable", true) .SetAs("onPlaceAudio", "stonePlace") .SetAs("onRemoveAudio", "stoneDelete") .SetAs("sideall", "stonebricks") .SetAs("onRemoveAmount", 1) .SetAs("isSolid", true) .SetAs("sidex+", MATCHLOCK_NAMESPACE + "sides") .SetAs("sidex-", MATCHLOCK_NAMESPACE + "sides") .SetAs("sidez+", MATCHLOCK_NAMESPACE + "sides") .SetAs("sidez-", MATCHLOCK_NAMESPACE + "sides") .SetAs("npcLimit", 0); var categories = new JSONNode(NodeType.Array); categories.AddToArray(new JSONNode("machine")); categories.AddToArray(new JSONNode("turret")); turretNode.SetAs("categories", categories); var item = new ItemTypesServer.ItemTypeRaw(turretName, turretNode); TurretTypes[MATCHLOCK] = item; items.Add(turretName, item); }
public static void AddTeleportPad(Dictionary <string, ItemTypesServer.ItemTypeRaw> items) { var TeleportPadName = GameLoader.NAMESPACE + ".TeleportPad"; var TeleportPadNode = new JSONNode(); TeleportPadNode["icon"] = new JSONNode(GameLoader.ICON_PATH + "TeleportPad.png"); TeleportPadNode["isPlaceable"] = new JSONNode(true); TeleportPadNode.SetAs("onRemoveAmount", 1); TeleportPadNode.SetAs("onPlaceAudio", "stonePlace"); TeleportPadNode.SetAs("onRemoveAudio", "stoneDelete"); TeleportPadNode.SetAs("isSolid", false); TeleportPadNode.SetAs("sideall", "SELF"); TeleportPadNode.SetAs("mesh", GameLoader.MESH_PATH + "TeleportPad.obj"); var categories = new JSONNode(NodeType.Array); categories.AddToArray(new JSONNode("machine")); TeleportPadNode.SetAs("categories", categories); var TeleportPadCollidersNode = new JSONNode(); var TeleportPadBoxesNode = new JSONNode(); var TeleportPadBoxesMinNode = new JSONNode(NodeType.Array); TeleportPadBoxesMinNode.AddToArray(new JSONNode(-0.5)); TeleportPadBoxesMinNode.AddToArray(new JSONNode(-0.5)); TeleportPadBoxesMinNode.AddToArray(new JSONNode(-0.5)); var TeleportPadBoxesMaxNode = new JSONNode(NodeType.Array); TeleportPadBoxesMaxNode.AddToArray(new JSONNode(0.5)); TeleportPadBoxesMaxNode.AddToArray(new JSONNode(-0.3)); TeleportPadBoxesMaxNode.AddToArray(new JSONNode(0.5)); TeleportPadBoxesNode.SetAs("min", TeleportPadBoxesMinNode); TeleportPadBoxesNode.SetAs("max", TeleportPadBoxesMaxNode); TeleportPadCollidersNode.SetAs("boxes", TeleportPadBoxesNode); TeleportPadNode.SetAs("Colliders", TeleportPadCollidersNode); var TeleportPadCustomNode = new JSONNode(); TeleportPadCustomNode.SetAs("useEmissiveMap", true); var torchNode = new JSONNode(); var aTorchnode = new JSONNode(); aTorchnode.SetAs("color", "#236B94"); aTorchnode.SetAs("intensity", 8); aTorchnode.SetAs("range", 6); aTorchnode.SetAs("volume", 0.5); torchNode.SetAs("a", aTorchnode); TeleportPadCustomNode.SetAs("torches", torchNode); TeleportPadNode.SetAs("customData", TeleportPadCustomNode); Item = new ItemTypesServer.ItemTypeRaw(TeleportPadName, TeleportPadNode); items.Add(TeleportPadName, Item); }
// Save config to JSON file public static void Save() { Log.Write($"Saving {CONFIG_FILE}"); JSONNode configJson = new JSONNode(); JSONNode playersJson = new JSONNode(NodeType.Array); foreach (KeyValuePair <Players.Player, List <Players.Player> > kvp in friendlyPlayers) { JSONNode playerJson = new JSONNode(); Players.Player owner = kvp.Key; playerJson.SetAs("owner", owner.ID.steamID); JSONNode recordsJson = new JSONNode(NodeType.Array); foreach (Players.Player friend in kvp.Value) { JSONNode friendJson = new JSONNode(); friendJson.SetAs(friend.ID.steamID); recordsJson.AddToArray(friendJson); } playerJson.SetAs("friendly", recordsJson); playersJson.AddToArray(playerJson); } configJson.SetAs("players", playersJson); try { JSON.Serialize(ConfigFilePath, configJson); } catch (Exception e) { Log.Write($"Error saving {CONFIG_FILE}: {e.Message}"); } return; }
public static void initialise() { loadNPCData(); baseXP = ConfigManager.getConfigInt("jobs.baseXP"); maxLevel = ConfigManager.getConfigInt("jobs.maxLevel"); XPMultiplier = ConfigManager.getConfigFloat("jobs.xpMultiplier"); EfficiencyPerLevel = ConfigManager.getConfigFloat("jobs.efficiencyPerLevel"); Utilities.WriteLog(String.Format("NPC Config: baseXP: {0}, maxLevel: {1}, xpMultiplier: {2}, efficiencyPerLevel: {3}", baseXP, maxLevel, XPMultiplier, EfficiencyPerLevel)); JSONNode array; if (Pipliz.JSON.JSON.Deserialize("gamedata/mods/colonyplusplus/npcnames.json", out array, false)) { NPCNameList = array; Utilities.WriteLog("Loaded NPC Names List"); } else { JSONNode j = new JSONNode(NodeType.Array); j.SetAs <string>("Dave"); NPCNameList.AddToArray(j); Utilities.WriteLog("Failed to load NPC Names List - assumed Dave"); } }
public static void OnSavingColony(Colony c, JSONNode n) { try { lock (Objectives) { if (Objectives.ContainsKey(c)) { if (n.HasChild(GameInitializer.NAMESPACE + ".Objectives")) { n.RemoveChild(GameInitializer.NAMESPACE + ".Objectives"); } var objectiveNode = new JSONNode(NodeType.Array); foreach (var node in Objectives[c]) { foreach (var catNode in node.Value) { objectiveNode.AddToArray(catNode.Value.ToJsonNode()); } } n[GameInitializer.NAMESPACE + ".Objectives"] = objectiveNode; } } } catch (Exception ex) { APILogger.LogError(ex); } }
public static void OnSavingPlayer(JSONNode n, Players.Player p) { if (_playerStates.ContainsKey(p)) { var node = new JSONNode(); var armorNode = new JSONNode(); var flagsPlaced = new JSONNode(NodeType.Array); foreach (var armor in _playerStates[p].Armor) { armorNode.SetAs(armor.Key.ToString(), armor.Value.ToJsonNode()); } foreach (var flag in _playerStates[p].FlagsPlaced) { flagsPlaced.AddToArray((JSONNode)flag); } node.SetAs("Armor", armorNode); node.SetAs("Weapon", _playerStates[p].Weapon.ToJsonNode()); node.SetAs("FlagsPlaced", flagsPlaced); node.SetAs("Difficulty", _playerStates[p].DifficultyStr); n.SetAs(GameLoader.NAMESPACE + ".PlayerState", node); } }
private static void SaveHomes() { Log.Write("Saving homes..."); string jsonFilePath = "./gamedata/savegames/" + ServerManager.WorldName + "/homes.json"; if (File.Exists(jsonFilePath)) { File.Delete(jsonFilePath); } JSONNode homesJSON = new JSONNode(NodeType.Array); foreach (var key in homes.Keys) { JSONNode playerJSON = new JSONNode(); JSONNode playerHomesJSON = new JSONNode(NodeType.Array); foreach (var n in homes[key].Keys) { UnityEngine.Vector3Int v = homes[key][n]; JSONNode homeEntryJSON = new JSONNode().SetAs("x", v.x).SetAs("y", v.y).SetAs("z", v.z).SetAs("n", n); playerHomesJSON.AddToArray(homeEntryJSON); } playerJSON.SetAs("i", key.ToString()); playerJSON.SetAs("h", playerHomesJSON); homesJSON.AddToArray(playerJSON); } JSON.Serialize(jsonFilePath, homesJSON); Log.Write("Saved homes."); }
public static void Save() { try { var jsonFileNode = new JSONNode(); jsonFileNode.SetAs("NextNpcID", NextNpcID); jsonFileNode.SetAs("NotifyKingdomPermission", NotifyKingdomPermission); jsonFileNode.SetAs("NotifyLootboxPermission", NotifyLootboxPermission); jsonFileNode.SetAs("spawner", KingdomSpawner.GetJson()); jsonFileNode.SetAs("loot", Lootbox.GetJson()); JSONNode jsonKingdoms = new JSONNode(NodeType.Array); try { KingdomsLock.EnterReadLock(); foreach (NpcKingdom kingdom in Kingdoms) { jsonKingdoms.AddToArray(kingdom.GetJson()); } } finally { if (KingdomsLock.IsReadLockHeld) { KingdomsLock.ExitReadLock(); } } jsonFileNode.SetAs("kingdoms", jsonKingdoms); JSON.Serialize(JsonFilePath, jsonFileNode, 3); Log.Write($"Saved {Count} kingdoms to json"); } catch (Exception exception) { Log.WriteError($"Exception while saving kingdoms; {exception.Message}"); } }
public static void OnSavingPlayer(JSONNode n, Players.Player p) { if (_gatePositions.ContainsKey(p)) { if (n.HasChild(GameLoader.NAMESPACE + ".Gates")) { n.RemoveChild(GameLoader.NAMESPACE + ".Gates"); } var gateNode = new JSONNode(NodeType.Array); foreach (var pos in _gatePositions[p]) { if (pos.Value.State == GatePosition.MovingOpen) { pos.Value.State = GatePosition.Open; } if (pos.Value.State == GatePosition.MovingClosed) { pos.Value.State = GatePosition.Closed; } var node = new JSONNode() .SetAs("pos", (JSONNode)pos.Key) .SetAs("state", pos.Value.ToJsonNode()); gateNode.AddToArray(node); } n[GameLoader.NAMESPACE + ".Gates"] = gateNode; } }
public static void SaveSigns() { if (File.Exists(signFile)) { File.Delete(signFile); } if (signs.Count == 0) { return; } JSONNode json = new JSONNode(NodeType.Array); foreach (Vector3Int pos in signs.Keys) { Sign sign = signs[pos]; JSONNode jsonSign = new JSONNode(NodeType.Object); jsonSign.SetAs("position", (JSONNode)pos); jsonSign.SetAs("owner", sign.owner.ToString()); jsonSign.SetAs("text", sign.text); json.AddToArray(jsonSign); } JSON.Serialize(signFile, json, 2); }
public void SaveTeams() { try { File.Delete(jsonFilePath); if (teams.Count == 0) { Log.Write("<color=lime>No teams to save</color>"); return; } JSONNode json = new JSONNode(NodeType.Array); foreach (Team team in teams) { json.AddToArray(team.GetSaveJSON()); } JSON.Serialize(jsonFilePath, json, 2); } catch (System.Exception e) { Log.Write(string.Format("<color=orange>Error Saving teams:</color>\n{0}", e.Message)); } }
internal static void Save() { if (PowerManager.IsEnabled()) { string saveloc = ""; JSONNode parent; parent = new JSONNode(NodeType.Array); saveloc = NewColonyAPI.Helpers.Utilities.GetWorldJSONPath("portals.json"); foreach (var portal in portals) { JSONNode child = new JSONNode(NodeType.Object); child.SetAs("id", portal.Key); child.SetAs("key", portal.Value.teleportcode); child.SetAs("location", NewColonyAPI.Helpers.Utilities.Vector3IntToNode(portal.Value.location)); parent.AddToArray(child); } JSON.Serialize(saveloc, parent); parent = new JSONNode(NodeType.Array); saveloc = NewColonyAPI.Helpers.Utilities.GetWorldJSONPath("recallinfo.json"); foreach (var pos in lastpos) { JSONNode child = new JSONNode(NodeType.Object); child.SetAs("id", pos.Key.ID.ToString()); child.SetAs("location", pos.Value.ToJSON()); parent.AddToArray(child); } JSON.Serialize(saveloc, parent); } }
public static void OnSavingPlayer(JSONNode n, Players.Player p) { if (Knight.Knights.ContainsKey(p)) { if (n.HasChild(GameLoader.NAMESPACE + ".Knights")) { n.RemoveChild(GameLoader.NAMESPACE + ".Knights"); } var knightsNode = new JSONNode(NodeType.Array); foreach (var knight in Knight.Knights[p]) { var knightNode = new JSONNode() .SetAs(nameof(knight.PatrolType), knight.PatrolType); var patrolPoints = new JSONNode(NodeType.Array); foreach (var point in knight.PatrolPoints) { patrolPoints.AddToArray((JSONNode)point); } knightNode.SetAs(nameof(knight.PatrolPoints), patrolPoints); knightsNode.AddToArray(knightNode); } n[GameLoader.NAMESPACE + ".Knights"] = knightsNode; } }
public static void AddPatrolTool(Dictionary <string, ItemTypesServer.ItemTypeRaw> items) { var patrolToolName = GameLoader.NAMESPACE + ".PatrolTool"; var patrolToolNode = new JSONNode(); patrolToolNode["icon"] = new JSONNode(GameLoader.ICON_PATH + "KnightPatrolTool.png"); patrolToolNode["isPlaceable"] = new JSONNode(false); var categories = new JSONNode(NodeType.Array); categories.AddToArray(new JSONNode("job")); patrolToolNode.SetAs("categories", categories); Item = new ItemTypesServer.ItemTypeRaw(patrolToolName, patrolToolNode); items.Add(patrolToolName, Item); var patrolFlagName = GameLoader.NAMESPACE + ".PatrolFlag"; var patrolFlagNode = new JSONNode(); patrolFlagNode["icon"] = new JSONNode(GameLoader.ICON_PATH + "PatrolFlagItem.png"); patrolFlagNode["isPlaceable"] = new JSONNode(false); patrolFlagNode.SetAs("onRemoveAmount", 0); patrolFlagNode.SetAs("isSolid", false); patrolFlagNode.SetAs("sideall", "SELF"); patrolFlagNode.SetAs("mesh", GameLoader.MESH_PATH + "PatrolFlag.obj"); var patrolFlagCategories = new JSONNode(NodeType.Array); patrolFlagCategories.AddToArray(new JSONNode("job")); patrolFlagNode.SetAs("categories", patrolFlagCategories); PatrolFlag = new ItemTypesServer.ItemTypeRaw(patrolFlagName, patrolFlagNode); items.Add(patrolFlagName, PatrolFlag); }
public static void generateTypes() { ServerLog.LogAsyncMessage(new LogMessage("Begining " + NAME + " generation", LogType.Log)); using (StreamWriter outputFile = new StreamWriter(System.IO.Path.Combine(GenerateTypeConfig.MOD_FOLDER, "Log.txt"), true)) { outputFile.WriteLine("Begining " + NAME + " generation"); } JSONNode list = new JSONNode(NodeType.Array); if (GenerateTypeConfig.DecorTypes.TryGetValue(NAME, out List <DecorType> blockTypes)) { foreach (var currentType in blockTypes) { //ServerLog.LogAsyncMessage(new LogMessage("Found parent " + currentType.type, LogType.Log)); //ServerLog.LogAsyncMessage(new LogMessage("Found texture " + currentType.texture, LogType.Log)); var typeName = GenerateTypeConfig.TYPEPREFIX + NAME + "." + currentType.type; ServerLog.LogAsyncMessage(new LogMessage("Generating type " + typeName, LogType.Log)); using (StreamWriter outputFile = new StreamWriter(System.IO.Path.Combine(GenerateTypeConfig.MOD_FOLDER, "Log.txt"), true)) { outputFile.WriteLine("Generating type " + typeName); } var Typesbase = new TypeSpecs(); Typesbase.baseType.categories.Add(currentType.type); Typesbase.typeName = typeName; Typesbase.baseType.sideall = currentType.texture; list.AddToArray(Typesbase.JsonSerialize()); } } ItemTypesServer.BlockRotator.Patches.AddPatch(new ItemTypesServer.BlockRotator.BlockGeneratePatch(GenerateTypeConfig.MOD_FOLDER, -99999, list)); }
private static void SaveBatteriesData() { try { string jSONPath = GetJSONPath("batterydata"); if (batteries.Count == 0) { File.Delete(jSONPath); } else { JSONNode rootnode = new JSONNode(NodeType.Array); foreach (Vector3Int pos in batteries.Keys) { Battery battery = batteries[pos]; JSONNode child = new JSONNode(NodeType.Object); child.SetAs("pos", Helpers.Utilities.Vector3IntToNode(pos)); child.SetAs("name", battery.Name); child.SetAs("power", battery.GetPower()); child.SetAs("maxpower", battery.GetMaxPower()); rootnode.AddToArray(child); } JSON.Serialize(jSONPath, rootnode); } } catch (Exception exception) { Helpers.Logging.WriteLog(NewColonyAPIEntry.ModName, "Exception in saving all Battery Data:" + exception.Message, Helpers.Logging.LogType.Issue); } }
public static void Add(Dictionary <string, ItemTypesServer.ItemTypeRaw> items) { var name = GameLoader.NAMESPACE + ".Void"; var node = new JSONNode(); node["icon"] = new JSONNode(GameLoader.ICON_PATH + "void.png"); node["isPlaceable"] = new JSONNode(false); var categories = new JSONNode(NodeType.Array); categories.AddToArray(new JSONNode("ingredient")); categories.AddToArray(new JSONNode("magic")); node.SetAs("categories", categories); Item = new ItemTypesServer.ItemTypeRaw(name, node); items.Add(name, Item); }
/// <summary> /// Called to save this specific block /// </summary> public virtual void SaveBlock(IGrowableBlock block) { if (SaveArray == null) { SaveArray = new JSONNode(NodeType.Array); SaveArray.SetArrayCapacity(BlockCountToSave); BlockCountToSave = 0; // reset capacity for next autosave/quit } SaveArray.AddToArray(block.GetJSON()); }
public static void Save() { var diffs = new JSONNode(NodeType.Array); foreach (var diff in GameDifficulty.GameDifficulties.Values) { diffs.AddToArray(diff.ToJson()); } CSModConfiguration.SettingsRoot.SetAs("GameDifficulties", diffs); CSModConfiguration.Save(); }
public static void Save() { if (travelPaths.Count == 0) { return; } JSONNode JsonWaypoints = new JSONNode(NodeType.Array); foreach (var Waypoint in travelPaths) { JsonWaypoints.AddToArray(new JSONNode().SetAs("source", (JSONNode)Waypoint.Key).SetAs("target", (JSONNode)Waypoint.Value)); } JSON.Serialize(ConfigFilepath, JsonWaypoints, 1); }
public override JSONNode GetJSON() { JSONNode jsonTodos = new JSONNode(NodeType.Array); foreach (BlueprintTodoBlock block in Todoblocks) { jsonTodos.AddToArray(block.GetJSON()); } return(base.GetJSON() .SetAs("inventory", BlockInventory.GetJSON()) .SetAs("shouldTakeItems", ShouldTakeItems) .SetAs("fullname", Fullname) .SetAs("todoblocks", jsonTodos)); }
public static void Initialize() { Enabled = Configuration.ConfigManager.GetConfigBooleanOrDefault(NewColonyAPIEntry.ModName, "npcs.enabled", true); if (Enabled) { NPCDataList = new Dictionary <int, NPCData>(); foreach (var info in NPCDataList) { Helpers.Logging.WriteLog(NewColonyAPIEntry.ModName, info.Key.ToString(), Helpers.Logging.LogType.Info); } Aging = Configuration.ConfigManager.GetConfigBooleanOrDefault(NewColonyAPIEntry.ModName, "npcs.aging", false); Silent = Configuration.ConfigManager.GetConfigBooleanOrDefault(NewColonyAPIEntry.ModName, "npcs.silent", true); baseXP = Configuration.ConfigManager.GetConfigIntOrDefault(NewColonyAPIEntry.ModName, "npcs.baseXP", 25); maxLevel = Configuration.ConfigManager.GetConfigIntOrDefault(NewColonyAPIEntry.ModName, "npcs.maxLevel", 5); XPMultiplier = Configuration.ConfigManager.GetConfigFloatOrDefault(NewColonyAPIEntry.ModName, "npcs.xpMultiplier", 2); EfficiencyPerLevel = Configuration.ConfigManager.GetConfigFloatOrDefault(NewColonyAPIEntry.ModName, "npcs.efficiencyPerLevel", 0.2f); if (maxLevel > 50) { maxLevel = 50; } if (((float)maxLevel * EfficiencyPerLevel) > MaxEfficiency) { Helpers.Logging.WriteLog(NewColonyAPIEntry.ModName, "Lowering EfficiencyPerLevel to be under 50%!", Helpers.Logging.LogType.Loading); while (maxLevel * EfficiencyPerLevel >= MaxEfficiency) { EfficiencyPerLevel = (float)Math.Round((EfficiencyPerLevel - 0.01f) * 100f) / 100f; } Helpers.Logging.WriteLog(NewColonyAPIEntry.ModName, "Finished lowering EfficiencyPerLevel to be under 50%!", Helpers.Logging.LogType.Loading); } //Helpers.Utilities.WriteLog("New Colony API", String.Format("NPC Config: baseXP: {0}, maxLevel: {1}, xpMultiplier: {2}, efficiencyPerLevel: {3}", baseXP, maxLevel, XPMultiplier, EfficiencyPerLevel), Helpers.Utilities.LogType.Info); if (JSON.Deserialize(Helpers.Utilities.MultiCombine(NewColonyAPIEntry.ModSettingsDirectory, "npcmalenames.json"), out JSONNode malearray, false)) { NPCMaleNameList = malearray; Helpers.Logging.WriteLog(NewColonyAPIEntry.ModName, "Loaded NPC Male Names List " + NPCMaleNameList.ChildCount, Helpers.Logging.LogType.Loading); } else { JSONNode j = new JSONNode(NodeType.Array); j.SetAs <string>("Dave"); NPCMaleNameList.AddToArray(j); Helpers.Logging.WriteLog(NewColonyAPIEntry.ModName, "Failed to load NPC Male Names List - assumed Dave", Helpers.Logging.LogType.Issue); } if (JSON.Deserialize(Helpers.Utilities.MultiCombine(NewColonyAPIEntry.ModSettingsDirectory, "npcfemalenames.json"), out JSONNode femalearray, false)) { NPCFemaleNameList = femalearray; Helpers.Logging.WriteLog("New Colony API", "Loaded NPC Female Names List " + NPCFemaleNameList.ChildCount, Helpers.Logging.LogType.Loading); }
// Saving the crop tracker public static void SaveJSON() { try { string jSONPath = GetJSONPath(); ColonyAPI.Helpers.Utilities.MakeDirectoriesIfNeeded(jSONPath); if (ChunkDataList.Count == 0) { File.Delete(jSONPath); } else { // make a JSON node JSONNode rootnode = new JSONNode(NodeType.Array); // then go through stuff foreach (Data.ChunkData c in ChunkDataList.Values) { //if(c.getSpawn()) { continue; } // build a child node JSONNode child = new JSONNode(NodeType.Object); JSONNode history = new JSONNode(NodeType.Array); foreach (NetworkID n in c.ownerHistory) { JSONNode j = new JSONNode(NodeType.Object); j.SetAs("id", n.steamID.m_SteamID); history.AddToArray(j); } // Create the JSON child.SetAs("location", (JSONNode)c.location); child.SetAs("chunkID", ColonyAPI.Managers.WorldManager.XZPositionToString(c.location)); child.SetAs("owned", c.hasOwner()); child.SetAs("playerID", c.getOwner().steamID.m_SteamID); child.SetAs("ownerHistory", history); rootnode.AddToArray(child); } Pipliz.JSON.JSON.Serialize(jSONPath, rootnode); } } catch (Exception exception2) { ColonyAPI.Helpers.Utilities.WriteLog("ColonyPlusPlus-Utilities", "Exception in saving all Owned Chunks:" + exception2.Message); } }
public static void SaveSimpleListToJson <T>(string file, List <T> list) { if (!Directory.Exists(file.Substring(0, file.LastIndexOf('/')))) { Directory.CreateDirectory(file.Substring(0, file.LastIndexOf('/'))); } JSONNode saveNode = new JSONNode(NodeType.Array); foreach (var item in list) { saveNode.AddToArray(item.JsonSerialize()); } JSON.Serialize(file, saveNode, 0); }
public JSONNode GetSaveJSON() { JSONNode json = new JSONNode(NodeType.Object); json.SetAs("fake_playerID", fake_playerID); JSONNode players = new JSONNode(NodeType.Array); foreach (NetworkID nID in playersOnTeam) { players.AddToArray(new JSONNode(nID.ToString())); } json.SetAs("players", players); return(json); }
public static void AddItemTypes(Dictionary<string, ItemTypesServer.ItemTypeRaw> itemTypes) { var item = new JSONNode() .SetAs("icon", GameLoader.ICON_PATH + "AdvancedCraftingTable.png") .SetAs("onPlaceAudio", "woodPlace") .SetAs("onRemoveAudio", "woodDeleteLight") .SetAs("sideall", "planks") .SetAs("sidey+", GameLoader.NAMESPACE + "AdvancedCraftingTableTop") .SetAs("npcLimit", 0); var categories = new JSONNode(NodeType.Array); categories.AddToArray(new JSONNode("job")); item.SetAs("categories", categories); itemTypes.Add(JOB_ITEM_KEY, new ItemTypesServer.ItemTypeRaw(JOB_ITEM_KEY, item)); }
static void Save() { try { JsonAnnouncements.SetAs("welcomeMessage", welcomeMessage); JsonAnnouncements.SetAs("intervalSeconds", IntervalSeconds); JSONNode JsonMessages = new JSONNode(NodeType.Array); foreach (var msg in Messages) { JsonMessages.AddToArray((JSONNode)msg); } JsonAnnouncements.SetAs("messages", JsonMessages); JSON.Serialize(ConfigFilepath, JsonAnnouncements, 3); } catch (Exception exception) { Log.WriteError($"Exception while saving announcements; {exception.Message}"); } }