public void respawn() {
        SpawningPosition spawningPosition = Game.getMap().getSpawnPosition();
        ActorSet actors = Game.getActors();

        if (shipId == null) {
            ship = getShip();
        } else {
            Actor a = actors.findById(shipId);
            if (a instanceof PlayerShip) {
                status = PlayerStatus.ALIVE;
            } else {
                ship = getShip();
            }
        }
        if (ship == null)
            ship = getNewShip();



        if (ship == null)
            throw new RuntimeException("WTF");

        ship.setPosition(spawningPosition.getPosition());
        ship.setRotation(spawningPosition.getOrientation());

        if (ship == null)
            throw new RuntimeException("WTF");

        if (actors.add(ship)) {

            if (ship == null)
                throw new RuntimeException("WTF");

            shipId = ship.getId();
            status = PlayerStatus.ALIVE;
        } else {
            throw new RuntimeException("Unable to add new player ship to ActorSet");
        }
    }