示例#1
0
 // Writer
 public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
 {
     GenericSerializer.WriteJSONClassInstance <GuildMember>(writer, (GuildMember)instance, null, new HashSet <string>()
     {
         "name"
     });
 }
示例#2
0
    // Writer
    public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
    {
        var fieldFilter = new HashSet <string>()
        {
            "unixTimeStamp",
        };

        GenericSerializer.WriteJSONClassInstance <TimeStamp>(writer, (TimeStamp)instance, fieldFilter);
    }
    // Writer
    public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
    {
        var inv = (T)instance;

        writer.WriteArrayStart();
        for (var i = 0; i < inv.bags.Length; i++)
        {
            GenericSerializer.WriteJSONClassInstance <Bag>(writer, inv.bags[i]);
        }
        writer.WriteArrayEnd();
    }
示例#4
0
    // Writes all fields of a class instance
    public static void WriteJSONClassInstance <T>(Jboy.JsonWriter writer, T instance, HashSet <string> fieldFilter = null, HashSet <string> fieldExclude = null)
    {
        if (instance == null)
        {
            writer.WriteNull();
            return;
        }

        // Type pointer
        Type type = typeof(T);

        // Obtain all fields
        FieldInfo[] fields = type.GetFields();

        // Loop through all fields
        writer.WriteObjectStart();

        foreach (var field in fields)
        {
            if (field.IsStatic)
            {
                continue;
            }

            // Get property name and value
            string name = field.Name;

            if (fieldFilter != null && !fieldFilter.Contains(name))
            {
                continue;
            }

            if (fieldExclude != null && fieldExclude.Contains(name))
            {
                continue;
            }

            object val = field.GetValue(instance);

            //LogManager.General.Log("Writing '" + name + "'"); // with value '" + ((double)val).ToString() + "'");
            //LogManager.General.Log("ValueType " + val.GetType().ToString());
            //LogManager.General.Log("Value " + val.ToString());

            // Write them to the JSON stream
            writer.WritePropertyName(name);
            GenericSerializer.WriteJSONValue(writer, val);
        }

        writer.WriteObjectEnd();
    }
示例#5
0
    // Writer
    public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
    {
        Color col = (Color)instance;

        writer.WriteObjectStart();
        writer.WritePropertyName("r");
        writer.WriteNumber(col.r);
        writer.WritePropertyName("g");
        writer.WriteNumber(col.g);
        writer.WritePropertyName("b");
        writer.WriteNumber(col.b);
        writer.WritePropertyName("a");
        writer.WriteNumber(col.a);
        writer.WriteObjectEnd();
    }
    // Writer
    public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
    {
        writer.WriteNull();

        /*var tex = (Texture2D)instance;
         * writer.WriteObjectStart();
         *
         * writer.WritePropertyName("width");
         * writer.WriteNumber(tex.width);
         *
         * writer.WritePropertyName("height");
         * writer.WriteNumber(tex.height);
         *
         * writer.WritePropertyName("data");
         * Jboy.Json.WriteObject(tex.EncodeToPNG(), writer);
         *
         * writer.WriteObjectEnd();*/
    }
示例#7
0
 // Write a single value in JSON
 public static void WriteJSONValue(Jboy.JsonWriter writer, object val)
 {
     if (val is int || val is KeyCode)
     {
         writer.WriteNumber((double)((int)val));
     }
     else if (val is long)
     {
         writer.WriteNumber((double)((long)val));
     }
     else if (val is double)
     {
         writer.WriteNumber((double)val);
     }
     else
     {
         Jboy.Json.WriteObject(val, writer);
     }
 }
示例#8
0
    // Writer
    public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
    {
        var control = (InputControl)instance;

        if (!control.active)
        {
            return;
        }

        var fieldFilter = new HashSet <string>()
        {
            "id",
            "keyCode",
            "altKeyCode",
            //"gamePadKeyCode",
        };

        GenericSerializer.WriteJSONClassInstance <InputControl>(writer, control, fieldFilter);
    }
示例#9
0
    // Writer
    public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
    {
        writer.WriteArrayStart();

        var tree = (ArtifactTree)instance;

        foreach (var slotLevel in tree.slots)
        {
            writer.WriteArrayStart();

            for (int i = 0; i < slotLevel.Length; i++)
            {
                Jboy.Json.WriteObject(slotLevel[i].artifact, writer);
            }

            writer.WriteArrayEnd();
        }

        writer.WriteArrayEnd();
    }
示例#10
0
    static void CreateConfig(string configFile)
    {
        Jboy.JsonWriter writer = new Jboy.JsonWriter(true, true, 2);
        writer.WriteObjectStart();

        writer.WritePropertyName("LobbyIP");
        Jboy.Json.WriteObject(LobbyIP, writer);

        writer.WritePropertyName("LobbyPort");
        Jboy.Json.WriteObject(LobbyPort, writer);

        writer.WritePropertyName("ProxyIP");
        Jboy.Json.WriteObject(ProxyIP, writer);

        writer.WritePropertyName("ProxyPort");
        Jboy.Json.WriteObject(ProxyPort, writer);

        writer.WriteObjectEnd();

        File.WriteAllText(configFile, writer.ToString());
    }
示例#11
0
    // Writer
    public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
    {
        var slot = (ArtifactSlot)instance;

        writer.WriteObjectStart();

        writer.WritePropertyName("requiredLevel");
        writer.WriteNumber(slot.requiredLevel);

        writer.WritePropertyName("artifactId");
        if (slot.artifact != null)
        {
            writer.WriteNumber(slot.artifact.id);
        }
        else
        {
            writer.WriteNumber(-1);
        }

        writer.WriteObjectEnd();
    }
示例#12
0
    // Writer
    public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
    {
        if (instance == null)
        {
            writer.WriteNull();
            return;
        }

        var item = (Item)instance;

        writer.WriteObjectStart();

        // ID
        writer.WritePropertyName("id");
        writer.WriteNumber(item.id);

        // Meta data
        item.WriteItemMetaData(writer);

        writer.WriteObjectEnd();
    }
示例#13
0
    // Writer
    public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
    {
        if (instance == null)
        {
            writer.WriteNull();
            return;
        }

        var slot = (ItemSlot)instance;

        writer.WriteObjectStart();

        // ID
        writer.WritePropertyName("item");
        Jboy.Json.WriteObject(slot.item, writer);

        // Count
        writer.WritePropertyName("count");
        writer.WriteNumber(slot.count);

        writer.WriteObjectEnd();
    }
示例#14
0
 // Writer
 public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
 {
     GenericSerializer.WriteJSONClassInstance <PlayerQueueStats>(writer, (PlayerQueueStats)instance);
 }
示例#15
0
 // WriteItemMetaData
 public void WriteItemMetaData(Jboy.JsonWriter writer)
 {
     // TODO: Enchantments
 }
示例#16
0
 // Writer
 public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
 {
     GenericSerializer.WriteJSONClassInstance <CharacterCustomization>(writer, (CharacterCustomization)instance);
 }
示例#17
0
 // Writer
 public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
 {
     GenericSerializer.WriteJSONClassInstance <InputSettings>(writer, (InputSettings)instance);
 }
示例#18
0
 // Writer
 public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
 {
     ItemSerializer.JsonSerializer(writer, instance);
 }
示例#19
0
 // Writer
 public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
 {
     writer.TryWritePropertyName("serverType");
     writer.WriteString(((ServerType)instance).ToString());
 }
示例#20
0
 // Writer
 public static void JsonSerializer(Jboy.JsonWriter writer, object instance)
 {
     GenericSerializer.WriteJSONClassInstance <T>(writer, (T)instance);
 }
示例#21
0
    public void Create(string configFile)
    {
        Jboy.JsonWriter writer = new Jboy.JsonWriter(true, true, 8);

        writer.WriteObjectStart();

        writer.WritePropertyName("ServerName");
        Jboy.Json.WriteObject(gameName, writer);
        writer.WritePropertyName("MasterRoleName");
        Jboy.Json.WriteObject(masterRoleName, writer);
        writer.WritePropertyName("Password");
        Jboy.Json.WriteObject(gamePassword, writer);
        writer.WritePropertyName("MapName");
        Jboy.Json.WriteObject(mapName, writer);
        writer.WritePropertyName("GameMode");
        Jboy.Json.WriteObject(gameMode, writer);
        writer.WritePropertyName("GameType");
        Jboy.Json.WriteObject(gameType, writer);
        writer.WritePropertyName("MapSeed");
        Jboy.Json.WriteObject(seedStr, writer);
        writer.WritePropertyName("TeamNum");
        Jboy.Json.WriteObject(teamNum, writer);
        writer.WritePropertyName("NumPerTeam");
        Jboy.Json.WriteObject(numPerTeam, writer);
        writer.WritePropertyName("TerrainType");
        Jboy.Json.WriteObject(terrainType, writer);
        writer.WritePropertyName("VegetationType");
        Jboy.Json.WriteObject(vegetationId, writer);
        writer.WritePropertyName("ClimateType");
        Jboy.Json.WriteObject(sceneClimate, writer);
        writer.WritePropertyName("MonsterYes");
        Jboy.Json.WriteObject(monsterYes, writer);
        writer.WritePropertyName("IsPrivate");
        Jboy.Json.WriteObject(isPrivate, writer);
        writer.WritePropertyName("ProxyServer");
        Jboy.Json.WriteObject(proxyServer, writer);
        writer.WritePropertyName("UnlimitedRes");
        Jboy.Json.WriteObject(unlimitedRes, writer);
        writer.WritePropertyName("TerrainHeight");
        Jboy.Json.WriteObject(terrainHeight, writer);
        writer.WritePropertyName("MapSize");
        Jboy.Json.WriteObject(mapSize, writer);
        writer.WritePropertyName("RiverDensity");
        Jboy.Json.WriteObject(riverDensity, writer);
        writer.WritePropertyName("RiverWidth");
        Jboy.Json.WriteObject(riverWidth, writer);
        //a0.95
        writer.WritePropertyName("PlainHeight");
        Jboy.Json.WriteObject(plainHeight, writer);
        writer.WritePropertyName("Flatness");
        Jboy.Json.WriteObject(flatness, writer);
        writer.WritePropertyName("BridgeMaxHeight");
        Jboy.Json.WriteObject(bridgeMaxHeight, writer);
        writer.WritePropertyName("AICount");
        Jboy.Json.WriteObject(AICount, writer);

        writer.WritePropertyName("UseSkillTree");
        Jboy.Json.WriteObject(useSkillTree, writer);
        writer.WritePropertyName("DropDeadPercent");
        Jboy.Json.WriteObject(dropDeadPercent, writer);
        writer.WritePropertyName("UID");
        Jboy.Json.WriteObject(uid, writer);
        writer.WritePropertyName("ScriptsAvailable");
        Jboy.Json.WriteObject(scriptsAvailable, writer);

        writer.WriteObjectEnd();

        System.IO.File.WriteAllText(configFile, writer.ToString());
    }