Beispiel #1
0
    //void ParseBlocks(string[] bloques_str, List<Block> blocks){
    void ParseBlocks(string[] bloques_str, Dictionary <int, Block> blocks)
    {
        Dictionary <int, bool> cur = new Dictionary <int, bool> ();

        foreach (string b in bloques_str)
        {
            string[] bdata = b.Split('#');
            if (bdata.Length == 0 || bdata[0] == "")
            {
                continue;
            }
            int id = d2i(bdata[0]);
            cur[id] = true;
            if (!blocks.ContainsKey(id))
            {
                //if (!blocks.Contains (x => x.id == id)) {
                MakeBlock(id, bdata, blocks);
            }
            else
            {
                //UpdateBlock (id, bdata, blocks.Find (x => x.id == id));
                UpdateBlock(id, bdata, blocks[id]);
            }
        }

        Dictionary <int, Block> .KeyCollection k = blocks.Keys;
        for (int i = k.Count - 1; i >= 0; i--)
        {
            //if (!cur.ContainsKey (blocks [i].id)) {
            if (!cur.ContainsKey(k.ElementAt(i)))
            {
                //ClientEvents.OnBlockExit(blocks [i].id);
                //blocks.RemoveAt (i);
                ClientEvents.OnBlockExit(k.ElementAt(i));
                blocks.Remove(k.ElementAt(i));
            }
        }

        /*foreach (int i in blocks.Keys) {
         *      if (!cur.ContainsKey (i)) {
         *              ClientEvents.OnBlockExit(i);
         *              blocks.Remove(i);
         *      }
         * }*/
    }