Skip to content

Commit 534fce3

Browse files
authored
Merge branch 'geode-sdk:main' into main
2 parents 72c5156 + e3ada8f commit 534fce3

4 files changed

Lines changed: 17 additions & 8 deletions

File tree

include/API.hpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace devtools {
2727
template <typename T>
2828
concept UnderlyingIntegral = std::is_integral_v<T> || std::is_integral_v<std::underlying_type_t<T>>;
2929

30-
struct RegisterNodeEvent final : geode::Event<RegisterNodeEvent, bool(geode::Function<void(cocos2d::CCNode*)>)> {
30+
struct RegisterNodeEvent final : geode::Event<RegisterNodeEvent, bool(geode::Function<void(cocos2d::CCNode*)>&)> {
3131
using Event::Event;
3232
};
3333

@@ -49,6 +49,10 @@ namespace devtools {
4949
return geode::Loader::get()->getLoadedMod("geode.devtools") != nullptr;
5050
}
5151

52+
/// @brief Checks if DevTools is currently open.
53+
/// @return True if DevTools is open, false otherwise.
54+
inline bool isOpen() GEODE_EVENT_EXPORT_NORES(&isOpen, ());
55+
5256
/// @brief Waits for DevTools to be loaded and then calls the provided callback.
5357
/// @param callback The function to call once DevTools is loaded.
5458
template <typename F>
@@ -72,11 +76,13 @@ namespace devtools {
7276
/// @see `devtools::property`, `devtools::label`, `devtools::enumerable`, `devtools::button`
7377
template <typename T, std::invocable<std::remove_pointer_t<T>*> F> requires IsCCNode<T>
7478
void registerNode(F&& callback) {
75-
RegisterNodeEvent().send([callback = std::forward<F>(callback)](cocos2d::CCNode* node) {
79+
geode::Function<void(cocos2d::CCNode*)> func = [callback = std::forward<F>(callback)](cocos2d::CCNode* node) {
7680
if (auto casted = geode::cast::typeinfo_cast<std::remove_pointer_t<T>*>(node)) {
7781
callback(casted);
7882
}
79-
});
83+
};
84+
85+
RegisterNodeEvent().send(func);
8086
}
8187

8288
/// @brief Renders a property editor for the given value in the DevTools UI.

mod.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
2-
"geode": "5.0.0-beta.1",
3-
"version": "v1.13.0",
2+
"geode": "5.0.1",
3+
"version": "v1.13.1",
44
"gd": {
55
"win": "2.2081",
6-
"android": "*",
6+
"android": "2.2081",
77
"mac": "2.2081",
88
"ios": "2.2081"
99
},

src/API.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ static void handleType() {
4444
}).leak();
4545
}
4646

47+
bool devtools::isOpen() {
48+
return DevTools::get()->isVisible();
49+
}
4750
void devtools::newLine() {
4851
ImGui::NewLine();
4952
}
@@ -87,7 +90,7 @@ bool devtools::button(ZStringView label) {
8790
}
8891

8992
$execute {
90-
devtools::RegisterNodeEvent().listen([](Function<void(CCNode*)> callback) {
93+
devtools::RegisterNodeEvent().listen([](Function<void(CCNode*)>& callback) {
9194
DevTools::get()->addCustomCallback(std::move(callback));
9295
return ListenerResult::Stop;
9396
}).leak();

src/DevTools.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ void DevTools::setDraggedNode(CCNode* node) {
114114
}
115115

116116
void DevTools::addCustomCallback(Function<void(CCNode*)>&& callback) {
117-
m_customCallbacks.push_back(std::forward<Function<void(CCNode*)>>(callback));
117+
m_customCallbacks.push_back(std::move(callback));
118118
}
119119

120120
DragButton* DevTools::getDragButton() {

0 commit comments

Comments
 (0)