public static TileObjectData GetTileData(int type, int style, int alternate = 0)
{
if (type < 0 || type >= TileObjectData._data.Count)
throw new ArgumentOutOfRangeException("Function called with a bad type argument");
if (style < 0)
throw new ArgumentOutOfRangeException("Function called with a bad style argument");
TileObjectData tileObjectData1 = TileObjectData._data[type];
if (tileObjectData1 == null)
return (TileObjectData)null;
List<TileObjectData> subTiles = tileObjectData1.SubTiles;
if (subTiles != null && style < subTiles.Count)
{
TileObjectData tileObjectData2 = subTiles[style];
if (tileObjectData2 != null)
tileObjectData1 = tileObjectData2;
}
--alternate;
List<TileObjectData> alternates = tileObjectData1.Alternates;
if (alternates != null && alternate >= 0 && alternate < alternates.Count)
{
TileObjectData tileObjectData2 = alternates[alternate];
if (tileObjectData2 != null)
tileObjectData1 = tileObjectData2;
}
return tileObjectData1;
}