public MouseControlService(
            Transform player,
            MovementEventRepository movementEventRepository,
            DirectionHelper directionHelper,
            PickupEventRepository pickupEventRepository,
            InteractWithNpcEventRepository interactWithNpcEventRepository,
            NewTextEventRepository newTextEventRepository,
            FinishDialogueEventRepository finishDialogueEventRepository,
            InteractWithSceneTransferEventRepository interactWithSceneTransferEventRepository,
            StartDialogueEventRepository startDialogueEventRepository,
            PlayerConfig config)
        {
            this.movementEventRepository = movementEventRepository ?? throw new ArgumentNullException(nameof(movementEventRepository));
            this.directionHelper         = directionHelper ?? throw new ArgumentNullException(nameof(directionHelper));
            this.pickupEventRepository   = pickupEventRepository ?? throw new ArgumentNullException(nameof(pickupEventRepository));
            this.player = player;
            this.newTextEventRepository                   = newTextEventRepository ?? throw new ArgumentNullException(nameof(newTextEventRepository));
            this.finishDialogueEventRepository            = finishDialogueEventRepository ?? throw new ArgumentNullException(nameof(finishDialogueEventRepository));
            this.interactWithSceneTransferEventRepository = interactWithSceneTransferEventRepository ?? throw new ArgumentNullException(nameof(interactWithSceneTransferEventRepository));
            this.startDialogueEventRepository             = startDialogueEventRepository;
            this.interactWithNpcEventRepository           = interactWithNpcEventRepository ?? throw new ArgumentNullException(nameof(interactWithNpcEventRepository));
            this.config = config ?? throw new ArgumentNullException(nameof(config));

            previousPointClicked  = new Vector3(0, 0, 0);
            previousClickDateTime = DateTime.UtcNow;
        }
 public DisplayTextService(NewTextEventRepository newTextEventRepository,
                           DialogueModel dialogueModel, DialogueContainerMarker dialogueContainerMarker,
                           NameRepository nameRepository)
 {
     this.newTextEventRepository  = newTextEventRepository ?? throw new ArgumentNullException(nameof(newTextEventRepository));
     this.dialogueContainerMarker = dialogueContainerMarker ?? throw new ArgumentNullException(nameof(dialogueContainerMarker));
     this.dialogueModel           = dialogueModel ?? throw new ArgumentNullException(nameof(dialogueModel));
     this.nameRepository          = nameRepository ?? throw new ArgumentNullException(nameof(nameRepository));
 }
 public DisplayDialogueService(DialogueRepository dialogueRepository, NewTextEventRepository newTextEventRepository, DialogueModel dialogueModel)
 {
     this.dialogueRepository     = dialogueRepository ?? throw new ArgumentNullException(nameof(dialogueRepository));
     this.newTextEventRepository = newTextEventRepository ?? throw new ArgumentNullException(nameof(newTextEventRepository));
     this.dialogueModel          = dialogueModel ?? throw new ArgumentNullException(nameof(dialogueModel));
 }