You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-04 17:04:49 +00:00
-Added AnimationGraphPlayer (still missing features)
-Added ability to edit resources from built-in inspector (wip, needs testing and feedback)
This commit is contained in:
@@ -66,6 +66,7 @@
|
||||
#include "editor/import/resource_importer_scene.h"
|
||||
#include "editor/import/resource_importer_texture.h"
|
||||
#include "editor/import/resource_importer_wav.h"
|
||||
#include "editor/plugins/animation_blend_tree_editor_plugin.h"
|
||||
#include "editor/plugins/animation_player_editor_plugin.h"
|
||||
#include "editor/plugins/animation_tree_editor_plugin.h"
|
||||
#include "editor/plugins/asset_library_editor_plugin.h"
|
||||
@@ -1300,7 +1301,25 @@ void EditorNode::_dialog_action(String p_file) {
|
||||
}
|
||||
}
|
||||
|
||||
void EditorNode::push_item(Object *p_object, const String &p_property) {
|
||||
bool EditorNode::item_has_editor(Object *p_object) {
|
||||
|
||||
return editor_data.get_subeditors(p_object).size() > 0;
|
||||
}
|
||||
|
||||
void EditorNode::edit_item(Object *p_object) {
|
||||
|
||||
Vector<EditorPlugin *> sub_plugins = editor_data.get_subeditors(p_object);
|
||||
|
||||
if (!sub_plugins.empty()) {
|
||||
_display_top_editors(false);
|
||||
|
||||
_set_top_editors(sub_plugins);
|
||||
_set_editing_top_editors(p_object);
|
||||
_display_top_editors(true);
|
||||
}
|
||||
}
|
||||
|
||||
void EditorNode::push_item(Object *p_object, const String &p_property, bool p_inspector_only) {
|
||||
|
||||
if (!p_object) {
|
||||
get_inspector()->edit(NULL);
|
||||
@@ -1312,7 +1331,9 @@ void EditorNode::push_item(Object *p_object, const String &p_property) {
|
||||
uint32_t id = p_object->get_instance_id();
|
||||
if (id != editor_history.get_current()) {
|
||||
|
||||
if (p_property == "")
|
||||
if (p_inspector_only) {
|
||||
editor_history.add_object_inspector_only(id);
|
||||
} else if (p_property == "")
|
||||
editor_history.add_object(id);
|
||||
else
|
||||
editor_history.add_object(id, p_property);
|
||||
@@ -1366,6 +1387,7 @@ void EditorNode::_edit_current() {
|
||||
|
||||
uint32_t current = editor_history.get_current();
|
||||
Object *current_obj = current > 0 ? ObjectDB::get_instance(current) : NULL;
|
||||
bool inspector_only = editor_history.is_current_inspector_only();
|
||||
|
||||
this->current = current_obj;
|
||||
|
||||
@@ -1457,57 +1479,60 @@ void EditorNode::_edit_current() {
|
||||
|
||||
/* Take care of PLUGIN EDITOR */
|
||||
|
||||
EditorPlugin *main_plugin = editor_data.get_editor(current_obj);
|
||||
if (!inspector_only) {
|
||||
|
||||
if (main_plugin) {
|
||||
EditorPlugin *main_plugin = editor_data.get_editor(current_obj);
|
||||
|
||||
// special case if use of external editor is true
|
||||
if (main_plugin->get_name() == "Script" && (bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor")) || overrides_external_editor(current_obj))) {
|
||||
if (!changing_scene)
|
||||
main_plugin->edit(current_obj);
|
||||
}
|
||||
if (main_plugin) {
|
||||
|
||||
else if (main_plugin != editor_plugin_screen && (!ScriptEditor::get_singleton() || !ScriptEditor::get_singleton()->is_visible_in_tree() || ScriptEditor::get_singleton()->can_take_away_focus())) {
|
||||
// update screen main_plugin
|
||||
|
||||
if (!changing_scene) {
|
||||
|
||||
if (editor_plugin_screen)
|
||||
editor_plugin_screen->make_visible(false);
|
||||
editor_plugin_screen = main_plugin;
|
||||
editor_plugin_screen->edit(current_obj);
|
||||
|
||||
editor_plugin_screen->make_visible(true);
|
||||
|
||||
int plugin_count = editor_data.get_editor_plugin_count();
|
||||
for (int i = 0; i < plugin_count; i++) {
|
||||
editor_data.get_editor_plugin(i)->notify_main_screen_changed(editor_plugin_screen->get_name());
|
||||
}
|
||||
|
||||
for (int i = 0; i < editor_table.size(); i++) {
|
||||
|
||||
main_editor_buttons[i]->set_pressed(editor_table[i] == main_plugin);
|
||||
}
|
||||
// special case if use of external editor is true
|
||||
if (main_plugin->get_name() == "Script" && (bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor")) || overrides_external_editor(current_obj))) {
|
||||
if (!changing_scene)
|
||||
main_plugin->edit(current_obj);
|
||||
}
|
||||
|
||||
} else {
|
||||
else if (main_plugin != editor_plugin_screen && (!ScriptEditor::get_singleton() || !ScriptEditor::get_singleton()->is_visible_in_tree() || ScriptEditor::get_singleton()->can_take_away_focus())) {
|
||||
// update screen main_plugin
|
||||
|
||||
editor_plugin_screen->edit(current_obj);
|
||||
if (!changing_scene) {
|
||||
|
||||
if (editor_plugin_screen)
|
||||
editor_plugin_screen->make_visible(false);
|
||||
editor_plugin_screen = main_plugin;
|
||||
editor_plugin_screen->edit(current_obj);
|
||||
|
||||
editor_plugin_screen->make_visible(true);
|
||||
|
||||
int plugin_count = editor_data.get_editor_plugin_count();
|
||||
for (int i = 0; i < plugin_count; i++) {
|
||||
editor_data.get_editor_plugin(i)->notify_main_screen_changed(editor_plugin_screen->get_name());
|
||||
}
|
||||
|
||||
for (int i = 0; i < editor_table.size(); i++) {
|
||||
|
||||
main_editor_buttons[i]->set_pressed(editor_table[i] == main_plugin);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
editor_plugin_screen->edit(current_obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Vector<EditorPlugin *> sub_plugins = editor_data.get_subeditors(current_obj);
|
||||
Vector<EditorPlugin *> sub_plugins = editor_data.get_subeditors(current_obj);
|
||||
|
||||
if (!sub_plugins.empty()) {
|
||||
_display_top_editors(false);
|
||||
if (!sub_plugins.empty()) {
|
||||
_display_top_editors(false);
|
||||
|
||||
_set_top_editors(sub_plugins);
|
||||
_set_editing_top_editors(current_obj);
|
||||
_display_top_editors(true);
|
||||
_set_top_editors(sub_plugins);
|
||||
_set_editing_top_editors(current_obj);
|
||||
_display_top_editors(true);
|
||||
|
||||
} else if (!editor_plugins_over->get_plugins_list().empty()) {
|
||||
} else if (!editor_plugins_over->get_plugins_list().empty()) {
|
||||
|
||||
_hide_top_editors();
|
||||
_hide_top_editors();
|
||||
}
|
||||
}
|
||||
|
||||
inspector_dock->update(current_obj);
|
||||
@@ -5346,6 +5371,8 @@ EditorNode::EditorNode() {
|
||||
add_editor_plugin(memnew(SpatialEditorPlugin(this)));
|
||||
add_editor_plugin(memnew(ScriptEditorPlugin(this)));
|
||||
|
||||
add_editor_plugin(memnew(AnimationNodeBlendTreeEditorPlugin(this)));
|
||||
|
||||
EditorAudioBuses *audio_bus_editor = EditorAudioBuses::register_editor();
|
||||
|
||||
ScriptTextEditor::register_editor(); //register one for text scripts
|
||||
|
||||
Reference in New Issue
Block a user