internal static void VRHSceneStartPostfix(List <ChaControl> ___lstFemale, HSprite[] ___sprites)
 {
     HSceneHeroine = ___lstFemale;
     foreach (HSprite sprite in ___sprites)
     {
         HSprites.Add(sprite);
     }
 }
Esempio n. 2
0
        internal void Start()
        {
            Logger   = base.Logger;
            instance = this;

            CharacterApi.RegisterExtraBehaviour <AccStateSyncController>(GUID);
            MoreAccessories_Support.LoadAssembly();

            CoroutineSlotChangeDelay = Config.Bind("Maker", "Slot Change Delay", 1f, new ConfigDescription("", null, new ConfigurationManagerAttributes {
                IsAdvanced = true, Order = 2
            }));
            CoroutineCounterMax = Config.Bind("Maker", "Maximun Coroutine Counter", 30f, new ConfigDescription("", null, new ConfigurationManagerAttributes {
                IsAdvanced = true, Order = 1
            }));
            CharaMakerPreview = Config.Bind("Maker", "CharaMaker Force Preview", true, new ConfigDescription("", null, new ConfigurationManagerAttributes {
                Order = 10
            }));
            CharaMakerPreview.SettingChanged += (sender, args) =>
            {
                if (MakerAPI.InsideMaker)
                {
                    CharaMakerPreviewSidebarToggle.Value = CharaMakerPreview.Value;
                    if (CharaMakerPreviewSidebarToggle.Value)
                    {
                        GetController(MakerAPI.GetCharacterControl()).SyncAllAccToggle();
                    }
                }
            };

//			MakerAPI.MakerBaseLoaded += MakerAPI_MakerBaseLoaded;
            MakerAPI.MakerFinishedLoading += (object sender, EventArgs e) => CreateMakerInterface();

            AccessoriesApi.SelectedMakerAccSlotChanged += (object sender, AccessorySlotEventArgs eventArgs) => GetController(MakerAPI.GetCharacterControl()).AccSlotChangedHandler(eventArgs.SlotIndex);
            AccessoriesApi.AccessoryTransferred        += (object sender, AccessoryTransferEventArgs eventArgs) => GetController(MakerAPI.GetCharacterControl()).AccessoryTransferredHandler(eventArgs.SourceSlotIndex, eventArgs.DestinationSlotIndex);
            AccessoriesApi.AccessoriesCopied           += (object sender, AccessoryCopyEventArgs eventArgs) => GetController(MakerAPI.GetCharacterControl()).AccessoriesCopiedHandler((int)eventArgs.CopySource, (int)eventArgs.CopyDestination, eventArgs.CopiedSlotIndexes.ToList());

            MakerAPI.RegisterCustomSubCategories += (sender, e) =>
            {
                CharaMakerPreviewSidebarToggle = e.AddSidebarControl(new SidebarToggle("Force Preview", CharaMakerPreview.Value, this));
                CharaMakerPreviewSidebarToggle.ValueChanged.Subscribe(b => CharaMakerPreview.Value = b);
            };
            MakerAPI.MakerExiting += (sender, e) =>
            {
                CharaMakerPreviewSidebarToggle = null;
            };

            StudioAPI.StudioLoadedChanged += (sender, e) => RegisterStudioControls();
            GameAPI.StartH += (sender, e) => { InsideHScene = true; UpdateHUI(); };
            GameAPI.EndH   += (sender, e) => { InsideHScene = false; HSprites.Clear(); };

            HarmonyWrapper.PatchAll(typeof(Hooks));

            if (UnityEngine.Application.dataPath.EndsWith("KoikatuVR_Data"))
            {
                HarmonyWrapper.PatchAll(typeof(HooksVR));
            }

            foreach (var key in System.Enum.GetValues(typeof(ChaAccessoryDefine.AccessoryParentKey)))
            {
                AccParentNames[key.ToString()] = ChaAccessoryDefine.dictAccessoryParent[(int)key];
            }
        }
 internal static void HSceneProcStartPostfix(List <ChaControl> ___lstFemale, HSprite ___sprite)
 {
     HSceneHeroine = ___lstFemale;
     HSprites.Add(___sprite);
 }
 internal static void VRHSceneDestroyPostFix()
 {
     InsideHScene = false;
     HSprites.Clear();
 }