internal void Start()
            {
                if (LoadManager.GetCurrentScene() == OWScene.SolarSystem)
                {
                    _shipWindshield = GameObject.Find("ShipLODTrigger_Cockpit").transform;
                }

                _signalscope = Camera.main.transform.Find("Signalscope").GetComponent <Signalscope>();

                var holdSignalscope = _signalscope.gameObject.AddComponent <Holdable>();

                holdSignalscope.transform.localPosition = new Vector3(0.013f, 0.1f, 0.123f);
                holdSignalscope.transform.localRotation = Quaternion.Euler(32.8f, 0, 0);

                var signalScopeModel = _signalscope.transform.GetChild(0);

                // Tools have a special shader that draws them on top of everything
                // and screws with perspective. Changing to Standard shader so they look
                // like a normal 3D object.
                signalScopeModel.GetComponent <MeshRenderer>().material.shader = Shader.Find("Standard");
                signalScopeModel.localPosition = Vector3.up * -0.1f;
                signalScopeModel.localRotation = Quaternion.identity;

                // This child seems to be only for some kind of shader effect.
                // Disabling it since it looks glitchy and doesn't seem necessary.
                signalScopeModel.GetChild(0).gameObject.SetActive(false);

                var signalScopeHolster = Instantiate(signalScopeModel).gameObject;

                signalScopeHolster.SetActive(true);
                var holster = signalScopeHolster.AddComponent <HolsterTool>();

                holster.hand      = HandsController.Behaviour.RightHand;
                holster.position  = new Vector3(0.3f, 0, 0);
                holster.mode      = ToolMode.SignalScope;
                holster.scale     = 0.8f;
                holster.angle     = Vector3.right * 90;
                holster.onUnequip = OnUnequip;

                var playerHUD = GameObject.Find("PlayerHUD").transform;

                _reticule = playerHUD.Find("HelmetOffUI/SignalscopeReticule");

                // Attatch Signalscope UI to the Signalscope.
                _reticule.GetComponent <Canvas>().renderMode = RenderMode.WorldSpace;
                _reticule.parent        = _signalscope.transform;
                _reticule.localScale    = Vector3.one * 0.0005f;
                _reticule.localPosition = Vector3.forward * 0.5f;
                _reticule.localRotation = Quaternion.identity;

                var helmetOff = playerHUD.Find("HelmetOffUI/SignalscopeCanvas");

                SetupSignalscopeUI(helmetOff, new Vector3(-0.05f, 0.45f, 0));

                var helmetOn = playerHUD.Find("HelmetOnUI/UICanvas/SigScopeDisplay");

                SetupSignalscopeUI(helmetOn, new Vector3(-0.05f, -0.2f, 0));
                LayerHelper.ChangeLayerRecursive(helmetOn.gameObject, "UI");
                SetupScopeLens();
            }
Beispiel #2
0
 public void UpdateStateObjects()
 {
     if (OWInput.GetInputMode() == InputMode.None)
     {
         return;
     }
     FlashLight?.UpdateState(FlagsHelper.IsSet(State, State.Flashlight));
     Translator?.ChangeEquipState(FlagsHelper.IsSet(State, State.Translator));
     ProbeLauncher?.ChangeEquipState(FlagsHelper.IsSet(State, State.ProbeLauncher));
     Signalscope?.ChangeEquipState(FlagsHelper.IsSet(State, State.Signalscope));
     PlayerRegistry.GetSyncObject <AnimationSync>(NetId)?.SetSuitState(FlagsHelper.IsSet(State, State.Suit));
 }
 public void UpdateStateObjects()
 {
     if (OWInput.GetInputMode() == InputMode.None)
     {
         return;
     }
     FlashLight?.UpdateState(FlagsHelper.IsSet(State, State.Flashlight));
     Translator?.ChangeEquipState(FlagsHelper.IsSet(State, State.Translator));
     ProbeLauncher?.ChangeEquipState(FlagsHelper.IsSet(State, State.ProbeLauncher));
     Signalscope?.ChangeEquipState(FlagsHelper.IsSet(State, State.Signalscope));
     QSBCore.UnityEvents.RunWhen(() => QSBPlayerManager.GetSyncObject <AnimationSync>(PlayerId) != null,
                                 () => QSBPlayerManager.GetSyncObject <AnimationSync>(PlayerId).SetSuitState(FlagsHelper.IsSet(State, State.Suit)));
 }
Beispiel #4
0
        public void UpdateObjectsFromStates()
        {
            if (OWInput.GetInputMode() == InputMode.None)
            {
                // ? why is this here lmao
                return;
            }

            if (CameraBody == null)
            {
                return;
            }

            FlashLight?.UpdateState(FlashlightActive);
            Translator?.ChangeEquipState(TranslatorEquipped);
            ProbeLauncher?.ChangeEquipState(ProbeLauncherEquipped);
            Signalscope?.ChangeEquipState(SignalscopeEquipped);
            AnimationSync.SetSuitState(SuitedUp);
        }
 private void HandleEquip(Signalscope var) => SendEvent(CreateMessage(true));