private void Awake()
 {
     _camera            = GetComponent <OWCamera>();
     _audioListener     = GetComponent <AudioListener>();
     _viewerImageEffect = _camera.GetComponent <NomaiViewerImageEffect>();
     _owningPlatform    = GetComponentInParent <CustomNomaiRemoteCameraPlatform>();
     enabled            = false;
 }
 private void UpdatePools(float target, float length)
 {
     _poolT = Mathf.MoveTowards(_poolT, target, Time.deltaTime / length);
     if (OWMath.ApproxEquals(_poolT, target))
     {
         if (_slavePlatform != null && target == 0f)
         {
             _slavePlatform = null;
         }
         return;
     }
     UpdatePoolRenderer();
     _slavePlatform._poolT = _poolT;
     _slavePlatform.UpdatePoolRenderer();
 }
        private void LateUpdate()
        {
            if (_owningPlatform == null)
            {
                _owningPlatform = GetComponentInParent <CustomNomaiRemoteCameraPlatform>();
            }

            if (_owningPlatform != null && _controllingPlatform != null)
            {
                transform.position  = CustomNomaiRemoteCameraPlatform.TransformPoint(_controllingCamera.transform.position, _controllingPlatform, _owningPlatform);
                transform.rotation  = CustomNomaiRemoteCameraPlatform.TransformRotation(_controllingCamera.transform.rotation, _controllingPlatform, _owningPlatform);
                _camera.fieldOfView = _controllingCamera.fieldOfView;
            }
            else
            {
                enabled = false;
            }
        }
 private void OnSocketableDonePlacing(OWItem socketable)
 {
     _platformActive = true;
     _sharedStone    = socketable as SharedStone;
     if (_sharedStone == null)
     {
         Debug.LogError("Placed an empty item or a non SharedStone in a NomaiRemoteCameraPlatform");
     }
     _slavePlatform = GetPlatform(_sharedStone.GetRemoteCameraID());
     if (_slavePlatform == null)
     {
         Debug.LogError("Shared stone with Remote Camera ID: " + _sharedStone.GetRemoteCameraID() + " has no registered camera platform!");
     }
     if (_slavePlatform == this || !_slavePlatform.gameObject.activeSelf)
     {
         _sharedStone   = null;
         _slavePlatform = null;
         return;
     }
     _transitionStone.SetActive(true);
     _slavePlatform._transitionStone.SetActive(true);
     _socket.GetPedestalAnimator().PlayClose();
     if (_transitionPedestalAnimator != null)
     {
         _transitionPedestalAnimator.PlayClose();
     }
     if (_slavePlatform._pedestalAnimator != null)
     {
         _slavePlatform._pedestalAnimator.PlayClose();
     }
     if (_slavePlatform._transitionPedestalAnimator != null)
     {
         _slavePlatform._transitionPedestalAnimator.PlayClose();
     }
     enabled = true;
 }
        public static Quaternion TransformRotation(Quaternion worldRot, CustomNomaiRemoteCameraPlatform from, CustomNomaiRemoteCameraPlatform to)
        {
            var rhs = from.transform.InverseTransformRotation(worldRot);

            return(to.transform.rotation * rhs);
        }
        public static Vector3 TransformPoint(Vector3 worldPos, CustomNomaiRemoteCameraPlatform from, CustomNomaiRemoteCameraPlatform to)
        {
            var position = from.transform.InverseTransformPoint(worldPos);

            return(to.transform.TransformPoint(position));
        }
 public void Deactivate()
 {
     _controllingPlatform = null;
     enabled = false;
 }
 public void Activate(CustomNomaiRemoteCameraPlatform controllingPlatform, OWCamera viewer)
 {
     _controllingPlatform = controllingPlatform;
     _controllingCamera   = viewer;
     enabled = true;
 }