/// <summary> /// Get texture rectangle for tile type /// </summary> /// <param name="level">Level object tile is bound to</param> /// <param name="tile">Tile needed texture rect for</param> /// <returns>Rectangle used to get texture data from sprite sheet</returns> private Rectangle GetRect(Level level, Tile tile) { int offsetX = 0; int offsetY = 0; // Calculate offset in sprite sheet for the tile type switch (tile.TileType) { case TileType.TILE_TYPE_WALL: { offsetX = 1; } break; case TileType.TILE_TYPE_STORAGE: { offsetX = 4; } break; case TileType.TILE_TYPE_BOX: { offsetX = 3; // Check if the box stands on a storage tile // then change to another type. if (level.IsTrigger((int)tile.PositionX, (int)tile.PositionY)) { offsetX = 2; } } break; case TileType.TILE_TYPE_START: { offsetX = 0; offsetY = 1; } break; case TileType.TILE_TYPE_FLOOR: { offsetX = 0; } break; case TileType.TILE_TYPE_NONE: default: // First sprite is the empty break; } // Create a rectangle for fetching texture data for this tile Rectangle rc = new Rectangle(offsetX * m_tileSpriteWidth, offsetY * m_tileSpriteHeight, m_tileSpriteWidth, m_tileSpriteHeight); return rc; }