public override void InstallBindings() { // logging Container.Bind(typeof(ILogger <>)).FromMethodUntyped(CreateLogger).AsTransient().When(ShouldCreateLogger); // settings Container.BindInterfacesAndSelfTo <SettingsManager>().AsSingle(); Container.Bind <Settings>().FromMethod((context) => context.Container.Resolve <SettingsManager>().settings); Container.BindInterfacesAndSelfTo <CalibrationData>().AsSingle(); if (XRSettings.loadedDeviceName.Equals("openvr", StringComparison.InvariantCultureIgnoreCase) && OpenVR.IsRuntimeInstalled() && !Environment.GetCommandLineArgs().Contains("--force-xr")) { Container.Bind <OpenVRFacade>().AsTransient(); Container.BindInterfacesAndSelfTo <OpenVRDeviceProvider>().AsSingle(); } else { Container.BindInterfacesTo <UnityXRDeviceProvider>().AsSingle(); } // managers Container.BindInterfacesAndSelfTo <PlayerAvatarManager>().AsSingle().NonLazy(); Container.BindInterfacesAndSelfTo <ShaderLoader>().AsSingle().NonLazy(); Container.BindInterfacesAndSelfTo <DeviceManager>().AsSingle().NonLazy(); // this prevents a race condition when registering components in AvatarSpawner Container.BindExecutionOrder <PlayerAvatarManager>(kPlayerAvatarManagerExecutionOrder); Container.Bind <AvatarLoader>().AsSingle(); Container.Bind <AvatarSpawner>().AsSingle(); Container.BindInterfacesAndSelfTo <VRPlayerInput>().AsSingle(); Container.Bind(typeof(VRPlayerInputInternal), typeof(IInitializable), typeof(IDisposable)).To <VRPlayerInputInternal>().AsSingle(); Container.BindInterfacesAndSelfTo <LightingQualityController>().AsSingle(); Container.BindInterfacesAndSelfTo <BeatSaberUtilities>().AsSingle(); #pragma warning disable CS0612 Container.BindInterfacesAndSelfTo <FloorController>().AsSingle(); #pragma warning restore CS0612 // helper classes Container.Bind <MirrorHelper>().AsTransient(); Container.Bind <IKHelper>().AsTransient(); Container.Bind <TrackingHelper>().AsTransient(); Container.Bind <MainSettingsModelSO>().FromInstance(_pcAppInit.GetField <MainSettingsModelSO, PCAppInit>("_mainSettingsModel")).IfNotBound(); }
public override void InstallBindings() { // logging Container.Bind <ILoggerProvider>().To <IPALoggerProvider>().AsTransient().WithArguments(new object[] { _logger }); // settings Container.BindInterfacesAndSelfTo <SettingsManager>().AsSingle(); Container.Bind <Settings>().FromMethod((context) => context.Container.Resolve <SettingsManager>().settings); Container.BindInterfacesAndSelfTo <CalibrationData>().AsSingle(); if (XRSettings.loadedDeviceName.Equals("openvr", StringComparison.InvariantCultureIgnoreCase) && OpenVR.IsRuntimeInstalled() && !Environment.GetCommandLineArgs().Contains("--force-xr")) { Container.Bind <OpenVRFacade>().AsTransient(); Container.BindInterfacesAndSelfTo <OpenVRDeviceProvider>().AsSingle(); } else { Container.BindInterfacesTo <UnityXRDeviceProvider>().AsSingle(); } // managers Container.BindInterfacesAndSelfTo <PlayerAvatarManager>().AsSingle().NonLazy(); Container.BindInterfacesAndSelfTo <CamerasController>().AsSingle().NonLazy(); Container.BindInterfacesAndSelfTo <ShaderLoader>().AsSingle().NonLazy(); Container.BindInterfacesAndSelfTo <DeviceManager>().AsSingle().NonLazy(); Container.Bind <AvatarLoader>().AsSingle(); Container.BindInterfacesAndSelfTo <VRPlayerInput>().AsSingle(); Container.BindInterfacesAndSelfTo <FloorController>().AsSingle(); Container.BindInterfacesAndSelfTo <LightingQualityController>().AsSingle(); Container.BindInterfacesAndSelfTo <BeatSaberUtilities>().AsSingle(); // helper classes Container.Bind <MirrorHelper>().AsTransient(); Container.Bind <AvatarSpawner>().AsTransient(); Container.Bind <IKHelper>().AsTransient(); Container.Bind <TrackingHelper>().AsTransient(); Container.Bind <MainSettingsModelSO>().FromInstance(_pcAppInit.GetField <MainSettingsModelSO, PCAppInit>("_mainSettingsModel")).IfNotBound(); }