internal static void CreateCustomComponentMenu() { try { GameObject ComponentMenuObject = Resource.LoadPrefabInstance("LevelEditorLevelNameSelectMenu", true); ComponentMenuObject.name = "CustomComponentSelectMenu"; AddCustomComponentMenuLogic ComponentMenu = ComponentMenuObject.AddComponent <AddCustomComponentMenuLogic>(); LevelEditorLevelNameSelectMenuLogic MusicLogic = ComponentMenuObject.GetComponent <LevelEditorLevelNameSelectMenuLogic>(); ComponentMenu.Init(MusicLogic); foreach (LevelEditorLevelNameSelectMenuButton trackButton in ComponentMenuObject.GetComponentsInChildren <LevelEditorLevelNameSelectMenuButton>(true)) { CustomComponentSelectMenuButton componentButton = trackButton.gameObject.AddComponent <CustomComponentSelectMenuButton>(); componentButton.Init(trackButton); trackButton.gameObject.RemoveComponents <LevelEditorLevelNameSelectMenuButton>(); } ComponentMenuObject.RemoveComponents <LevelEditorLevelNameSelectMenuLogic>(); LevelEditorEx.componentSelectMenuLogic = ComponentMenu; } catch (Exception e) { Plugin.Log.Exception(e); } }
internal static void Postfix(LevelEditorLevelNameSelectMenuLogic __instance) { if (Mod.Instance.Config.DisplayWorkshopLevels && !G.Sys.GameManager_.IsDevBuild_) { LevelSetsManager levelSets = G.Sys.LevelSets_; __instance.CreateButtons(levelSets.LevelsLevelFilePaths_.ToList(), Colors.YellowColors.gold, LevelEditorLevelNameSelectMenuLogic.LevelPathEntry.DisplayOption.RelativePath); __instance.CreateButtons(levelSets.WorkshopLevelFilePaths_.ToList(), GConstants.communityLevelColor_, LevelEditorLevelNameSelectMenuLogic.LevelPathEntry.DisplayOption.LevelName); __instance.buttonList_.SortAndUpdateVisibleButtons(); } }
internal void Init(LevelEditorLevelNameSelectMenuLogic menuLogic) { levelPathInput_ = menuLogic.levelPathInput_; headerLabel_ = menuLogic.headerLabel_; buttonList_ = menuLogic.buttonList_; const string okButtonHierarchy = "Panel/OK Button/Sprite"; UIEventListener okButton = transform.Find(okButtonHierarchy).GetComponent <UIEventListener>(); const string cancelButtonHierarchy = "Panel/Cancel Button/Sprite"; UIEventListener cancelButton = transform.Find(cancelButtonHierarchy).GetComponent <UIEventListener>(); const string closeButtonHierarchy = "Panel/Window Content/Corner X"; UIButton closeButton = transform.Find(closeButtonHierarchy).GetComponent <UIButton>(); closeButton.onClick.Add(new EventDelegate(CloseWindow)); cancelButton.onClick = (_) => CloseWindow(); okButton.onClick = (_) => ConfirmInput(); }