11#include " sfx.hpp"
22#include " mod_hooker.hpp"
3+ #include < Geode/modify/EditorUI.hpp>
34#include < Geode/modify/MenuLayer.hpp>
45
56#include < Geode/Geode.hpp>
@@ -10,61 +11,64 @@ using namespace geode::prelude;
1011// setCallback, setSFX, etc. check if the node is valid first for you, but otherwise
1112// always make sure to check if a node added by a mod is valid before using it
1213
13- void registerModHooks () {
14- registerEditorUIHook (" hjfod.betteredit" , [](EditorUI* self) {
15- setSFX (
16- self->querySelector (" undo-menu > hjfod.betteredit/hide-ui-toggle" ),
17- EditorSFX::ToggleButton
18- );
19- setToggleSFX (
20- self->m_scaleControl ->querySelector (" hjfod.betteredit/snap-lock" ),
21- EditorSFX::Lock, EditorSFX::Unlock
22- );
23- setToggleSFX (
24- self->m_rotationControl ->querySelector (" hjfod.betteredit/snap-lock" ),
25- EditorSFX::Lock, EditorSFX::Unlock
26- );
27- setToggleSFX (
28- self->m_rotationControl ->querySelector (" hjfod.betteredit/pos-lock" ),
29- EditorSFX::Lock, EditorSFX::Unlock
30- );
31- setSFX (
32- self->m_scaleControl ->querySelector (" hjfod.betteredit/snap-lock-size" ),
33- EditorSFX::ToggleButton
34- );
35- setSFX (
36- self->m_rotationControl ->querySelector (" hjfod.betteredit/snap-lock-size" ),
37- EditorSFX::ToggleButton
38- );
39- });
14+ class $modify(EditorUI) {
15+ static void onModify (auto & self) {
16+ if (!self.setHookPriority (" EditorUI::init" , Priority::VeryLatePost)) {
17+ log::warn (" Failed to set hook priority for EditorUI::init" );
18+ }
19+ }
4020
41- registerEditorUIHook (" razoom.object_groups" , [](EditorUI* self) {
42- for (auto editButtonBar : CCArrayExt<EditButtonBar*>(self->m_createButtonBars )) {
43- for (auto page : CCArrayExt<ButtonPage*>(editButtonBar->m_pagesArray )) {
44- auto menu = page->getChildByType <CCMenu>(0 );
45- if (!menu) continue ;
21+ bool init (LevelEditorLayer* lel) {
22+ if (!EditorUI::init (lel)) return false ;
23+
24+ if (Loader::get ()->isModLoaded (" hjfod.betteredit" )) {
25+ setSFX (
26+ querySelector (" undo-menu > hjfod.betteredit/hide-ui-toggle" ),
27+ EditorSFX::ToggleButton
28+ );
29+ setToggleSFX (
30+ m_scaleControl->querySelector (" hjfod.betteredit/snap-lock" ),
31+ EditorSFX::Lock, EditorSFX::Unlock
32+ );
33+ setToggleSFX (
34+ m_rotationControl->querySelector (" hjfod.betteredit/snap-lock" ),
35+ EditorSFX::Lock, EditorSFX::Unlock
36+ );
37+ setToggleSFX (
38+ m_rotationControl->querySelector (" hjfod.betteredit/pos-lock" ),
39+ EditorSFX::Lock, EditorSFX::Unlock
40+ );
41+ setSFX (
42+ m_scaleControl->querySelector (" hjfod.betteredit/snap-lock-size" ),
43+ EditorSFX::ToggleButton
44+ );
45+ setSFX (
46+ m_rotationControl->querySelector (" hjfod.betteredit/snap-lock-size" ),
47+ EditorSFX::ToggleButton
48+ );
49+ }
4650
47- for (auto child : CCArrayExt<CCNode*>(menu->getChildren ())) {
48- auto menuItem = typeinfo_cast<CreateMenuItem*>(child);
49- if (!menuItem) continue ;
51+ if (Loader::get ()->isModLoaded (" razoom.object_groups" )) {
52+ for (auto editButtonBar : CCArrayExt<EditButtonBar*>(m_createButtonBars)) {
53+ for (auto page : CCArrayExt<ButtonPage*>(editButtonBar->m_pagesArray )) {
54+ auto menu = page->getChildByType <CCMenu>(0 );
55+ if (!menu) continue ;
5056
51- if (child->getTag () == 0 ) {
52- setSFX (menuItem, EditorSFX::SwitchTab);
57+ for (auto child : CCArrayExt<CCNode*>(menu->getChildren ())) {
58+ auto menuItem = typeinfo_cast<CreateMenuItem*>(child);
59+ if (!menuItem) continue ;
60+
61+ if (child->getTag () == 0 ) {
62+ setSFX (menuItem, EditorSFX::SwitchTab);
63+ }
5364 }
5465 }
5566 }
5667 }
57- });
58-
59- registerPopupHook (" ObjectSelectPopup" , " alphalaneous.creative_mode" , [](FLAlertLayer* self) {
60- auto tabsMenu = self->m_mainLayer ->getChildByID (" tabs-menu" );
61- if (!tabsMenu) return ;
6268
63- for (auto child : CCArrayExt<CCNode*>(tabsMenu->getChildren ())) {
64- setSFX (child, EditorSFX::SwitchTab);
65- }
66- });
67- }
69+ return true ;
70+ }
71+ };
6872
6973class $modify(MenuLayer) {
7074 $override
@@ -73,10 +77,17 @@ class $modify(MenuLayer) {
7377
7478 static bool hooksRegistered = false ;
7579
76- if (!hooksRegistered) {
77- registerModHooks ();
78- hooksRegistered = true ;
79- }
80+ if (hooksRegistered) return true ;
81+ hooksRegistered = true ;
82+
83+ registerPopupHook (" ObjectSelectPopup" , " alphalaneous.creative_mode" , [](FLAlertLayer* self) {
84+ auto tabsMenu = self->m_mainLayer ->getChildByID (" tabs-menu" );
85+ if (!tabsMenu) return ;
86+
87+ for (auto child : CCArrayExt<CCNode*>(tabsMenu->getChildren ())) {
88+ setSFX (child, EditorSFX::SwitchTab);
89+ }
90+ });
8091
8192 return true ;
8293 }
0 commit comments