using QSB.Events; using QSB.Player; using QSB.Tools; using QSB.Utility; using UnityEngine; namespace QSB.TransformSync { public class PlayerCameraSync : TransformSync { protected override Transform InitLocalTransform() { var body = Locator.GetPlayerCamera().gameObject.transform; Player.CameraBody = body.gameObject; Player.IsReady = true; GlobalMessenger.FireEvent(EventNames.QSBPlayerReady, true); DebugLog.DebugWrite("PlayerCameraSync init done - Request state!"); GlobalMessenger.FireEvent(EventNames.QSBPlayerStatesRequest); return body; } protected override Transform InitRemoteTransform() { var body = new GameObject("RemotePlayerCamera"); PlayerToolsManager.Init(body.transform); var camera = body.AddComponent(); camera.enabled = false; var owcamera = body.AddComponent(); owcamera.fieldOfView = 70; Player.Camera = owcamera; Player.CameraBody = body; return body.transform; } public override bool IsReady => Locator.GetPlayerTransform() != null && Player != null && QSBPlayerManager.PlayerExists(Player.PlayerId) && NetId.Value != uint.MaxValue && NetId.Value != 0U; } }