public override void InstallBindings()
        {
            var config = Container.Resolve <PluginConfig>();

            if (!config.Enabled || Container.Resolve <SaberSet>().IsEmpty)
            {
                return;
            }

            Container.BindInterfacesAndSelfTo <EventPlayer>().AsTransient();

            //Container.BindInterfacesAndSelfTo<AFHandler>().AsSingle();

            if (!Container.HasBinding <ObstacleSaberSparkleEffectManager>())
            {
                Container.Bind <ObstacleSaberSparkleEffectManager>().FromMethod(ObstanceSaberSparkleEffectManagerGetter).AsSingle();
            }

            Container.BindInterfacesAndSelfTo <GameSaberSetup>().AsSingle();
            Container.BindInstance(SaberModelRegistration.Create <SfSaberModelController>(300));

#if DEBUG && TEST_TRAIL
            if (Container.TryResolve <LaunchOptions>()?.FPFC ?? false)
            {
                var testerInitData = new SaberMovementTester.InitData {
                    CreateTestingSaber = true
                };
                Container.BindInterfacesAndSelfTo <SaberMovementTester>().AsSingle().WithArguments(testerInitData);
            }
#endif
        }
        public override void InstallBindings()
        {
            var config = Container.Resolve <PluginConfig>();

            if (!config.Enabled || Container.Resolve <SaberSet>().IsEmpty)
            {
                return;
            }

            if (Container.HasBinding <GameplayCoreSceneSetupData>())
            {
                var sceneSetupData = Container.Resolve <GameplayCoreSceneSetupData>();
                var beatmapData    = sceneSetupData.difficultyBeatmap.beatmapData;
                Container.Bind <BeatmapData>().WithId("beatmapdata").FromInstance(beatmapData);
                var lastNoteTime = beatmapData.GetLastNoteTime();
                Container.Bind <float>().WithId("LastNoteId").FromInstance(lastNoteTime);
                Container.BindInterfacesAndSelfTo <EventPlayer>().AsTransient();
            }

            //Container.BindInterfacesAndSelfTo<AFHandler>().AsSingle();
            Container.BindInterfacesAndSelfTo <GameSaberSetup>().AsSingle();
            Container.BindInstance(SaberModelRegistration.Create <SfSaberModelController>(300)).AsSingle();

#if DEBUG && TEST_TRAIL
            if (Container.TryResolve <LaunchOptions>()?.FPFC ?? false)
            {
                var testerInitData = new SaberMovementTester.InitData {
                    CreateTestingSaber = true
                };
                Container.BindInterfacesAndSelfTo <SaberMovementTester>().AsSingle().WithArguments(testerInitData);
            }
#endif
        }
Beispiel #3
0
        public void Init(object _, IPALogger log, Zenjector zenjector)
        {
            Log = log;

            GameObject sabers;

            using (var stream = Assembly.GetManifestResourceStream(ClawsSaberResourceName))
            {
                sabers = AssetBundle.LoadFromStream(stream).LoadAsset <GameObject>("_CustomSaber");
            }

            foreach (Transform t in sabers.transform)
            {
                if (t.name == "LeftSaber")
                {
                    LeftSaber = t.gameObject;
                }
                else if (t.name == "RightSaber")
                {
                    RightSaber = t.gameObject;
                }
                if (LeftSaber != null && RightSaber != null)
                {
                    break;
                }
            }

            zenjector.Install(Location.Player, container =>
            {
                if (!IsEnabled)
                {
                    return;
                }
                container.BindInstance(SaberModelRegistration.Create <ClawsModelController>(int.MaxValue));
            });
        }