// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { reader.ReadArrayStart(); var tree = new ArtifactTree(); for (int i = 0; i < tree.slots.Length; i++) { int numSlots = Artifact.maxLevel - i; var slotLevel = tree.slots[i]; reader.ReadArrayStart(); for (int slotIndex = 0; slotIndex < numSlots; slotIndex++) { var artifactSlot = new ArtifactSlot((byte)i); artifactSlot.artifact = Jboy.Json.ReadObject <Artifact>(reader); slotLevel[slotIndex] = artifactSlot; } reader.ReadArrayEnd(); } reader.ReadArrayEnd(); return(tree); }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { var inv = new T(); reader.ReadArrayStart(); for (var i = 0; i < inv.bags.Length; i++) { inv.bags[i] = GenericSerializer.ReadJSONClassInstance <Bag>(reader); } reader.ReadArrayEnd(); return(inv); }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { reader.ReadObjectStart(); reader.ReadPropertyName("r"); var r = (float)reader.ReadNumber(); reader.ReadPropertyName("g"); var g = (float)reader.ReadNumber(); reader.ReadPropertyName("b"); var b = (float)reader.ReadNumber(); reader.ReadPropertyName("a"); var a = (float)reader.ReadNumber(); reader.ReadObjectEnd(); return(new Color(r, g, b, a)); }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { var slot = new ArtifactSlot(); reader.ReadObjectStart(); reader.ReadPropertyName("requiredLevel"); slot.requiredLevel = (byte)reader.ReadNumber(); reader.ReadPropertyName("artifactId"); int itemId = (int)reader.ReadNumber(); if (itemId != -1) { slot.artifact = new Artifact(itemId); } reader.ReadObjectEnd(); return(slot); }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { reader.TryReadPropertyName("serverType"); switch (reader.ReadString()) { case "Arena": return(ServerType.Arena); case "FFA": return(ServerType.FFA); case "Town": return(ServerType.Town); case "World": return(ServerType.World); default: throw new System.ArgumentException("Unknown server type"); } }
static void ReadConfig(string configFile) { string configData = File.ReadAllText(configFile); Jboy.JsonReader reader = new Jboy.JsonReader(configData); reader.ReadObjectStart(); reader.ReadPropertyName("LobbyIP"); LobbyIP = Jboy.Json.ReadObject <string>(reader); reader.ReadPropertyName("LobbyPort"); LobbyPort = Jboy.Json.ReadObject <int>(reader); reader.ReadPropertyName("ProxyIP"); ProxyIP = Jboy.Json.ReadObject <string>(reader); reader.ReadPropertyName("ProxyPort"); ProxyPort = Jboy.Json.ReadObject <int>(reader); reader.ReadObjectEnd(); reader.Close(); }
// Read a new class instance from JSON public static T ReadJSONClassInstance <T>(Jboy.JsonReader reader) where T : new() { T instance = new T(); reader.ReadObjectStart(); string propName; bool success = true; var typeInfo = typeof(T); while (true) { success = reader.TryReadPropertyName(out propName); if (success) { var field = typeInfo.GetField(propName); if (field == null) { LogManager.DB.LogError("Field does not exist: '" + propName + "'"); continue; } if (!field.IsStatic) { field.SetValue(instance, GenericSerializer.ReadJSONValue(reader, field)); } } else { break; } } reader.ReadObjectEnd(); return(instance); }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { if (reader.TryReadNull()) { return(null); } var itemSlot = new ItemSlot(); reader.ReadObjectStart(); // ID reader.ReadPropertyName("item"); itemSlot.item = Jboy.Json.ReadObject <Item>(reader); // Count reader.ReadPropertyName("count"); itemSlot.count = (ulong)reader.ReadNumber(); reader.ReadObjectEnd(); return(itemSlot); }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { if (reader.TryReadNull()) { return(null); } reader.ReadObjectStart(); // ID reader.ReadPropertyName("id"); var itemId = (int)reader.ReadNumber(); var item = ItemFactory.CreateFromId(itemId); // Meta data if (item != null) { item.ReadItemMetaData(reader); } reader.ReadObjectEnd(); return(item); }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { return(GenericSerializer.ReadJSONClassInstance <T>(reader)); }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { return(GenericSerializer.ReadJSONClassInstance <CharacterCustomization>(reader)); }
// Read a single value from JSON public static object ReadJSONValue(Jboy.JsonReader reader, FieldInfo field) { var fieldType = field.FieldType; if (fieldType == typeof(int)) { return((int)(reader.ReadNumber())); } else if (fieldType == typeof(uint)) { return((uint)(reader.ReadNumber())); } else if (fieldType == typeof(long)) { return((long)(reader.ReadNumber())); } else if (fieldType == typeof(byte)) { return((byte)(reader.ReadNumber())); } else if (fieldType == typeof(double)) { return(reader.ReadNumber()); } else if (fieldType == typeof(float)) { return((float)reader.ReadNumber()); } else if (fieldType == typeof(KeyCode)) { return((KeyCode)(reader.ReadNumber())); } else if (fieldType == typeof(string)) { string stringObject; if (reader.TryReadString(out stringObject)) { return(stringObject); } else { reader.ReadNull(); return(null); } } else if (fieldType == typeof(int[])) { return(Jboy.Json.ReadObject <int[]>(reader)); } else if (fieldType == typeof(Color)) { return(ColorSerializer.JsonDeserializer(reader)); } else if (fieldType == typeof(ServerType)) { return(ServerTypeSerializer.JsonDeserializer(reader)); } else if (fieldType == typeof(PlayerQueueStats)) { return(GenericSerializer.ReadJSONClassInstance <PlayerQueueStats>(reader)); } else if (fieldType == typeof(PlayerQueueStats[])) { reader.ReadArrayStart(); PlayerQueueStats[] valArray = new PlayerQueueStats[QueueSettings.queueCount]; for (int i = 0; i < QueueSettings.queueCount; i++) { valArray[i] = GenericSerializer.ReadJSONClassInstance <PlayerQueueStats>(reader); } reader.ReadArrayEnd(); return(valArray); } else if (fieldType == typeof(InputControl[])) { reader.ReadArrayStart(); List <InputControl> valList = new List <InputControl>(); while (true) { try { valList.Add(GenericSerializer.ReadJSONClassInstance <InputControl>(reader)); } catch { break; } } reader.ReadArrayEnd(); return(valList.ToArray()); } else if (fieldType == typeof(Artifact)) { return(Jboy.Json.ReadObject <Artifact>(reader)); } else if (fieldType == typeof(ArtifactSlot)) { return(Jboy.Json.ReadObject <ArtifactSlot>(reader)); } else if (fieldType == typeof(ArtifactTree)) { return(Jboy.Json.ReadObject <ArtifactTree>(reader)); } else if (fieldType == typeof(ArtifactInventory)) { return(Jboy.Json.ReadObject <ArtifactInventory>(reader)); } else if (fieldType == typeof(List <ItemSlot>)) { return(Jboy.Json.ReadObject <List <ItemSlot> >(reader)); } else if (fieldType == typeof(TimeStamp)) { return(Jboy.Json.ReadObject <TimeStamp>(reader)); } else if (fieldType == typeof(SkillBuild)) { return(Jboy.Json.ReadObject <SkillBuild>(reader)); //} else if(fieldType == typeof(WeaponBuild)) { // return Jboy.Json.ReadObject<WeaponBuild>(reader); //} else if(fieldType == typeof(AttunementBuild)) { // return Jboy.Json.ReadObject<AttunementBuild>(reader); } else if (fieldType == typeof(WeaponBuild[])) { return(Jboy.Json.ReadObject <WeaponBuild[]>(reader)); } else if (fieldType == typeof(AttunementBuild[])) { return(Jboy.Json.ReadObject <AttunementBuild[]>(reader)); } else if (fieldType == typeof(Guild)) { return(GenericSerializer.ReadJSONClassInstance <Guild>(reader)); } else if (fieldType == typeof(GuildMember)) { return(GenericSerializer.ReadJSONClassInstance <GuildMember>(reader)); } else if (fieldType == typeof(GuildMember[])) { return(Jboy.Json.ReadObject <GuildMember[]>(reader)); } else if (fieldType == typeof(List <string>)) { return(Jboy.Json.ReadObject <List <string> >(reader)); } else if (fieldType == typeof(List <Friend>)) { return(Jboy.Json.ReadObject <List <Friend> >(reader)); } else if (fieldType == typeof(List <FriendsGroup>)) { return(Jboy.Json.ReadObject <List <FriendsGroup> >(reader)); } else if (fieldType == typeof(Texture2D)) { return(Texture2DSerializer.JsonDeserializer(reader)); } else { LogManager.General.LogError("Unknown field type for GenericSerializer.ReadJSONValue: " + fieldType); return((int)(reader.ReadNumber())); } }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { reader.ReadNull(); return(null); //new Texture2D(64, 64); }
// Reader public static object JsonDeserializer(Jboy.JsonReader reader) { return(ItemSerializer.JsonDeserializer(reader)); }
// ReadItemMetaData public void ReadItemMetaData(Jboy.JsonReader reader) { // TODO: Enchantments }
public void Read(string configFile) { string configData = System.IO.File.ReadAllText(configFile); Jboy.JsonReader reader = new Jboy.JsonReader(configData); try { object propertyName; Jboy.JsonToken token = Jboy.JsonToken.None; if (Jboy.JsonToken.ObjectStart == (token = reader.Read(out propertyName))) { while (Jboy.JsonToken.ObjectEnd != (token = reader.Read(out propertyName))) { if (token != Jboy.JsonToken.PropertyName) { continue; } if (propertyName.Equals("ServerName")) { gameName = Jboy.Json.ReadObject <string>(reader); continue; } if (propertyName.Equals("MasterRoleName")) { masterRoleName = Jboy.Json.ReadObject <string>(reader); continue; } if (propertyName.Equals("Password")) { gamePassword = Jboy.Json.ReadObject <string>(reader); continue; } if (propertyName.Equals("MapName")) { mapName = Jboy.Json.ReadObject <string>(reader); continue; } if (propertyName.Equals("GameMode")) { gameMode = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("GameType")) { gameType = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("MapSeed")) { seedStr = Jboy.Json.ReadObject <string>(reader); continue; } if (propertyName.Equals("TeamNum")) { teamNum = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("NumPerTeam")) { numPerTeam = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("TerrainType")) { terrainType = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("VegetationType")) { vegetationId = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("ClimateType")) { sceneClimate = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("MonsterYes")) { monsterYes = Jboy.Json.ReadObject <bool>(reader); continue; } if (propertyName.Equals("IsPrivate")) { isPrivate = Jboy.Json.ReadObject <bool>(reader); continue; } if (propertyName.Equals("ProxyServer")) { proxyServer = Jboy.Json.ReadObject <bool>(reader); continue; } if (propertyName.Equals("UnlimitedRes")) { unlimitedRes = Jboy.Json.ReadObject <bool>(reader); continue; } if (propertyName.Equals("TerrainHeight")) { terrainHeight = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("MapSize")) { mapSize = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("RiverDensity")) { riverDensity = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("RiverWidth")) { riverWidth = Jboy.Json.ReadObject <int>(reader); continue; } //a0.95 if (propertyName.Equals("PlainHeight")) { plainHeight = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("Flatness")) { flatness = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("BridgeMaxHeight")) { bridgeMaxHeight = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("AICount")) { AICount = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("UseSkillTree")) { useSkillTree = Jboy.Json.ReadObject <bool>(reader); continue; } if (propertyName.Equals("DropDeadPercent")) { dropDeadPercent = Jboy.Json.ReadObject <int>(reader); continue; } if (propertyName.Equals("UID")) { uid = Jboy.Json.ReadObject <string>(reader); continue; } if (propertyName.Equals("ScriptsAvailable")) { scriptsAvailable = Jboy.Json.ReadObject <bool>(reader); continue; } } } } catch (Exception e) { if (LogFilter.logError) { Debug.LogErrorFormat("Read config file failed.\r\n{0}\r\n{1}\r\n{2}", configFile, e.Message, e.StackTrace); } } finally { reader.Close(); } }