void StartLevel()
    {
        if (currentLevel >= gameConfiguration.Levels.Count)
        {
            GameComplete();
            return;
        }

        levelGenerator.Generate(gameConfiguration.Levels[currentLevel]);

        PlacePlayer();
        energyHandler.RefillEnergy();
        energyHandler.OnEnergyDepleeted += GameOver;

        playerInputHandler.EnablePlayerInput();
        gameStarted       = true;
        BoxesCollected    = 0;
        CurrentLevelBoxes = levelGenerator.SpawnedBoxes;
        OnGameStart?.Invoke();
    }