Beispiel #1
0
        public void UpdateCamera(TimeUpdateEvent e, SpectatorTransitionCameraNode transitionCameraNode, [JoinAll] Optional <SingleNode <CameraTargetComponent> > target)
        {
            CameraSaveData cameraSaveData = transitionCameraNode.transitionCamera.CameraSaveData;

            if ((cameraSaveData.Type == CameraType.Free) || target.IsPresent())
            {
                UpdateCamera(e.DeltaTime, transitionCameraNode);
                ApplyCameraTransformEvent eventInstance = ApplyCameraTransformEvent.ResetApplyCameraTransformEvent();
                eventInstance.PositionSmoothingRatio = SPECTATOR_TRANSITION_CAMERA_POSITION_SMOOTHING_RATIO;
                eventInstance.RotationSmoothingRatio = SPECTATOR_TRANSITION_CAMERA_ROTATION_SMOOTHING_RATIO;
                eventInstance.DeltaTime = e.DeltaTime;
                base.ScheduleEvent(eventInstance, transitionCameraNode);
                if (transitionCameraNode.transitionCamera.TransitionComplete)
                {
                    CameraType type = cameraSaveData.Type;
                    if (type == CameraType.Follow)
                    {
                        transitionCameraNode.bezierPosition.BezierPosition.SetBaseRatio(cameraSaveData.FollowCameraBezierPositionRatio);
                        transitionCameraNode.bezierPosition.BezierPosition.SetRatioOffset(cameraSaveData.FollowCameraBezierPositionRatioOffset);
                        transitionCameraNode.cameraESM.Esm.ChangeState <CameraStates.CameraFollowState>();
                    }
                    else if (type == CameraType.MouseOrbit)
                    {
                        MouseOrbitCameraComponent mouseOrbitCamera = transitionCameraNode.cameraESM.Esm.ChangeState <CameraStates.CameraOrbitState>().mouseOrbitCamera;
                        mouseOrbitCamera.distance       = cameraSaveData.MouseOrbitDistance;
                        mouseOrbitCamera.targetRotation = cameraSaveData.MouseOrbitTargetRotation;
                    }
                    else if (type == CameraType.Free)
                    {
                        transitionCameraNode.cameraESM.Esm.ChangeState <CameraStates.CameraFreeState>();
                    }
                }
            }
        }
Beispiel #2
0
        public void SwitchCameraToSpawnState(NodeAddedEvent evt, SelfTankReadyForCameraNode tank, [JoinByUser] SingleNode <UserUidComponent> userUidNode, [Context, JoinAll] ESMNode camera, [JoinAll] Optional <SingleNode <FollowCameraComponent> > followCameraOptional)
        {
            TransitionCameraComponent transitionCamera = camera.transitionCamera;

            transitionCamera.CameraSaveData = CameraSaveData.CreateFollowData(userUidNode.component.Uid, camera.bezierPosition.BezierPosition.GetBaseRatio(), camera.bezierPosition.BezierPosition.GetRatioOffset());
            transitionCamera.Spawn          = true;
            camera.cameraESM.Esm.ChangeState <CameraStates.CameraTransitionState>();
        }
Beispiel #3
0
        public void SwitchCameraToSpawnState(NodeAddedEvent evt, SingleNode <FollowedTankReadyToCameraComponent> tank, [JoinByUser] SingleNode <UserUidComponent> userUidNode, [JoinAll] MouseOrbitESMNode camera)
        {
            TransitionCameraComponent transitionCamera = camera.transitionCamera;

            transitionCamera.CameraSaveData = CameraSaveData.CreateMouseOrbitData(userUidNode.component.Uid, camera.mouseOrbitCamera.distance, camera.mouseOrbitCamera.targetRotation);
            transitionCamera.Spawn          = true;
            camera.cameraESM.Esm.ChangeState <CameraStates.CameraTransitionState>();
        }
Beispiel #4
0
        public static CameraSaveData CreateFreeData(Transform transform)
        {
            CameraSaveData data = new CameraSaveData {
                Type = CameraType.Free
            };

            Tanks.Battle.ClientGraphics.Impl.TransformData data2 = new Tanks.Battle.ClientGraphics.Impl.TransformData {
                Position = transform.position,
                Rotation = transform.rotation
            };
            data.TransformData = data2;
            return(data);
        }