コード例 #1
0
        public LayerTileSaveData(Layer layer)
        {
            Tiles = new Dictionary<TileSaveData, TilePositionCloud>();
            HashSet<TileSaveData> tilesProcessedSoFar = new HashSet<TileSaveData>();
            var tileGrid = layer.Tiles;

            foreach (var gridCellWithTile in tileGrid.EnumerateItemsWithGridCells())
            {
                TileSaveData saveData = new TileSaveData(gridCellWithTile.Item3);
                saveData.TileSaveID = id;

                if (!Tiles.ContainsKey(saveData))
                {
                    Tiles.Add(saveData, new TilePositionCloud() { TileSaveID = id });
                    id++;
                }

                Vector2 storedPosition = new Vector2(gridCellWithTile.Item1 * GameServices.GameObjectSize.X, gridCellWithTile.Item2 * GameServices.GameObjectSize.Y);
                if (gridCellWithTile.Item3.Position != storedPosition) { System.Diagnostics.Debugger.Break(); }

                Tiles[saveData].CellNumbers.Add(new Point(x: gridCellWithTile.Item1, y: gridCellWithTile.Item2));
            }
        }
コード例 #2
0
ファイル: Serializer003.cs プロジェクト: smldev/smlimitless
		internal List<TileSaveData> DeserializeTileSaveData(JArray tileSaveObjects)
		{
			var result = new List<TileSaveData>();

			foreach (var entry in tileSaveObjects)
			{
				TileSaveData saveData = new TileSaveData();

				saveData.TileSaveID = (int)entry["id"];
				saveData.TypeName = (string)entry["typeName"];
				saveData.SolidSides = (int)entry["solidSides"];
				saveData.Name = (string)entry["name"];
				saveData.GraphicsResourceName = (string)entry["graphicsResource"];
				saveData.InitialState = (string)entry["state"];
				saveData.CustomData = entry["customData"];

				result.Add(saveData);
			}

			return result;
		}