public byte[] SerializeEnemyData(EnemyData e_data, Enemy[] enemies_available)
    {
        //Create an array of the arrays you wanna serialize together
        byte[][] arrays = new byte[e_data.current_enemies.Length + 2][];
        arrays[0] = BitConverter.GetBytes(e_data.in_combat);
        arrays[1] = BitConverter.GetBytes(e_data.current_enemies.Length);
        for (int i = 0; i < e_data.current_enemies.Length; i++)
        {
            if (e_data.current_enemies[i] != null)
            {
                for (int o = 0; o < enemies_available.Length; o++)
                {
                    if (enemies_available[o] == e_data.current_enemies[i])
                    {
                        arrays[i + 2] = BitConverter.GetBytes(o);
                    }
                }
            }
            else
            {
                arrays[i + 2] = BitConverter.GetBytes((int)(-1));
            }
        }

        Debug.Log("There was " + e_data.current_enemies.Length + " enemies.");
        Debug.Log("Serialized " + arrays.GetLength(0) + " arrays.");
        //Concatenate the arrays
        return(ArrayConcatenation.MergeArrays(arrays));
    }
    static byte[] SerializeMapCell(MapCellData d)
    {
        //Create an array of the arrays you wanna serialize together
        byte[][] arrays = new byte[5][];
        arrays[0] = BitConverter.GetBytes(d.has_silo);
        arrays[1] = BitConverter.GetBytes(d.is_nuked);
        arrays[2] = BitConverter.GetBytes(d.owner_id);
        //arrays[3] = BitConverter.GetBytes(d.type);
        //get bytes for neighbours
        List <byte[]> neighbour_bytes = new List <byte[]>();

        //if(d.adjacent_land != null)
        //for (int i = 0; i < d.adjacent_land.Length; i++)
        //{
        //byte[][] coordinates_byte = new byte[2][];
        //coordinates_byte[0] = BitConverter.GetBytes(d.adjacent_land[i].x);
        //coordinates_byte[1] = BitConverter.GetBytes(d.adjacent_land[i].y);
        //neighbour_bytes.Add(ArrayConcatenation.MergeArrays(coordinates_byte));
        //}
        //else {
        byte[] no_neighbours = new byte[1];
        no_neighbours[0] = (byte)0;
        neighbour_bytes.Add(no_neighbours);
        //}
        byte[] neighbour_array = ArrayConcatenation.MergeArrays(neighbour_bytes.ToArray());
        arrays[4] = neighbour_array;
        //Debug.Log("Serialized "+arrays.GetLength(0) + " arrays.");
        //Concatenate the arrays
        byte[] bytes = ArrayConcatenation.MergeArrays(arrays);
        Debug.Log(arrays.Length + " array length + bytes length" + bytes.Length);
        return(bytes);
    }
 public static byte[] SerializeGameData(GameData g_data)
 {
     byte[][] arrays = new byte[3][];
     arrays[0] = BitConverter.GetBytes(g_data.is_match_started);
     arrays[1] = BitConverter.GetBytes(g_data.players_in_room);
     arrays[2] = BitConverter.GetBytes(g_data.votes_to_start);
     return(ArrayConcatenation.MergeArrays(arrays));
 }
 //[SerializeField] public EnemyData serialize_event;
 //[SerializeField] public EnemyData deserialized_event
 #region MatchManager
 public static byte[] SerializeMatchData(MatchData m_data)
 {
     byte[][] arrays = new byte[3][];
     arrays[0] = BitConverter.GetBytes(m_data.is_war_on);
     arrays[1] = BitConverter.GetBytes(m_data.can_match_end);
     arrays[2] = BitConverter.GetBytes(m_data.is_match_over);
     return(ArrayConcatenation.MergeArrays(arrays));
 }
 public byte[] SerializeEventData(EventData e_data)
 {
     //Create an array of the arrays you wanna serialize together
     byte[][] arrays = new byte[2][];
     arrays[0] = BitConverter.GetBytes(e_data.current_event_id);
     arrays[1] = BitConverter.GetBytes(e_data.is_in_event);
     Debug.Log("Serialized " + arrays.GetLength(0) + " arrays.");
     //Concatenate the arrays
     return(ArrayConcatenation.MergeArrays(arrays));
 }
 public byte[] SerializeGameData(GameData g_data)
 {
     //Create an array of the arrays you wanna serialize together
     byte[][] arrays = new byte[2][];
     arrays[0] = BitConverter.GetBytes(g_data.is_adventure_started);
     arrays[1] = BitConverter.GetBytes(g_data.players_in_room);
     Debug.Log("Serialized " + arrays.GetLength(0) + " arrays.");
     //Concatenate the arrays
     return(ArrayConcatenation.MergeArrays(arrays));
 }
    public static byte[] SerializeMapSeed(int[] seed)
    {
        List <byte[]> bytes = new List <byte[]>();

        for (int i = 0; i < seed.Length; i++)
        {
            bytes.Add(BitConverter.GetBytes(seed[i]));
        }
        byte[] final_cell_bytes = ArrayConcatenation.MergeArrays(bytes.ToArray());
        return(final_cell_bytes);
    }
예제 #8
0
 public byte[] SerializePlayerData(PlayerData p_data)
 {
     //Create an array of the arrays you wanna serialize together
     byte[][] arrays = new byte[4][];
     arrays[0] = System.Text.Encoding.UTF8.GetBytes(p_data.player_name);
     arrays[1] = BitConverter.GetBytes(p_data.character_id);
     arrays[2] = BitConverter.GetBytes(p_data.is_playing);
     arrays[3] = BitConverter.GetBytes(p_data.is_attacking);
     Debug.Log("Serialized " + arrays.GetLength(0) + " arrays.");
     //Concatenate the arrays
     return(ArrayConcatenation.MergeArrays(arrays));
 }
    public static byte[] SerializePlayerData(PlayerData p_data)
    {
        //Create an array of the arrays you wanna serialize together
        byte[][] arrays = new byte[8][];
        arrays[0] = System.Text.Encoding.UTF8.GetBytes(p_data.player_name);
        arrays[1] = BitConverter.GetBytes(p_data.photon_view_id);
        arrays[2] = BitConverter.GetBytes(p_data.player_id);
        arrays[3] = BitConverter.GetBytes(p_data.is_playing);
        arrays[4] = BitConverter.GetBytes(p_data.is_placing);
        arrays[5] = BitConverter.GetBytes(p_data.left_silos);

        byte[][] color_bytes = new byte[4][];
        color_bytes[0] = BitConverter.GetBytes(p_data.player_color.r);
        color_bytes[1] = BitConverter.GetBytes(p_data.player_color.g);
        color_bytes[2] = BitConverter.GetBytes(p_data.player_color.b);
        color_bytes[3] = BitConverter.GetBytes(p_data.player_color.a);
        arrays[6]      = ArrayConcatenation.MergeArrays(color_bytes);

        arrays[7] = BitConverter.GetBytes(p_data.left_missiles);

        return(ArrayConcatenation.MergeArrays(arrays));
    }