Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        public async void Init(GlobalTrickManager globalTrickManager)
        {
            _globalTrickManager = globalTrickManager;

            _logger.Debug($"Instantiated on {gameObject.name}");

            if (!_vrController)
            {
                _logger.Error("Controller not present");
                Cleanup();
                return;
            }

            if (IsLeftSaber)
            {
                _globalTrickManager.LeftSaberTrickManager = this;
            }
            else
            {
                _globalTrickManager.RightSaberTrickManager = this;
            }

            _movementController.Init(_vrController, this);

            _inputManager.Init(_saber.saberType, _vrController.GetField <VRControllersInputManager, VRController>("_vrControllersInputManager"));
            _inputManager.TrickActivated   += OnTrickActivated;
            _inputManager.TrickDeactivated += OnTrickDeactivated;

            var success = await SaberTrickModel.Init(_saber);

            if (success)
            {
                _logger.Info($"Got saber model");
            }
            else
            {
                _logger.Error("Couldn't get saber model");
                Cleanup();
                return;
            }

            _movementController.enabled = true;

            AddTrick <SpinTrick>();
            AddTrick <ThrowTrick>();

            _logger.Info($"{Tricks.Count} tricks initialized");

            if (_pauseController)
            {
                _pauseController.didResumeEvent += EndAllTricks;
            }

            _logger.Info("Trick Manager initialized");
        }
Exemplo n.º 3
0
        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");
        }