GameEntities.PlayerIntellect.GameControlsManager_GameControlsEvent C# (CSharp) Method

GameControlsManager_GameControlsEvent() static private method

static private GameControlsManager_GameControlsEvent ( GameControlsEventData e ) : void
e GameControlsEventData
return void
        void GameControlsManager_GameControlsEvent( GameControlsEventData e )
        {
            //GameControlsKeyDownEventData
            {
                GameControlsKeyDownEventData evt = e as GameControlsKeyDownEventData;
                if( evt != null )
                {
                    if( GetControlKeyStrength( evt.ControlKey ) != evt.Strength )
                    {
                        ControlKeyPress( evt.ControlKey, evt.Strength );

                        //send to server
                        if( EntitySystemWorld.Instance.IsClientOnly() )
                        {
                            //send turnToPosition before fire
                            if( evt.ControlKey == GameControlKeys.Fire1 ||
                                evt.ControlKey == GameControlKeys.Fire2 )
                            {
                                if( Instance == this )//send message only to this player
                                {
                                    Vec3 turnToPosition;
                                    if( GetTurnToPosition( out turnToPosition ) )
                                        Client_SendTurnToPositionToServer( turnToPosition );
                                }
                            }

                            Client_SendControlKeyPressToServer( evt.ControlKey, evt.Strength );
                        }
                    }

                    return;
                }
            }

            //GameControlsKeyUpEventData
            {
                GameControlsKeyUpEventData evt = e as GameControlsKeyUpEventData;
                if( evt != null )
                {
                    if( IsControlKeyPressed( evt.ControlKey ) )
                    {
                        ControlKeyRelease( evt.ControlKey );

                        //send to server
                        if( EntitySystemWorld.Instance.IsClientOnly() )
                            Client_SendControlKeyReleaseToServer( evt.ControlKey );
                    }

                    return;
                }
            }

            //TPS arcade specific (camera observe)
            bool tpsArcade = GameMap.Instance != null &&
                GameMap.Instance.GameType == GameMap.GameTypes.TPSArcade;

            //GameControlsMouseMoveEventData
            if( !tpsArcade )
            {
                GameControlsMouseMoveEventData evt = e as GameControlsMouseMoveEventData;
                if( evt != null )
                {
                    Vec2 sens = GameControlsManager.Instance.MouseSensitivity * 2;

                    lookDirection.Horizontal -= evt.MouseOffset.X * sens.X;
                    lookDirection.Vertical -= evt.MouseOffset.Y * sens.Y;

                    float limit = fpsCamera ? .1f : MathFunctions.PI / 8;
                    if( lookDirection.Vertical < -( MathFunctions.PI / 2 - limit ) )
                        lookDirection.Vertical = -( MathFunctions.PI / 2 - limit );
                    if( lookDirection.Vertical > ( MathFunctions.PI / 2 - limit ) )
                        lookDirection.Vertical = ( MathFunctions.PI / 2 - limit );

                    return;
                }
            }

            //GameControlsTickEventData
            if( !tpsArcade )
            {
                GameControlsTickEventData evt = e as GameControlsTickEventData;
                if( evt != null )
                {
                    Vec2 sensitivity = GameControlsManager.Instance.JoystickAxesSensitivity * 2;

                    Vec2 offset = Vec2.Zero;
                    offset.X -= GetControlKeyStrength( GameControlKeys.LookLeft );
                    offset.X += GetControlKeyStrength( GameControlKeys.LookRight );
                    offset.Y += GetControlKeyStrength( GameControlKeys.LookUp );
                    offset.Y -= GetControlKeyStrength( GameControlKeys.LookDown );

                    //Turret specific
                    if( ControlledObject != null && ControlledObject is Turret )
                    {
                        offset.X -= GetControlKeyStrength( GameControlKeys.Left );
                        offset.X += GetControlKeyStrength( GameControlKeys.Right );
                        offset.Y += GetControlKeyStrength( GameControlKeys.Forward );
                        offset.Y -= GetControlKeyStrength( GameControlKeys.Backward );
                    }

                    offset *= evt.Delta * sensitivity;

                    lookDirection.Horizontal -= offset.X;
                    lookDirection.Vertical += offset.Y;

                    float limit = fpsCamera ? .1f : MathFunctions.PI / 8;
                    if( lookDirection.Vertical < -( MathFunctions.PI / 2 - limit ) )
                        lookDirection.Vertical = -( MathFunctions.PI / 2 - limit );
                    if( lookDirection.Vertical > ( MathFunctions.PI / 2 - limit ) )
                        lookDirection.Vertical = ( MathFunctions.PI / 2 - limit );

                    return;
                }
            }

            //..
        }