SamplyGame.Player.OnUpdate C# (CSharp) Method

OnUpdate() protected method

protected OnUpdate ( float timeStep ) : void
timeStep float
return void
		protected override void OnUpdate(float timeStep)
		{
			if (!IsAlive)
				return;

			var input = Application.Current.Input;
			var aircraft = Node;

			int positionX = 0, positionY = 0;
			bool hasInput = false;
			if (input.NumTouches > 0)
			{
				// move with touches:
				TouchState state = input.GetTouch(0);
				var touchPosition = state.Position;
				positionX = touchPosition.X;
				positionY = touchPosition.Y;
				hasInput = true;
			}
			else if (input.GetMouseButtonDown(MouseButton.Left))
			{
				// move with mouse:
				var mousePos = input.MousePosition;
				positionX = mousePos.X;
				positionY = mousePos.Y;
				hasInput = true;
			}

			if (hasInput)
			{
				Vector3 destWorldPos = ((SamplyGame)Application).Viewport.ScreenToWorldPoint(positionX, positionY, 10);
				destWorldPos.Z = 0;
				aircraft.Translate(destWorldPos - aircraft.WorldPosition, TransformSpace.World);
				foreach (var weapon in Node.Components.OfType<Weapon>())
				{
					weapon.FireAsync(true);
				}
			}

			aircraft.LookAt(new Vector3(0, aircraft.WorldPosition.Y + 10, 10), new Vector3(0, 1, -1), TransformSpace.World);
			aircraft.Rotate(new Quaternion(0, 180, 0), TransformSpace.Local);
		}
	}