public static void OnCourseBtnPressedPatch_multiCourseSelect(ref UIElective __instance) { if (multiCourseSelect.Value) { Heluo.Logger.LogError("OnCourseBtnPressedPatch_multiCourseSelect start"); CtrlElective controller = Traverse.Create(__instance).Field("controller").GetValue <CtrlElective>(); EnumArray <Grade, List <ElectiveInfo> > sort = Traverse.Create(controller).Field("sort").GetValue <EnumArray <Grade, List <ElectiveInfo> > >(); int gradeIndex = Traverse.Create(controller).Field("gradeIndex").GetValue <int>(); int courseIndex = Traverse.Create(controller).Field("courseIndex").GetValue <int>(); ElectiveInfo electiveInfo = sort[gradeIndex][courseIndex]; InputSelectable ElectiveSelectable = Traverse.Create(__instance).Field("ElectiveSelectable").GetValue <InputSelectable>(); InputNavigation CurrentSelected = ElectiveSelectable.CurrentSelected; if (selectElectiveInfos.Contains(electiveInfo)) { selectElectiveInfos.Remove(electiveInfo); hideSelectIcon(CurrentSelected); } else { selectElectiveInfos.Add(electiveInfo); showSelectIcon(CurrentSelected); } Heluo.Logger.LogError("OnCourseBtnPressedPatch_multiCourseSelect end"); } }
public static void OnTabBtnIsOnPatch_multiCourseSelect(ref UIElective __instance, ref int index) { if (multiCourseSelect.Value) { CtrlElective controller = Traverse.Create(__instance).Field("controller").GetValue <CtrlElective>(); EnumArray <Grade, List <ElectiveInfo> > sort = Traverse.Create(controller).Field("sort").GetValue <EnumArray <Grade, List <ElectiveInfo> > >(); int gradeIndex = Traverse.Create(controller).Field("gradeIndex").GetValue <int>(); List <ElectiveInfo> courses = sort[gradeIndex]; InputSelectable ElectiveSelectable = Traverse.Create(__instance).Field("ElectiveSelectable").GetValue <InputSelectable>(); List <InputNavigation> InputNavigations = ElectiveSelectable.InputNavigations; for (int i = 0; i < courses.Count; i++) { InputNavigation CurrentSelected = InputNavigations[i]; if (selectElectiveInfos.Contains(courses[i])) { showSelectIcon(CurrentSelected); } else { hideSelectIcon(CurrentSelected); } } } }
public static void hideSelectIcon(InputNavigation CurrentSelected) { var selectImageTF = CurrentSelected.transform.Find("selectImageGO"); if (selectImageTF != null) { selectImageTF.gameObject.SetActive(false); } }
public static void showSelectIcon(InputNavigation CurrentSelected) { var selectImageTF = CurrentSelected.transform.Find("selectImageGO"); if (selectImageTF == null) { GameObject selectImageGO = new GameObject("selectImageGO"); selectImageGO.transform.position = new Vector3(selectImageGO.transform.position.x + 100, selectImageGO.transform.position.y, selectImageGO.transform.position.z); Image selectImage = selectImageGO.AddComponent <Image>(); selectImage.sprite = Game.Resource.Load <Sprite>("Image/UI/UIAlchemy/alchemy_stove_shine.png"); selectImageGO.transform.SetParent(CurrentSelected.transform, false); } else { selectImageTF.gameObject.SetActive(true); } }