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); } }