GetTerrainIndex() public method

public GetTerrainIndex ( TerrainTile r ) : byte
r TerrainTile
return byte
Example #1
0
        int[] LoadTiles(TileSet tileSet, MiniYaml y)
        {
            var nodes = y.ToDictionary()["Tiles"].Nodes;

            if (!PickAny)
            {
                var tiles = new int[Size.X * Size.Y];

                for (var i = 0; i < tiles.Length; i++)
                {
                    tiles[i] = -1;
                }

                foreach (var node in nodes)
                {
                    int key;
                    if (!int.TryParse(node.Key, out key) || key < 0 || key >= tiles.Length)
                    {
                        throw new InvalidDataException("Invalid tile key '{0}' on template '{1}' of tileset '{2}'.".F(node.Key, Id, tileSet.Id));
                    }

                    tiles[key] = tileSet.GetTerrainIndex(node.Value.Value);
                }

                return(tiles);
            }
            else
            {
                var tiles = new int[nodes.Count];
                var i     = 0;

                foreach (var node in nodes)
                {
                    int key;
                    if (!int.TryParse(node.Key, out key) || key != i++)
                    {
                        throw new InvalidDataException("Invalid tile key '{0}' on template '{1}' of tileset '{2}'.".F(node.Key, Id, tileSet.Id));
                    }

                    tiles[key] = tileSet.GetTerrainIndex(node.Value.Value);
                }

                return(tiles);
            }
        }
Example #2
0
		int[] LoadTiles(TileSet tileSet, MiniYaml y)
		{
			var nodes = y.ToDictionary()["Tiles"].Nodes;

			if (!PickAny)
			{
				var tiles = new int[Size.X * Size.Y];

				for (var i = 0; i < tiles.Length; i++)
					tiles[i] = -1;

				foreach (var node in nodes)
				{
					int key;
					if (!int.TryParse(node.Key, out key) || key < 0 || key >= tiles.Length)
						throw new InvalidDataException("Invalid tile key '{0}' on template '{1}' of tileset '{2}'.".F(node.Key, Id, tileSet.Id));

					tiles[key] = tileSet.GetTerrainIndex(node.Value.Value);
				}

				return tiles;
			}
			else
			{
				var tiles = new int[nodes.Count];
				var i = 0;

				foreach (var node in nodes)
				{
					int key;
					if (!int.TryParse(node.Key, out key) || key != i++)
						throw new InvalidDataException("Invalid tile key '{0}' on template '{1}' of tileset '{2}'.".F(node.Key, Id, tileSet.Id));

					tiles[key] = tileSet.GetTerrainIndex(node.Value.Value);
				}

				return tiles;
			}
		}
Example #3
0
        static TerrainTileInfo LoadTileInfo(TileSet tileSet, MiniYaml my)
        {
            var tile = new TerrainTileInfo();

            FieldLoader.Load(tile, my);

            // Terrain type must be converted from a string to an index
            tile.GetType().GetField("TerrainType").SetValue(tile, tileSet.GetTerrainIndex(my.Value));

            // Fall back to the terrain-type color if necessary
            var overrideColor = tileSet.TerrainInfo[tile.TerrainType].Color;

            if (tile.LeftColor == default(Color))
            {
                tile.GetType().GetField("LeftColor").SetValue(tile, overrideColor);
            }

            if (tile.RightColor == default(Color))
            {
                tile.GetType().GetField("RightColor").SetValue(tile, overrideColor);
            }

            return(tile);
        }
Example #4
0
        static TerrainTileInfo LoadTileInfo(TileSet tileSet, MiniYaml my)
        {
            var tile = new TerrainTileInfo();
            FieldLoader.Load(tile, my);

            // Terrain type must be converted from a string to an index
            tile.GetType().GetField("TerrainType").SetValue(tile, tileSet.GetTerrainIndex(my.Value));

            // Fall back to the terrain-type color if necessary
            var overrideColor = tileSet.TerrainInfo[tile.TerrainType].Color;
            if (tile.LeftColor == default(Color))
                tile.GetType().GetField("LeftColor").SetValue(tile, overrideColor);

            if (tile.RightColor == default(Color))
                tile.GetType().GetField("RightColor").SetValue(tile, overrideColor);

            return tile;
        }