private void ClientUpdateThisPlayer(Client client, PlayerObjectComponent playerObjectComponent) { var playerObjectState = playerObjectComponent.State; playerObjectState.Input = GetCurrentPlayersInput(); var unscaledDeltaMouse = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y")); var deltaMouse = client.GetMouseSensitivityForZoomLevel() * unscaledDeltaMouse; playerObjectState.LookDirAngles = new Vector2( Mathf.Clamp(MathfExtensions.ToSignedAngleDegrees(playerObjectState.LookDirAngles.x - deltaMouse.y), -90, 90), Mathf.Repeat(playerObjectState.LookDirAngles.y + deltaMouse.x, 360) ); if (Input.GetButtonDown("Reload") && playerObjectState.CanReload) { client.Reload(playerObjectComponent); } if (playerObjectState.Input.IsFirePressed) { var wasTriggerJustPulled = Input.GetButtonDown("Fire"); if ( playerObjectState.CanTryToFireWeapon && (wasTriggerJustPulled || playerObjectState.CurrentWeapon.Definition.IsAutomatic) ) { ClientPlayerTryToShoot(client, playerObjectComponent); } } if (Input.GetButtonDown("Throw Grenade") && playerObjectState.CanThrowGrenade) { ClientThrowGrenade(client, playerObjectState); } if (Input.GetButtonDown("Switch Grenade")) { ClientSwitchGrenadeType(client, playerObjectState); } }