internal void Initialize()
        {
            if (IsInitialized)
            {
                throw new InvalidOperationException();
            }
            IsInitialized = true;

        #if PROFILING
            this._performance_timer.Start();
        #endif

            Values = new CameraValueMap(this);
            Stack  = new CameraStack(this);
            Cull   = new CameraCull(this);
            Hide   = new CameraHideHelper(this);

            BaseHead      = new CameraResult();
            BaseRoot      = new CameraResult();
            BaseResult    = new CameraResult();
            Offset1Result = new CameraResult();
            InputResult   = new CameraResult();
            Offset2Result = new CameraResult();
            FinalResult   = new CameraResult();
            TempResult    = new CameraResult();
        }
        private bool CalculateEnabled(CameraUpdate update)
        {
            var tkeyCode = Settings.Instance.ToggleHotkey;

            if (tkeyCode > 0 && Input.IsPressed((VirtualKeys)tkeyCode))
            {
                if (!HadKey)
                {
                    HadKey = true;
                    SetWantState(IsEnabled ? WantStates.DisabledFromHotkey : WantStates.EnabledFromHotkey);
                }
            }
            else
            {
                HadKey = false;
            }

            var rkeyCode = Settings.Instance.ReloadHotkey;

            if (rkeyCode > 0 && Input.IsPressed((VirtualKeys)rkeyCode))
            {
                Settings.Instance.Load();
                Values = new CameraValueMap(this);
            }

            update.Values.WantEnabled.Update(Plugin.Time, IsEnabled);
            update.Values.WantDisabled.Update(Plugin.Time, IsEnabled);

            if (update.Values.WantDisabled.CurrentValue > 0.0 || update.Values.WantEnabled.CurrentValue <= 0.0)
            {
                return(false);
            }

            switch (update.GameCameraState.Id)
            {
            case TESCameraStates.Free:
            case TESCameraStates.FirstPerson:
            case TESCameraStates.TweenMenu:
            case TESCameraStates.AutoVanity:
                return(false);

            case TESCameraStates.VATS:
            {
                if (Settings.Instance.DisableDuringKillmove)
                {
                    return(false);
                }
            }
            break;
            }

            var menuManager = MenuManager.Instance;

            if (menuManager == null)
            {
                return(false);
            }

            return(!menuManager.IsMenuOpen("RaceSex Menu"));
        }
Beispiel #3
0
 internal CameraUpdate(CameraMain main,
                       CameraResult result,
                       CameraTarget target,
                       PlayerCamera camera,
                       NiAVObject cameraNode,
                       TESCameraState state,
                       CameraValueMap values)
 {
     CameraMain      = main ?? throw new ArgumentNullException("main");
     Result          = result ?? throw new ArgumentNullException("result");
     Target          = target ?? throw new ArgumentNullException("target");
     GameCamera      = camera ?? throw new ArgumentNullException("camera");
     GameCameraNode  = cameraNode ?? throw new ArgumentNullException("cameraNode");
     GameCameraState = state ?? throw new ArgumentNullException("state");
     Values          = values ?? throw new ArgumentNullException("values");
     CachedMounted   = target.Actor != null && (target.Actor.IsOnMount || target.Actor.IsOnFlyingMount);
 }
        internal CameraUpdate(CameraMain main, CameraResult result, CameraTarget target, PlayerCamera camera, NiAVObject cameraNode, TESCameraState state, CameraValueMap values)
        {
            if (main == null)
            {
                throw new ArgumentNullException("main");
            }

            if (result == null)
            {
                throw new ArgumentNullException("result");
            }

            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            if (camera == null)
            {
                throw new ArgumentNullException("camera");
            }

            if (cameraNode == null)
            {
                throw new ArgumentNullException("cameraNode");
            }

            if (state == null)
            {
                throw new ArgumentNullException("state");
            }

            if (values == null)
            {
                throw new ArgumentNullException("values");
            }

            this.CameraMain      = main;
            this.Result          = result;
            this.Target          = target;
            this.GameCamera      = camera;
            this.GameCameraNode  = cameraNode;
            this.GameCameraState = state;
            this.Values          = values;
            this.CachedMounted   = target.Actor != null && (target.Actor.IsOnMount || target.Actor.IsOnFlyingMount);
        }