You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-09 12:50:35 +00:00
Editor: Explicit parse_message handlers
Using custom macros for defining and registering message handlers hurts readability and navigability. This commit simplifies the ParseMessageFunc signature, expands the macros, and streamlines initialization.
This commit is contained in:
@@ -65,10 +65,6 @@ SceneDebugger::SceneDebugger() {
|
||||
singleton = this;
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (unlikely(parse_message_handlers.is_empty())) {
|
||||
_init_parse_message_handlers();
|
||||
}
|
||||
|
||||
LiveEditor::singleton = memnew(LiveEditor);
|
||||
RuntimeNodeSelect::singleton = memnew(RuntimeNodeSelect);
|
||||
|
||||
@@ -95,6 +91,9 @@ SceneDebugger::~SceneDebugger() {
|
||||
|
||||
void SceneDebugger::initialize() {
|
||||
if (EngineDebugger::is_active()) {
|
||||
#ifdef DEBUG_ENABLED
|
||||
_init_message_handlers();
|
||||
#endif
|
||||
memnew(SceneDebugger);
|
||||
}
|
||||
}
|
||||
@@ -137,17 +136,17 @@ void SceneDebugger::_handle_embed_input(const Ref<InputEvent> &p_event, const Di
|
||||
}
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_setup_scene(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
p_scene_tree->get_root()->connect(SceneStringName(window_input), callable_mp_static(SceneDebugger::_handle_input).bind(DebuggerMarshalls::deserialize_key_shortcut(p_args)));
|
||||
Error SceneDebugger::_msg_setup_scene(const Array &p_args) {
|
||||
SceneTree::get_singleton()->get_root()->connect(SceneStringName(window_input), callable_mp_static(SceneDebugger::_handle_input).bind(DebuggerMarshalls::deserialize_key_shortcut(p_args)));
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_request_scene_tree(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
p_live_editor->_send_tree();
|
||||
Error SceneDebugger::_msg_request_scene_tree(const Array &p_args) {
|
||||
LiveEditor::get_singleton()->_send_tree();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_save_node(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_save_node(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
|
||||
_save_node(p_args[0], p_args[1]);
|
||||
Array arr;
|
||||
@@ -156,7 +155,7 @@ Error SceneDebugger::_msg_save_node(const Array &p_args, SceneTree *p_scene_tree
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_inspect_objects(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_inspect_objects(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
|
||||
Vector<ObjectID> ids;
|
||||
for (const Variant &id : (Array)p_args[0]) {
|
||||
@@ -166,53 +165,53 @@ Error SceneDebugger::_msg_inspect_objects(const Array &p_args, SceneTree *p_scen
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_clear_selection(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
p_runtime_node_select->_clear_selection();
|
||||
Error SceneDebugger::_msg_clear_selection(const Array &p_args) {
|
||||
RuntimeNodeSelect::get_singleton()->_clear_selection();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_suspend_changed(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_suspend_changed(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
bool suspended = p_args[0];
|
||||
p_scene_tree->set_suspend(suspended);
|
||||
p_runtime_node_select->_update_input_state();
|
||||
SceneTree::get_singleton()->set_suspend(suspended);
|
||||
RuntimeNodeSelect::get_singleton()->_update_input_state();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_next_frame(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_next_frame(const Array &p_args) {
|
||||
_next_frame();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_debug_mute_audio(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_debug_mute_audio(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
bool do_mute = p_args[0];
|
||||
AudioServer::get_singleton()->set_debug_mute(do_mute);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_override_cameras(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_override_cameras(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
bool enable = p_args[0];
|
||||
bool from_editor = p_args[1];
|
||||
p_scene_tree->get_root()->enable_canvas_transform_override(enable);
|
||||
SceneTree::get_singleton()->get_root()->enable_canvas_transform_override(enable);
|
||||
#ifndef _3D_DISABLED
|
||||
p_scene_tree->get_root()->enable_camera_3d_override(enable);
|
||||
SceneTree::get_singleton()->get_root()->enable_camera_3d_override(enable);
|
||||
#endif // _3D_DISABLED
|
||||
p_runtime_node_select->_set_camera_override_enabled(enable && !from_editor);
|
||||
RuntimeNodeSelect::get_singleton()->_set_camera_override_enabled(enable && !from_editor);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_transform_camera_2d(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_transform_camera_2d(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
Transform2D transform = p_args[0];
|
||||
p_scene_tree->get_root()->set_canvas_transform_override(transform);
|
||||
p_runtime_node_select->_queue_selection_update();
|
||||
SceneTree::get_singleton()->get_root()->set_canvas_transform_override(transform);
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
Error SceneDebugger::_msg_transform_camera_3d(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_transform_camera_3d(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 5, ERR_INVALID_DATA);
|
||||
Transform3D transform = p_args[0];
|
||||
bool is_perspective = p_args[1];
|
||||
@@ -220,38 +219,38 @@ Error SceneDebugger::_msg_transform_camera_3d(const Array &p_args, SceneTree *p_
|
||||
float depth_near = p_args[3];
|
||||
float depth_far = p_args[4];
|
||||
if (is_perspective) {
|
||||
p_scene_tree->get_root()->set_camera_3d_override_perspective(size_or_fov, depth_near, depth_far);
|
||||
SceneTree::get_singleton()->get_root()->set_camera_3d_override_perspective(size_or_fov, depth_near, depth_far);
|
||||
} else {
|
||||
p_scene_tree->get_root()->set_camera_3d_override_orthogonal(size_or_fov, depth_near, depth_far);
|
||||
SceneTree::get_singleton()->get_root()->set_camera_3d_override_orthogonal(size_or_fov, depth_near, depth_far);
|
||||
}
|
||||
p_scene_tree->get_root()->set_camera_3d_override_transform(transform);
|
||||
p_runtime_node_select->_queue_selection_update();
|
||||
SceneTree::get_singleton()->get_root()->set_camera_3d_override_transform(transform);
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
#endif // _3D_DISABLED
|
||||
|
||||
Error SceneDebugger::_msg_set_object_property(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_set_object_property(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
|
||||
_set_object_property(p_args[0], p_args[1], p_args[2]);
|
||||
p_runtime_node_select->_queue_selection_update();
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_set_object_property_field(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_set_object_property_field(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 4, ERR_INVALID_DATA);
|
||||
_set_object_property(p_args[0], p_args[1], p_args[2], p_args[3]);
|
||||
p_runtime_node_select->_queue_selection_update();
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_reload_cached_files(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_reload_cached_files(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
PackedStringArray files = p_args[0];
|
||||
reload_cached_files(files);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_setup_embedded_shortcuts(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_setup_embedded_shortcuts(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty() || p_args[0].get_type() != Variant::DICTIONARY, ERR_INVALID_DATA);
|
||||
Dictionary dict = p_args[0];
|
||||
LocalVector<Variant> keys = dict.get_key_list();
|
||||
@@ -266,49 +265,49 @@ Error SceneDebugger::_msg_setup_embedded_shortcuts(const Array &p_args, SceneTre
|
||||
|
||||
// region Live editing.
|
||||
|
||||
Error SceneDebugger::_msg_live_set_root(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_set_root(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
|
||||
p_live_editor->_root_func(p_args[0], p_args[1]);
|
||||
LiveEditor::get_singleton()->_root_func(p_args[0], p_args[1]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_node_path(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_node_path(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
|
||||
p_live_editor->_node_path_func(p_args[0], p_args[1]);
|
||||
LiveEditor::get_singleton()->_node_path_func(p_args[0], p_args[1]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_res_path(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_res_path(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
|
||||
p_live_editor->_res_path_func(p_args[0], p_args[1]);
|
||||
LiveEditor::get_singleton()->_res_path_func(p_args[0], p_args[1]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_node_prop_res(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_node_prop_res(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
|
||||
p_live_editor->_node_set_res_func(p_args[0], p_args[1], p_args[2]);
|
||||
LiveEditor::get_singleton()->_node_set_res_func(p_args[0], p_args[1], p_args[2]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_node_prop(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_node_prop(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
|
||||
p_live_editor->_node_set_func(p_args[0], p_args[1], p_args[2]);
|
||||
LiveEditor::get_singleton()->_node_set_func(p_args[0], p_args[1], p_args[2]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_res_prop_res(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_res_prop_res(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
|
||||
p_live_editor->_res_set_res_func(p_args[0], p_args[1], p_args[2]);
|
||||
LiveEditor::get_singleton()->_res_set_res_func(p_args[0], p_args[1], p_args[2]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_res_prop(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_res_prop(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
|
||||
p_live_editor->_res_set_func(p_args[0], p_args[1], p_args[2]);
|
||||
LiveEditor::get_singleton()->_res_set_func(p_args[0], p_args[1], p_args[2]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_node_call(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_node_call(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
|
||||
LocalVector<Variant> args;
|
||||
LocalVector<Variant *> argptrs;
|
||||
@@ -318,11 +317,11 @@ Error SceneDebugger::_msg_live_node_call(const Array &p_args, SceneTree *p_scene
|
||||
args[i] = p_args[i + 2];
|
||||
argptrs[i] = &args[i];
|
||||
}
|
||||
p_live_editor->_node_call_func(p_args[0], p_args[1], argptrs.size() ? (const Variant **)argptrs.ptr() : nullptr, argptrs.size());
|
||||
LiveEditor::get_singleton()->_node_call_func(p_args[0], p_args[1], argptrs.size() ? (const Variant **)argptrs.ptr() : nullptr, argptrs.size());
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_res_call(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_res_call(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
|
||||
LocalVector<Variant> args;
|
||||
LocalVector<Variant *> argptrs;
|
||||
@@ -332,51 +331,51 @@ Error SceneDebugger::_msg_live_res_call(const Array &p_args, SceneTree *p_scene_
|
||||
args[i] = p_args[i + 2];
|
||||
argptrs[i] = &args[i];
|
||||
}
|
||||
p_live_editor->_res_call_func(p_args[0], p_args[1], argptrs.size() ? (const Variant **)argptrs.ptr() : nullptr, argptrs.size());
|
||||
LiveEditor::get_singleton()->_res_call_func(p_args[0], p_args[1], argptrs.size() ? (const Variant **)argptrs.ptr() : nullptr, argptrs.size());
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_create_node(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_create_node(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
|
||||
p_live_editor->_create_node_func(p_args[0], p_args[1], p_args[2]);
|
||||
LiveEditor::get_singleton()->_create_node_func(p_args[0], p_args[1], p_args[2]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_instantiate_node(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_instantiate_node(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
|
||||
p_live_editor->_instance_node_func(p_args[0], p_args[1], p_args[2]);
|
||||
LiveEditor::get_singleton()->_instance_node_func(p_args[0], p_args[1], p_args[2]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_remove_node(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_remove_node(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
p_live_editor->_remove_node_func(p_args[0]);
|
||||
p_runtime_node_select->_queue_selection_update();
|
||||
LiveEditor::get_singleton()->_remove_node_func(p_args[0]);
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_remove_and_keep_node(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_remove_and_keep_node(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
|
||||
p_live_editor->_remove_and_keep_node_func(p_args[0], p_args[1]);
|
||||
p_runtime_node_select->_queue_selection_update();
|
||||
LiveEditor::get_singleton()->_remove_and_keep_node_func(p_args[0], p_args[1]);
|
||||
RuntimeNodeSelect::get_singleton()->_queue_selection_update();
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_restore_node(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_restore_node(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 3, ERR_INVALID_DATA);
|
||||
p_live_editor->_restore_node_func(p_args[0], p_args[1], p_args[2]);
|
||||
LiveEditor::get_singleton()->_restore_node_func(p_args[0], p_args[1], p_args[2]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_duplicate_node(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_duplicate_node(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 2, ERR_INVALID_DATA);
|
||||
p_live_editor->_duplicate_node_func(p_args[0], p_args[1]);
|
||||
LiveEditor::get_singleton()->_duplicate_node_func(p_args[0], p_args[1]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_live_reparent_node(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_live_reparent_node(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.size() < 4, ERR_INVALID_DATA);
|
||||
p_live_editor->_reparent_node_func(p_args[0], p_args[1], p_args[2], p_args[3]);
|
||||
LiveEditor::get_singleton()->_reparent_node_func(p_args[0], p_args[1], p_args[2], p_args[3]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -384,65 +383,57 @@ Error SceneDebugger::_msg_live_reparent_node(const Array &p_args, SceneTree *p_s
|
||||
|
||||
// region Runtime Node Selection.
|
||||
|
||||
Error SceneDebugger::_msg_runtime_node_select_setup(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_runtime_node_select_setup(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty() || p_args[0].get_type() != Variant::DICTIONARY, ERR_INVALID_DATA);
|
||||
p_runtime_node_select->_setup(p_args[0]);
|
||||
RuntimeNodeSelect::get_singleton()->_setup(p_args[0]);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_runtime_node_select_set_type(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_runtime_node_select_set_type(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
RuntimeNodeSelect::NodeType type = (RuntimeNodeSelect::NodeType)(int)p_args[0];
|
||||
p_runtime_node_select->_node_set_type(type);
|
||||
RuntimeNodeSelect::get_singleton()->_node_set_type(type);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_runtime_node_select_set_mode(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_runtime_node_select_set_mode(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
RuntimeNodeSelect::SelectMode mode = (RuntimeNodeSelect::SelectMode)(int)p_args[0];
|
||||
p_runtime_node_select->_select_set_mode(mode);
|
||||
RuntimeNodeSelect::get_singleton()->_select_set_mode(mode);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_runtime_node_select_set_visible(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
Error SceneDebugger::_msg_runtime_node_select_set_visible(const Array &p_args) {
|
||||
ERR_FAIL_COND_V(p_args.is_empty(), ERR_INVALID_DATA);
|
||||
bool visible = p_args[0];
|
||||
p_runtime_node_select->_set_selection_visible(visible);
|
||||
RuntimeNodeSelect::get_singleton()->_set_selection_visible(visible);
|
||||
return OK;
|
||||
}
|
||||
|
||||
Error SceneDebugger::_msg_runtime_node_select_reset_camera_2d(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
p_runtime_node_select->_reset_camera_2d();
|
||||
Error SceneDebugger::_msg_runtime_node_select_reset_camera_2d(const Array &p_args) {
|
||||
RuntimeNodeSelect::get_singleton()->_reset_camera_2d();
|
||||
return OK;
|
||||
}
|
||||
#ifndef _3D_DISABLED
|
||||
Error SceneDebugger::_msg_runtime_node_select_reset_camera_3d(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select) {
|
||||
p_runtime_node_select->_reset_camera_3d();
|
||||
Error SceneDebugger::_msg_runtime_node_select_reset_camera_3d(const Array &p_args) {
|
||||
RuntimeNodeSelect::get_singleton()->_reset_camera_3d();
|
||||
return OK;
|
||||
}
|
||||
#endif // _3D_DISABLED
|
||||
|
||||
// endregion
|
||||
|
||||
HashMap<String, SceneDebugger::ParseMessageFunc> SceneDebugger::message_handlers;
|
||||
|
||||
Error SceneDebugger::parse_message(void *p_user, const String &p_msg, const Array &p_args, bool &r_captured) {
|
||||
SceneTree *scene_tree = SceneTree::get_singleton();
|
||||
if (!scene_tree) {
|
||||
return ERR_UNCONFIGURED;
|
||||
}
|
||||
ERR_FAIL_NULL_V(SceneTree::get_singleton(), ERR_UNCONFIGURED);
|
||||
ERR_FAIL_NULL_V(LiveEditor::get_singleton(), ERR_UNCONFIGURED);
|
||||
ERR_FAIL_NULL_V(RuntimeNodeSelect::get_singleton(), ERR_UNCONFIGURED);
|
||||
|
||||
LiveEditor *live_editor = LiveEditor::get_singleton();
|
||||
if (!live_editor) {
|
||||
return ERR_UNCONFIGURED;
|
||||
}
|
||||
RuntimeNodeSelect *runtime_node_select = RuntimeNodeSelect::get_singleton();
|
||||
if (!runtime_node_select) {
|
||||
return ERR_UNCONFIGURED;
|
||||
}
|
||||
|
||||
ParseMessageFunc *fn_ptr = parse_message_handlers.getptr(p_msg);
|
||||
ParseMessageFunc *fn_ptr = message_handlers.getptr(p_msg);
|
||||
if (fn_ptr) {
|
||||
r_captured = true;
|
||||
return (*fn_ptr)(p_args, scene_tree, live_editor, runtime_node_select);
|
||||
return (*fn_ptr)(p_args);
|
||||
}
|
||||
|
||||
if (p_msg.begins_with("live_") || p_msg.begins_with("runtime_node_select_")) {
|
||||
@@ -457,54 +448,48 @@ Error SceneDebugger::parse_message(void *p_user, const String &p_msg, const Arra
|
||||
return OK;
|
||||
}
|
||||
|
||||
HashMap<String, SceneDebugger::ParseMessageFunc> SceneDebugger::parse_message_handlers;
|
||||
|
||||
void SceneDebugger::_init_parse_message_handlers() {
|
||||
#define HANDLER(name) parse_message_handlers[#name] = _msg_##name
|
||||
|
||||
HANDLER(setup_scene);
|
||||
HANDLER(setup_embedded_shortcuts);
|
||||
HANDLER(request_scene_tree);
|
||||
HANDLER(save_node);
|
||||
HANDLER(inspect_objects);
|
||||
HANDLER(clear_selection);
|
||||
HANDLER(suspend_changed);
|
||||
HANDLER(next_frame);
|
||||
HANDLER(debug_mute_audio);
|
||||
HANDLER(override_cameras);
|
||||
HANDLER(transform_camera_2d);
|
||||
void SceneDebugger::_init_message_handlers() {
|
||||
message_handlers["setup_scene"] = _msg_setup_scene;
|
||||
message_handlers["setup_embedded_shortcuts"] = _msg_setup_embedded_shortcuts;
|
||||
message_handlers["request_scene_tree"] = _msg_request_scene_tree;
|
||||
message_handlers["save_node"] = _msg_save_node;
|
||||
message_handlers["inspect_objects"] = _msg_inspect_objects;
|
||||
message_handlers["clear_selection"] = _msg_clear_selection;
|
||||
message_handlers["suspend_changed"] = _msg_suspend_changed;
|
||||
message_handlers["next_frame"] = _msg_next_frame;
|
||||
message_handlers["debug_mute_audio"] = _msg_debug_mute_audio;
|
||||
message_handlers["override_cameras"] = _msg_override_cameras;
|
||||
message_handlers["transform_camera_2d"] = _msg_transform_camera_2d;
|
||||
#ifndef _3D_DISABLED
|
||||
HANDLER(transform_camera_3d);
|
||||
message_handlers["transform_camera_3d"] = _msg_transform_camera_3d;
|
||||
#endif
|
||||
HANDLER(set_object_property);
|
||||
HANDLER(set_object_property_field);
|
||||
HANDLER(reload_cached_files);
|
||||
HANDLER(live_set_root);
|
||||
HANDLER(live_node_path);
|
||||
HANDLER(live_res_path);
|
||||
HANDLER(live_node_prop_res);
|
||||
HANDLER(live_node_prop);
|
||||
HANDLER(live_res_prop_res);
|
||||
HANDLER(live_res_prop);
|
||||
HANDLER(live_node_call);
|
||||
HANDLER(live_res_call);
|
||||
HANDLER(live_create_node);
|
||||
HANDLER(live_instantiate_node);
|
||||
HANDLER(live_remove_node);
|
||||
HANDLER(live_remove_and_keep_node);
|
||||
HANDLER(live_restore_node);
|
||||
HANDLER(live_duplicate_node);
|
||||
HANDLER(live_reparent_node);
|
||||
HANDLER(runtime_node_select_setup);
|
||||
HANDLER(runtime_node_select_set_type);
|
||||
HANDLER(runtime_node_select_set_mode);
|
||||
HANDLER(runtime_node_select_set_visible);
|
||||
HANDLER(runtime_node_select_reset_camera_2d);
|
||||
message_handlers["set_object_property"] = _msg_set_object_property;
|
||||
message_handlers["set_object_property_field"] = _msg_set_object_property_field;
|
||||
message_handlers["reload_cached_files"] = _msg_reload_cached_files;
|
||||
message_handlers["live_set_root"] = _msg_live_set_root;
|
||||
message_handlers["live_node_path"] = _msg_live_node_path;
|
||||
message_handlers["live_res_path"] = _msg_live_res_path;
|
||||
message_handlers["live_node_prop_res"] = _msg_live_node_prop_res;
|
||||
message_handlers["live_node_prop"] = _msg_live_node_prop;
|
||||
message_handlers["live_res_prop_res"] = _msg_live_res_prop_res;
|
||||
message_handlers["live_res_prop"] = _msg_live_res_prop;
|
||||
message_handlers["live_node_call"] = _msg_live_node_call;
|
||||
message_handlers["live_res_call"] = _msg_live_res_call;
|
||||
message_handlers["live_create_node"] = _msg_live_create_node;
|
||||
message_handlers["live_instantiate_node"] = _msg_live_instantiate_node;
|
||||
message_handlers["live_remove_node"] = _msg_live_remove_node;
|
||||
message_handlers["live_remove_and_keep_node"] = _msg_live_remove_and_keep_node;
|
||||
message_handlers["live_restore_node"] = _msg_live_restore_node;
|
||||
message_handlers["live_duplicate_node"] = _msg_live_duplicate_node;
|
||||
message_handlers["live_reparent_node"] = _msg_live_reparent_node;
|
||||
message_handlers["runtime_node_select_setup"] = _msg_runtime_node_select_setup;
|
||||
message_handlers["runtime_node_select_set_type"] = _msg_runtime_node_select_set_type;
|
||||
message_handlers["runtime_node_select_set_mode"] = _msg_runtime_node_select_set_mode;
|
||||
message_handlers["runtime_node_select_set_visible"] = _msg_runtime_node_select_set_visible;
|
||||
message_handlers["runtime_node_select_reset_camera_2d"] = _msg_runtime_node_select_reset_camera_2d;
|
||||
#ifndef _3D_DISABLED
|
||||
HANDLER(runtime_node_select_reset_camera_3d);
|
||||
message_handlers["runtime_node_select_reset_camera_3d"] = _msg_runtime_node_select_reset_camera_3d;
|
||||
#endif
|
||||
|
||||
#undef HANDLER
|
||||
}
|
||||
|
||||
void SceneDebugger::_save_node(ObjectID id, const String &p_path) {
|
||||
|
||||
@@ -74,56 +74,52 @@ private:
|
||||
static void _next_frame();
|
||||
|
||||
/// Message handler function for parse_message.
|
||||
typedef Error (*ParseMessageFunc)(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select);
|
||||
static HashMap<String, ParseMessageFunc> parse_message_handlers;
|
||||
static void _init_parse_message_handlers();
|
||||
typedef Error (*ParseMessageFunc)(const Array &p_args);
|
||||
static HashMap<String, ParseMessageFunc> message_handlers;
|
||||
static void _init_message_handlers();
|
||||
|
||||
#define HANDLER(name) static Error _msg_##name(const Array &p_args, SceneTree *p_scene_tree, LiveEditor *p_live_editor, RuntimeNodeSelect *p_runtime_node_select)
|
||||
|
||||
HANDLER(setup_scene);
|
||||
HANDLER(setup_embedded_shortcuts);
|
||||
HANDLER(request_scene_tree);
|
||||
HANDLER(save_node);
|
||||
HANDLER(inspect_objects);
|
||||
HANDLER(clear_selection);
|
||||
HANDLER(suspend_changed);
|
||||
HANDLER(next_frame);
|
||||
HANDLER(debug_mute_audio);
|
||||
HANDLER(override_cameras);
|
||||
HANDLER(transform_camera_2d);
|
||||
static Error _msg_setup_scene(const Array &p_args);
|
||||
static Error _msg_setup_embedded_shortcuts(const Array &p_args);
|
||||
static Error _msg_request_scene_tree(const Array &p_args);
|
||||
static Error _msg_save_node(const Array &p_args);
|
||||
static Error _msg_inspect_objects(const Array &p_args);
|
||||
static Error _msg_clear_selection(const Array &p_args);
|
||||
static Error _msg_suspend_changed(const Array &p_args);
|
||||
static Error _msg_next_frame(const Array &p_args);
|
||||
static Error _msg_debug_mute_audio(const Array &p_args);
|
||||
static Error _msg_override_cameras(const Array &p_args);
|
||||
static Error _msg_transform_camera_2d(const Array &p_args);
|
||||
#ifndef _3D_DISABLED
|
||||
HANDLER(transform_camera_3d);
|
||||
static Error _msg_transform_camera_3d(const Array &p_args);
|
||||
#endif
|
||||
HANDLER(set_object_property);
|
||||
HANDLER(set_object_property_field);
|
||||
HANDLER(reload_cached_files);
|
||||
HANDLER(live_set_root);
|
||||
HANDLER(live_node_path);
|
||||
HANDLER(live_res_path);
|
||||
HANDLER(live_node_prop_res);
|
||||
HANDLER(live_node_prop);
|
||||
HANDLER(live_res_prop_res);
|
||||
HANDLER(live_res_prop);
|
||||
HANDLER(live_node_call);
|
||||
HANDLER(live_res_call);
|
||||
HANDLER(live_create_node);
|
||||
HANDLER(live_instantiate_node);
|
||||
HANDLER(live_remove_node);
|
||||
HANDLER(live_remove_and_keep_node);
|
||||
HANDLER(live_restore_node);
|
||||
HANDLER(live_duplicate_node);
|
||||
HANDLER(live_reparent_node);
|
||||
HANDLER(runtime_node_select_setup);
|
||||
HANDLER(runtime_node_select_set_type);
|
||||
HANDLER(runtime_node_select_set_mode);
|
||||
HANDLER(runtime_node_select_set_visible);
|
||||
HANDLER(runtime_node_select_reset_camera_2d);
|
||||
static Error _msg_set_object_property(const Array &p_args);
|
||||
static Error _msg_set_object_property_field(const Array &p_args);
|
||||
static Error _msg_reload_cached_files(const Array &p_args);
|
||||
static Error _msg_live_set_root(const Array &p_args);
|
||||
static Error _msg_live_node_path(const Array &p_args);
|
||||
static Error _msg_live_res_path(const Array &p_args);
|
||||
static Error _msg_live_node_prop_res(const Array &p_args);
|
||||
static Error _msg_live_node_prop(const Array &p_args);
|
||||
static Error _msg_live_res_prop_res(const Array &p_args);
|
||||
static Error _msg_live_res_prop(const Array &p_args);
|
||||
static Error _msg_live_node_call(const Array &p_args);
|
||||
static Error _msg_live_res_call(const Array &p_args);
|
||||
static Error _msg_live_create_node(const Array &p_args);
|
||||
static Error _msg_live_instantiate_node(const Array &p_args);
|
||||
static Error _msg_live_remove_node(const Array &p_args);
|
||||
static Error _msg_live_remove_and_keep_node(const Array &p_args);
|
||||
static Error _msg_live_restore_node(const Array &p_args);
|
||||
static Error _msg_live_duplicate_node(const Array &p_args);
|
||||
static Error _msg_live_reparent_node(const Array &p_args);
|
||||
static Error _msg_runtime_node_select_setup(const Array &p_args);
|
||||
static Error _msg_runtime_node_select_set_type(const Array &p_args);
|
||||
static Error _msg_runtime_node_select_set_mode(const Array &p_args);
|
||||
static Error _msg_runtime_node_select_set_visible(const Array &p_args);
|
||||
static Error _msg_runtime_node_select_reset_camera_2d(const Array &p_args);
|
||||
#ifndef _3D_DISABLED
|
||||
HANDLER(runtime_node_select_reset_camera_3d);
|
||||
static Error _msg_runtime_node_select_reset_camera_3d(const Array &p_args);
|
||||
#endif
|
||||
|
||||
#undef HANDLER
|
||||
|
||||
public:
|
||||
static Error parse_message(void *p_user, const String &p_msg, const Array &p_args, bool &r_captured);
|
||||
static void add_to_cache(const String &p_filename, Node *p_node);
|
||||
|
||||
Reference in New Issue
Block a user