Exemplo n.º 1
0
            public static void restore(int pos)
            {
                CameraKeyFrame cam = keyFrames[pos];

                Cameras.MainCamera().transform.position = cam.m_StartPos;
                Cameras.MainCamera().transform.rotation = cam.m_StartRot;
                PointsOfView.UpdatePivotBasedOnCamera();
                Cameras.SetOrthographicSize(cam.m_StartOrthographicSize);
            }
Exemplo n.º 2
0
            public static CameraKeyFrame currentCamera()
            {
                CameraKeyFrame cam = new CameraKeyFrame();

                cam.m_StartPos              = Cameras.MainCamera().transform.position;
                cam.m_StartRot              = Cameras.MainCamera().transform.rotation;
                cam.m_StartPivot            = PointsOfView.m_Pivot;
                cam.m_StartOrthographicSize = Cameras.GetOrthographicSize();
                return(cam);
            }
Exemplo n.º 3
0
            public static bool Prefix(
                ref Vector3 ___m_StartPos,
                ref Vector3 ___m_StartPivot,
                ref float ___m_StartOrthographicSize,
                ref Vector3 ___m_EndPos,
                ref Vector3 ___m_EndPivot,
                ref float ___m_EndOrthographicSize,
                ref Quaternion ___m_EndRot,

                ref float ___m_ElapsedSeconds,
                ref float ___m_TransitionSeconds,
                ref bool ___m_Slerping
                )
            {
                if (CinemaCamera.Activated())
                {
                    if (ModdedCinemaCamera.keyFrames.Count == 0)
                    {
                        CameraInterpolate.Cancel();
                        return(false);
                    }
                    else if (ModdedCinemaCamera.keyFrames.Count < 2)
                    {
                        PopUpWarning.Display("You must add at least 2 keyframes to use the cinematic camera!");
                        CameraInterpolate.Cancel();
                        return(false);
                    }
                    ___m_ElapsedSeconds += Time.unscaledDeltaTime;
                    float num = Mathf.Clamp01(___m_ElapsedSeconds / ___m_TransitionSeconds);


                    Vector3 vector      = ModdedCinemaCamera.PivotHandler.Interpolate(ModdedCinemaCamera.current_start, num);
                    Vector3 normalized3 = ModdedCinemaCamera.InterpolateHandler.Interpolate(ModdedCinemaCamera.current_start, num).normalized;
                    // testing smooth movement
                    PointsOfView.m_Pivot = vector;

                    Cameras.MainCamera().transform.position = vector + normalized3 * GameSettings.CamDistFromPivot();
                    Cameras.MainCamera().transform.LookAt(vector);
                    Cameras.SetOrthographicSize(Mathf.SmoothStep(___m_StartOrthographicSize, ___m_EndOrthographicSize, num));
                    Bridge.RefreshZoomDependentVisibility();
                    if (Mathf.Approximately(num, 1f))
                    {
                        ModdedCinemaCamera.current_start += 1;
                        ModdedCinemaCamera.current_end   += 1;
                        if (ModdedCinemaCamera.current_end >= ModdedCinemaCamera.keyFrames.Count)
                        {
                            CameraInterpolate.Cancel();
                        }
                        else
                        {
                            CameraKeyFrame target = ModdedCinemaCamera.keyFrames[ModdedCinemaCamera.current_end];
                            CameraInterpolate.SlerpTo(
                                target.m_StartPivot,
                                target.m_StartPos,
                                target.m_StartRot,
                                target.m_StartOrthographicSize,
                                target.m_DurationSeconds,
                                target.m_Ease
                                );
                        }
                    }
                    CameraControl.RegisterTransformUpdate();

                    return(false);
                }
                return(true);
            }
        // Helper method for CopyToClipboard
        // Also copied from BridgeSelectionSet
        private static Vector2 CalculateSelectSetCenter(List <BridgeJoint> m_Joints, List <BridgeEdge> m_Edges)
        {
            float num  = 0f;
            float num2 = 0f;
            int   num3 = 0;

            foreach (BridgeJoint joint in m_Joints)
            {
                num  += joint.transform.position.x;
                num2 += joint.transform.position.y;
                num3++;
            }
            foreach (BridgeEdge edge in m_Edges)
            {
                num  += edge.m_JointA.transform.position.x;
                num2 += edge.m_JointA.transform.position.y;
                num  += edge.m_JointB.transform.position.x;
                num2 += edge.m_JointB.transform.position.y;
                num3 += 2;
            }
            return(Utils.V3toV2(GameUI.SnapPosToGrid(new Vector3(num / (float)num3, num2 / (float)num3, Cameras.MainCamera().transform.position.z + 1f))));
        }