protected override void Execute(List <GameEntity> entities)
    {
        foreach (var entity in entities)
        {
            PlayerView       playerView       = _gameContext.globals.value.player.view.value.GetComponent <PlayerView>();
            InteractibleView interactibleView = entity.view.value.GetComponent <InteractibleView>();

            interactibleView.TogglePickedUp(false);
            interactibleView.Throw(playerView.ForwardDirection, entity.dropped.Force * 1000);

            entity.RemoveDropped();
        }
    }
    public void Execute()
    {
        GameEntity[] pickedUpObjects = _pickedUpObjects.GetEntities();

        foreach (var entity in pickedUpObjects)
        {
            InteractibleView interactibleView = entity.view.value.GetComponent <InteractibleView>();

            if (!interactibleView.IsPickedUp)
            {
                interactibleView.TogglePickedUp(true);
                entity.ReplacePickedUp(entity.pickedUp.InitialTime, entity.pickedUp.InitialPosition,
                                       Vector3.Distance(entity.pickedUp.InitialPosition, PlayerView.TargetPick.position));
            }

            float distCovered = (Time.time - entity.pickedUp.InitialTime) * PICK_TRAVEL_TIME;
            float fracJourney = distCovered / entity.pickedUp.TotalTravelDistance;
            interactibleView.transform.position = Vector3.Lerp(entity.pickedUp.InitialPosition, PlayerView.TargetPick.position, fracJourney);
        }
    }