namespace mp {
    export function _indicatorForPlayer(player: number, direction: number) {
        switch (direction) {
            case CollisionDirection.Top:
                switch (player) {
                    case 1:
                        return img`
                            . . f f f f f f f f f f f f f . .
                            . f 2 2 2 2 2 2 2 2 2 2 2 2 2 f .
                            f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f
                            f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f
                            f 2 2 1 1 1 1 2 2 2 2 1 1 2 2 2 f
                            f 2 2 1 1 2 1 1 2 2 1 1 1 2 2 2 f
                            f 2 2 1 1 2 1 1 2 2 1 1 1 2 2 2 f
                            f 2 2 1 1 1 1 2 2 2 2 1 1 2 2 2 f
                            f 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 f
                            f 2 2 1 1 2 2 2 2 2 1 1 1 1 2 2 f
                            f 2 2 1 1 2 2 2 2 2 1 1 1 1 2 2 f
                            f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f
                            . f 2 2 2 2 2 2 2 2 2 2 2 2 2 f .
                            . . f f f f f 2 2 2 f f f f f . .
                            . . . . . . . f 2 f . . . . . . .
                            . . . . . . . . f . . . . . . . .
                        `;
                    case 2:
                        return img`
                            . . f f f f f f f f f f f f f . .
                            . f 8 8 8 8 8 8 8 8 8 8 8 8 8 f .
                            f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f
                            f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f
                            f 8 8 1 1 1 1 8 8 8 1 1 1 8 8 8 f
                            f 8 8 1 1 8 1 1 8 1 1 8 1 1 8 8 f
                            f 8 8 1 1 8 1 1 8 8 8 8 1 1 8 8 f
                            f 8 8 1 1 1 1 8 8 8 1 1 1 8 8 8 f
                            f 8 8 1 1 8 8 8 8 1 1 8 8 8 8 8 f
                            f 8 8 1 1 8 8 8 8 1 1 1 1 1 8 8 f
                            f 8 8 1 1 8 8 8 8 1 1 1 1 1 8 8 f
                            f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f
                            . f 8 8 8 8 8 8 8 8 8 8 8 8 8 f .
                            . . f f f f f 8 8 8 f f f f f . .
                            . . . . . . . f 8 f . . . . . . .
                            . . . . . . . . f . . . . . . . .
                        `;
                    case 3:
                        return img`
                            . . f f f f f f f f f f f f f . .
                            . f 4 4 4 4 4 4 4 4 4 4 4 4 4 f .
                            f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f
                            f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f
                            f 4 4 1 1 1 1 4 4 4 1 1 1 4 4 4 f
                            f 4 4 1 1 4 1 1 4 1 1 4 1 1 4 4 f
                            f 4 4 1 1 4 1 1 4 4 4 4 1 1 4 4 f
                            f 4 4 1 1 1 1 4 4 4 4 1 1 1 4 4 f
                            f 4 4 1 1 4 4 4 4 4 4 4 1 1 4 4 f
                            f 4 4 1 1 4 4 4 4 1 1 4 1 1 4 4 f
                            f 4 4 1 1 4 4 4 4 4 1 1 1 4 4 4 f
                            f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f
                            . f 4 4 4 4 4 4 4 4 4 4 4 4 4 f .
                            . . f f f f f 4 4 4 f f f f f . .
                            . . . . . . . f 4 f . . . . . . .
                            . . . . . . . . f . . . . . . . .
                        `;
                    case 4:
                        return img`
                            . . f f f f f f f f f f f f f . .
                            . f 6 6 6 6 6 6 6 6 6 6 6 6 6 f .
                            f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
                            f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
                            f 6 6 1 1 1 1 6 6 1 1 6 1 1 6 6 f
                            f 6 6 1 1 6 1 1 6 1 1 6 1 1 6 6 f
                            f 6 6 1 1 6 1 1 6 1 1 6 1 1 6 6 f
                            f 6 6 1 1 1 1 6 6 1 1 1 1 1 6 6 f
                            f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f
                            f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f
                            f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f
                            f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
                            . f 6 6 6 6 6 6 6 6 6 6 6 6 6 f .
                            . . f f f f f 6 6 6 f f f f f . .
                            . . . . . . . f 6 f . . . . . . .
                            . . . . . . . . f . . . . . . . .
                        `;
                }

            case CollisionDirection.Bottom:
                switch (player) {
                    case 1:
                        return img`
                            . . . . . . . . f . . . . . . . .
                            . . . . . . . f 2 f . . . . . . .
                            . . f f f f f 2 2 2 f f f f f . .
                            . f 2 2 2 2 2 2 2 2 2 2 2 2 2 f .
                            f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f
                            f 2 2 1 1 1 1 2 2 2 2 1 1 2 2 2 f
                            f 2 2 1 1 2 1 1 2 2 1 1 1 2 2 2 f
                            f 2 2 1 1 2 1 1 2 2 1 1 1 2 2 2 f
                            f 2 2 1 1 1 1 2 2 2 2 1 1 2 2 2 f
                            f 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 f
                            f 2 2 1 1 2 2 2 2 2 1 1 1 1 2 2 f
                            f 2 2 1 1 2 2 2 2 2 1 1 1 1 2 2 f
                            f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f
                            f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f
                            . f 2 2 2 2 2 2 2 2 2 2 2 2 2 f .
                            . . f f f f f f f f f f f f f . .
                        `;
                    case 2:
                        return img`
                            . . . . . . . . f . . . . . . . .
                            . . . . . . . f 8 f . . . . . . .
                            . . f f f f f 8 8 8 f f f f f . .
                            . f 8 8 8 8 8 8 8 8 8 8 8 8 8 f .
                            f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f
                            f 8 8 1 1 1 1 8 8 8 1 1 1 8 8 8 f
                            f 8 8 1 1 8 1 1 8 1 1 8 1 1 8 8 f
                            f 8 8 1 1 8 1 1 8 8 8 8 1 1 8 8 f
                            f 8 8 1 1 1 1 8 8 8 1 1 1 8 8 8 f
                            f 8 8 1 1 8 8 8 8 1 1 8 8 8 8 8 f
                            f 8 8 1 1 8 8 8 8 1 1 1 1 1 8 8 f
                            f 8 8 1 1 8 8 8 8 1 1 1 1 1 8 8 f
                            f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f
                            f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f
                            . f 8 8 8 8 8 8 8 8 8 8 8 8 8 f .
                            . . f f f f f f f f f f f f f . .
                        `;
                    case 3:
                        return img`
                            . . . . . . . . f . . . . . . . .
                            . . . . . . . f 4 f . . . . . . .
                            . . f f f f f 4 4 4 f f f f f . .
                            . f 4 4 4 4 4 4 4 4 4 4 4 4 4 f .
                            f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f
                            f 4 4 1 1 1 1 4 4 4 1 1 1 4 4 4 f
                            f 4 4 1 1 4 1 1 4 1 1 4 1 1 4 4 f
                            f 4 4 1 1 4 1 1 4 4 4 4 1 1 4 4 f
                            f 4 4 1 1 1 1 4 4 4 4 1 1 1 4 4 f
                            f 4 4 1 1 4 4 4 4 4 4 4 1 1 4 4 f
                            f 4 4 1 1 4 4 4 4 1 1 4 1 1 4 4 f
                            f 4 4 1 1 4 4 4 4 4 1 1 1 4 4 4 f
                            f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f
                            f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f
                            . f 4 4 4 4 4 4 4 4 4 4 4 4 4 f .
                            . . f f f f f f f f f f f f f . .
                        `;
                    case 4:
                        return img`
                            . . . . . . . . f . . . . . . . .
                            . . . . . . . f 6 f . . . . . . .
                            . . f f f f f 6 6 6 f f f f f . .
                            . f 6 6 6 6 6 6 6 6 6 6 6 6 6 f .
                            f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
                            f 6 6 1 1 1 1 6 6 1 1 6 1 1 6 6 f
                            f 6 6 1 1 6 1 1 6 1 1 6 1 1 6 6 f
                            f 6 6 1 1 6 1 1 6 1 1 6 1 1 6 6 f
                            f 6 6 1 1 1 1 6 6 1 1 1 1 1 6 6 f
                            f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f
                            f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f
                            f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f
                            f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
                            f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
                            . f 6 6 6 6 6 6 6 6 6 6 6 6 6 f .
                            . . f f f f f f f f f f f f f . .
                        `;
                }

            case CollisionDirection.Left:
                switch (player) {
                    case 1:
                        return img`
                            . . f f f f f f f f f f f f f . . . .
                            . f 2 2 2 2 2 2 2 2 2 2 2 2 2 f . . .
                            f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f . .
                            f 2 2 1 1 1 1 2 2 2 2 1 1 2 2 2 f . .
                            f 2 2 1 1 2 1 1 2 2 1 1 1 2 2 2 f . .
                            f 2 2 1 1 2 1 1 2 2 1 1 1 2 2 2 2 f .
                            f 2 2 1 1 1 1 2 2 2 2 1 1 2 2 2 2 2 f
                            f 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 2 f .
                            f 2 2 1 1 2 2 2 2 2 1 1 1 1 2 2 f . .
                            f 2 2 1 1 2 2 2 2 2 1 1 1 1 2 2 f . .
                            f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f . .
                            . f 2 2 2 2 2 2 2 2 2 2 2 2 2 f . . .
                            . . f f f f f f f f f f f f f . . . .
                        `;
                    case 2:
                        return img`
                            . . f f f f f f f f f f f f f . . . .
                            . f 8 8 8 8 8 8 8 8 8 8 8 8 8 f . . .
                            f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f . .
                            f 8 8 1 1 1 1 8 8 8 1 1 1 8 8 8 f . .
                            f 8 8 1 1 8 1 1 8 1 1 8 1 1 8 8 f . .
                            f 8 8 1 1 8 1 1 8 8 8 8 1 1 8 8 8 f .
                            f 8 8 1 1 1 1 8 8 8 1 1 1 8 8 8 8 8 f
                            f 8 8 1 1 8 8 8 8 1 1 8 8 8 8 8 8 f .
                            f 8 8 1 1 8 8 8 8 1 1 1 1 1 8 8 f . .
                            f 8 8 1 1 8 8 8 8 1 1 1 1 1 8 8 f . .
                            f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f . .
                            . f 8 8 8 8 8 8 8 8 8 8 8 8 8 f . . .
                            . . f f f f f f f f f f f f f . . . .
                        `;
                    case 3:
                        return img`
                            . . f f f f f f f f f f f f f . . . .
                            . f 4 4 4 4 4 4 4 4 4 4 4 4 4 f . . .
                            f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f . .
                            f 4 4 1 1 1 1 4 4 4 1 1 1 4 4 4 f . .
                            f 4 4 1 1 4 1 1 4 1 1 4 1 1 4 4 f . .
                            f 4 4 1 1 4 1 1 4 4 4 4 1 1 4 4 4 f .
                            f 4 4 1 1 1 1 4 4 4 4 1 1 1 4 4 4 4 f
                            f 4 4 1 1 4 4 4 4 4 4 4 1 1 4 4 4 f .
                            f 4 4 1 1 4 4 4 4 1 1 4 1 1 4 4 f . .
                            f 4 4 1 1 4 4 4 4 4 1 1 1 4 4 4 f . .
                            f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f . .
                            . f 4 4 4 4 4 4 4 4 4 4 4 4 4 f . . .
                            . . f f f f f f f f f f f f f . . . .
                        `;
                    case 4:
                        return img`
                            . . f f f f f f f f f f f f f . . . .
                            . f 6 6 6 6 6 6 6 6 6 6 6 6 6 f . . .
                            f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f . .
                            f 6 6 1 1 1 1 6 6 1 1 6 1 1 6 6 f . .
                            f 6 6 1 1 6 1 1 6 1 1 6 1 1 6 6 f . .
                            f 6 6 1 1 6 1 1 6 1 1 6 1 1 6 6 6 f .
                            f 6 6 1 1 1 1 6 6 1 1 1 1 1 6 6 6 6 f
                            f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 6 f .
                            f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f . .
                            f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f . .
                            f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f . .
                            . f 6 6 6 6 6 6 6 6 6 6 6 6 6 f . . .
                            . . f f f f f f f f f f f f f . . . .
                        `;
                }

            case CollisionDirection.Right:
                switch (player) {
                    case 1:
                        return img`
                            . . . . f f f f f f f f f f f f f . .
                            . . . f 2 2 2 2 2 2 2 2 2 2 2 2 2 f .
                            . . f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f
                            . . f 2 2 1 1 1 1 2 2 2 2 1 1 2 2 2 f
                            . . f 2 2 1 1 2 1 1 2 2 1 1 1 2 2 2 f
                            . f 2 2 2 1 1 2 1 1 2 2 1 1 1 2 2 2 f
                            f 2 2 2 2 1 1 1 1 2 2 2 2 1 1 2 2 2 f
                            . f 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 2 f
                            . . f 2 2 1 1 2 2 2 2 2 1 1 1 1 2 2 f
                            . . f 2 2 1 1 2 2 2 2 2 1 1 1 1 2 2 f
                            . . f 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 f
                            . . . f 2 2 2 2 2 2 2 2 2 2 2 2 2 f .
                            . . . . f f f f f f f f f f f f f . .
                        `;
                    case 2:
                        return img`
                            . . . . f f f f f f f f f f f f f . .
                            . . . f 8 8 8 8 8 8 8 8 8 8 8 8 8 f .
                            . . f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f
                            . . f 8 8 1 1 1 1 8 8 8 1 1 1 8 8 8 f
                            . . f 8 8 1 1 8 1 1 8 1 1 8 1 1 8 8 f
                            . f 8 8 8 1 1 8 1 1 8 8 8 8 1 1 8 8 f
                            f 8 8 8 8 1 1 1 1 8 8 8 1 1 1 8 8 8 f
                            . f 8 8 8 1 1 8 8 8 8 1 1 8 8 8 8 8 f
                            . . f 8 8 1 1 8 8 8 8 1 1 1 1 1 8 8 f
                            . . f 8 8 1 1 8 8 8 8 1 1 1 1 1 8 8 f
                            . . f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 f
                            . . . f 8 8 8 8 8 8 8 8 8 8 8 8 8 f .
                            . . . . f f f f f f f f f f f f f . .
                        `;
                    case 3:
                        return img`
                            . . . . f f f f f f f f f f f f f . .
                            . . . f 4 4 4 4 4 4 4 4 4 4 4 4 4 f .
                            . . f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f
                            . . f 4 4 1 1 1 1 4 4 4 1 1 1 4 4 4 f
                            . . f 4 4 1 1 4 1 1 4 1 1 4 1 1 4 4 f
                            . f 4 4 4 1 1 4 1 1 4 4 4 4 1 1 4 4 f
                            f 4 4 4 4 1 1 1 1 4 4 4 4 1 1 1 4 4 f
                            . f 4 4 4 1 1 4 4 4 4 4 4 4 1 1 4 4 f
                            . . f 4 4 1 1 4 4 4 4 1 1 4 1 1 4 4 f
                            . . f 4 4 1 1 4 4 4 4 4 1 1 1 4 4 4 f
                            . . f 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 f
                            . . . f 4 4 4 4 4 4 4 4 4 4 4 4 4 f .
                            . . . . f f f f f f f f f f f f f . .
                        `;
                    case 4:
                        return img`
                            . . . . f f f f f f f f f f f f f . .
                            . . . f 6 6 6 6 6 6 6 6 6 6 6 6 6 f .
                            . . f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
                            . . f 6 6 1 1 1 1 6 6 1 1 6 1 1 6 6 f
                            . . f 6 6 1 1 6 1 1 6 1 1 6 1 1 6 6 f
                            . f 6 6 6 1 1 6 1 1 6 1 1 6 1 1 6 6 f
                            f 6 6 6 6 1 1 1 1 6 6 1 1 1 1 1 6 6 f
                            . f 6 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f
                            . . f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f
                            . . f 6 6 1 1 6 6 6 6 6 6 6 1 1 6 6 f
                            . . f 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 f
                            . . . f 6 6 6 6 6 6 6 6 6 6 6 6 6 f .
                            . . . . f f f f f f f f f f f f f . .
                        `;
                }
        }

        return undefined;
    }
}
