public void ChangeGameStep(GameLoopStep newStep)
    {
        currentStep = newStep;

        switch (currentStep)
        {
        case GameLoopStep.DIALOGUE:
            inputReader.EnableDialogueInput();
            break;

        case GameLoopStep.EXPLORE:
            inputReader.EnablePlayerInput();
            break;

        case GameLoopStep.INVENTORY:
            inputReader.EnableInventoryInput();
            break;

        case GameLoopStep.MENU:
            inputReader.EnableMenuInput();
            break;

        case GameLoopStep.TRADE:
            // When a player trade, save checkpoint
            CheckpointManager.Instance.UpdateCheckpoint(this.gameObject, Camera.main.transform, CameraAnimationManager.Instance.CurrentStage);

            inputReader.EnableTradeInput();
            break;
        }
    }
 private void OnEnable()
 {
     // Init step
     currentStep = GameLoopStep.EXPLORE;
 }