private void Construct( PluginConfig config, SiraLog logger, [InjectOptional] PauseController pauseController, MovementController movementController, InputManager inputManager, SaberControllerBearer saberControllerBearer, SaberType saberType, SaberTrickModel saberTrickModel, AudioTimeSyncController audioTimeSyncController, Trick.Factory trickFactory) { _config = config; _logger = logger; _pauseController = pauseController; _movementController = movementController; _inputManager = inputManager; _audioTimeSyncController = audioTimeSyncController; SaberTrickModel = saberTrickModel; _saber = saberControllerBearer[saberType].Saber; _vrController = saberControllerBearer[saberType].VRController; _trickFactory = trickFactory; }
private IEnumerator Start() { Saber = gameObject.GetComponent <Saber>(); Controller = gameObject.GetComponent <VRController>(); if (!Controller) { Destroy(gameObject); yield break; } if (IsLeftSaber) { GlobalTrickManager.Instance.LeftSaberSaberTrickManager = this; } else { GlobalTrickManager.Instance.RightSaberSaberTrickManager = this; } MovementController = gameObject.AddComponent <MovementController>(); MovementController.Controller = Controller; MovementController.SaberTrickManager = this; _inputManager = gameObject.AddComponent <InputManager>(); _inputManager.Init(Saber.saberType, Controller.GetField <VRControllersInputManager, VRController>("_vrControllersInputManager")); _inputManager.TrickActivated += OnTrickActivated; _inputManager.TrickDeactivated += OnTrickDeactivated; //We need to wait for CustomSabers to potentially change the saber models //yield return WaitForSaberModel(1); GameObject saberModel = GetSaberModel(); if (saberModel) { Plugin.Log.Debug($"Got saber model ({saberModel.name})"); } else { Plugin.Log.Debug("Couldn't get saber model"); Destroy(gameObject); yield break; } SaberTrickModel = new SaberTrickModel(saberModel); AddTrick <ThrowTrick>(); AddTrick <SpinTrick>(); Plugin.Log.Debug($"{Tricks.Count} tricks initialized"); BS_Utils.Utilities.BSEvents.songUnpaused += EndAllTricks; Plugin.Log.Debug("Trick Manager initialized"); }
private IEnumerator Start() { Saber = gameObject.GetComponent <Saber>(); Controller = gameObject.GetComponent <VRController>(); if (IsLeftSaber) { GlobalTrickManager.Instance.LeftSaberSaberTrickManager = this; } else { GlobalTrickManager.Instance.RightSaberSaberTrickManager = this; } VRPlatformHelper vrPlatformHelper = Controller.GetField <VRPlatformHelper, VRController>("_vrPlatformHelper"); MovementController = gameObject.AddComponent <MovementController>(); MovementController.Controller = Controller; MovementController.VrPlatformHelper = vrPlatformHelper; MovementController.SaberTrickManager = this; _inputManager = gameObject.AddComponent <InputManager>(); _inputManager.Init(Saber.saberType, Controller.GetField <VRControllersInputManager, VRController>("_vrControllersInputManager")); _inputManager.TrickActivated += OnTrickActivated; _inputManager.TrickDeactivated += OnTrickDeactivated; //We need to wait for CustomSabers to potentially change the saber models yield return(WaitForSaberModel(1)); SaberTrickModel = new SaberTrickModel(GetSaberModel()); AddTrick <ThrowTrick>(); AddTrick <SpinTrick>(); Plugin.Log.Debug("Trick Manager initialized"); }