private static MapTileSet DeserializeMapTileSet(BinaryReader Reader)
        {
            MapTileSet tileSet = new MapTileSet();
            int        Count   = DeserializeLength(Reader);
            Dictionary <Guid, Guid> destroyedReferences = new Dictionary <Guid, Guid>();

            for (int i = 0; i < Count; i++)
            {
                MapVisualObject tile = DeserializeMapObject(Reader, destroyedReferences) as MapVisualObject;
                if (tile != null)
                {
                    tileSet.Add(tile);
                }
            }

            foreach (KeyValuePair <Guid, Guid> reference in destroyedReferences)
            {
                MapVisualObject tileSource = GetTile(reference.Key, tileSet);
                MapVisualObject tileTarget = GetTile(reference.Value, tileSet);

                //if ((tileSource is MapWall) && (tileTarget is MapWall))
                //    (tileSource as MapWall).DestroyedWall = tileTarget as MapWall;

                if ((tileSource is MapActiveObject) && (tileTarget is MapActiveObject))
                {
                    (tileSource as MapActiveObject).DestroyedActiveObject = tileTarget as MapActiveObject;
                }
            }

            return(tileSet);
        }
Esempio n. 2
0
        static internal MapTileSet TileSetFromFlowSquares(FlowTileSet squares)
        {
            var result = new MapTileSet();

            foreach (FlowTile fs in squares)
            {
                result.Add(Refs.m.TileByLoc(fs.loc));
            }

            return(result);
        }
        private static MapTileSet DeserializeMapTileSet(BinaryReader Reader)
        {
            MapTileSet tileSet = new MapTileSet();
            int Count = DeserializeLength(Reader);
            Dictionary<Guid, Guid> destroyedReferences = new Dictionary<Guid, Guid>();

            for (int i = 0; i < Count; i++)
            {
                MapVisualObject tile = DeserializeMapObject(Reader, destroyedReferences) as MapVisualObject;
                if (tile != null)
                    tileSet.Add(tile);
            }

            foreach (KeyValuePair<Guid, Guid> reference in destroyedReferences)
            {
                MapVisualObject tileSource = GetTile(reference.Key, tileSet);
                MapVisualObject tileTarget = GetTile(reference.Value, tileSet);

                //if ((tileSource is MapWall) && (tileTarget is MapWall))
                //    (tileSource as MapWall).DestroyedWall = tileTarget as MapWall;

                if ((tileSource is MapActiveObject) && (tileTarget is MapActiveObject))
                    (tileSource as MapActiveObject).DestroyedActiveObject = tileTarget as MapActiveObject;
            }

            return tileSet;
        }