public override void OnSimulateStart_EnhancementEnabled()
        {
            firstPerson = fixedCamera.CamMode == FixedCameraBlock.Mode.FirstPerson;

            //Initialise the SmoothLook component
            fixedCameraController = FindObjectOfType <FixedCameraController>();
            mouseOrbit            = FindObjectOfType <MouseOrbit>();
            foreach (var camera in fixedCameraController.cameras)
            {
                if (camera.BuildIndex == selfIndex)
                {
                    if (firstPersonMode)
                    {
                        smooth = Mathf.Clamp01(firstPersonSmooth);
                    }
                    else
                    {
                        smooth = Mathf.Clamp01(camera.SmoothSlider.Value);
                    }
                    SetSmoothing();
                }
            }
            newCamFOV    = orgCamFOV = fixedCamera.fovSlider.Value;
            camFOVSmooth = Mathf.Exp(smooth) / Mathf.Exp(1) / 2f;
            if (cameraLookAtToggled)
            {
                // Initialise
                searchStarted = targetInitialCJOrHJ = false;
                pauseTracking = autoSearch = targetAquired = true;
                float searchAngleMax = Mathf.Clamp(Mathf.Atan(Mathf.Tan(fixedCamera.fovSlider.Value * Mathf.Deg2Rad / 2) * Camera.main.aspect) * Mathf.Rad2Deg, 0, 90);
                searchAngle = Mathf.Clamp(searchAngle, 0, searchAngleMax);
                target      = null;
                if (!StatMaster.isMP)
                {
                    clustersInSafetyRange.Clear();
                    foreach (var cluster in Machine.Active().simClusters)
                    {
                        if ((cluster.Base.transform.position - fixedCamera.transform.position).magnitude < safetyRadiusAuto)
                        {
                            clustersInSafetyRange.Add(cluster);
                        }
                    }
                }
                StopAllCoroutines();
            }
        }
        public override void OnSimulateStart_EnhancementEnabled()
        {
            base.OnSimulateStart_EnhancementEnabled();
            channelList  = BB.BuildingBlock.GetComponent <ArmorScript>().channelList;
            channelIndex = BB.BuildingBlock.GetComponent <ArmorScript>().channelIndex;

            fcc = GameObject.FindObjectOfType <FixedCameraController>();

            if (channelIndex < 0 || fcc == null)
            {
                return;
            }

            rt = new RenderTexture(Mathf.Clamp((int)widthPixelValue.Value, 0, 1920), Mathf.Clamp((int)heightPixelValue.Value, 0, 1080), 0);

            cameraObject = new GameObject("WatchCamera");
            cameraObject.transform.SetParent(transform);
            watchCamera = cameraObject.AddComponent <Camera>();
            watchCamera.CopyFrom(Camera.main);
            watchCamera.targetTexture = rt;

            screenObject      = GameObject.CreatePrimitive(PrimitiveType.Plane);
            screenObject.name = "Screen";
            Destroy(screenObject.GetComponent <MeshCollider>());
            screenObject.transform.SetParent(transform);
            screenObject.transform.position         = transform.position;
            screenObject.transform.rotation         = transform.rotation;
            screenObject.transform.localPosition    = Vector3.forward * 0.25f;
            screenObject.transform.localEulerAngles = new Vector3(90, 0, 0);
            screenObject.transform.localScale       = Vector3.one * 0.07f;
            mr = screenObject.transform.GetComponent <MeshRenderer>();
            mr.material.shader      = Shader.Find("Particles/Alpha Blended");
            mr.material.mainTexture = rt;
            mr.sortingOrder         = 50;

            stickToCamera(channelIndex);
        }
Example #3
0
 void FixedUpdate()
 {
     if (!StatMaster.levelSimulating)
     {
         if (playerGroupedRockets.Count > 0)
         {
             playerGroupedRockets.Clear();
         }
     }
     if (PlayerMachine.GetLocal() != null)
     {
         if (PlayerMachine.GetLocal().InternalObject.isSimulating)
         {
             if (isFirstFrame)
             {
                 isFirstFrame     = launchStarted = false;
                 cameraController = FindObjectOfType <FixedCameraController>();
                 rocketTargetDict.Clear();
             }
         }
         else
         {
             if (!isFirstFrame)
             {
                 if (playerGroupedRockets.ContainsKey(PlayerMachine.GetLocal().InternalObject.PlayerID))
                 {
                     playerGroupedRockets.Remove(PlayerMachine.GetLocal().InternalObject.PlayerID);
                 }
                 rocketTargetDict.Clear();
                 isFirstFrame = true;
             }
         }
     }
     if (!isFirstFrame)
     {
         if (PlayerMachine.GetLocal() != null && rocketTargetDict != null && !isFirstFrame)
         {
             if (rocketTargetDict.Count == 0)
             {
                 iAmLockedByRocket = false;
             }
             else
             {
                 foreach (var rocketTargetPair in rocketTargetDict)
                 {
                     if (PlayerMachine.GetLocal() != null)
                     {
                         if (rocketTargetPair.Value == (StatMaster.isMP ? PlayerMachine.GetLocal().Player.NetworkId : 0))
                         {
                             iAmLockedByRocket = true;
                             break;
                         }
                         else
                         {
                             iAmLockedByRocket = false;
                         }
                     }
                     else
                     {
                         iAmLockedByRocket = false;
                     }
                 }
             }
         }
     }
 }