예제 #1
0
        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;
        }
예제 #2
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");
        }
예제 #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");
        }