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); }
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; }