コード例 #1
0
    // 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));
    }
コード例 #2
0
ファイル: ArtifactSlot.cs プロジェクト: whztt07/battleofmages
    // 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);
    }
コード例 #3
0
ファイル: ItemSlot.cs プロジェクト: whztt07/battleofmages
    // 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);
    }
コード例 #4
0
    // 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);
    }
コード例 #5
0
    // 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()));
        }
    }