Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        // 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;
        }
Exemplo n.º 7
0
        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");
            }
        }
Exemplo n.º 8
0
        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);
            }
        }
Exemplo n.º 9
0
        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);
            }
        }
Exemplo n.º 10
0
        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.");
        }
Exemplo n.º 11
0
 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}");
     }
 }
Exemplo n.º 12
0
        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;
            }
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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));
            }
        }
Exemplo n.º 15
0
        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);
            }
        }
Exemplo n.º 16
0
        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;
            }
        }
Exemplo n.º 17
0
        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));
        }
Exemplo n.º 19
0
 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);
     }
 }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
 /// <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());
 }
Exemplo n.º 22
0
        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();
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
0
        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));
        }
Exemplo n.º 25
0
        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);
                }
Exemplo n.º 26
0
        // 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);
            }
        }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 28
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);
        }
Exemplo n.º 29
0
        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));
        }
Exemplo n.º 30
0
 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}");
     }
 }