Work on an editor plugin. Removed it from the build.

This commit is contained in:
Relintai 2020-01-25 22:06:43 +01:00
parent b0b38396c4
commit 6e8d135f0d
4 changed files with 128 additions and 0 deletions

2
SCsub
View File

@ -58,6 +58,8 @@ sources = [
"clutter/ground_clutter.cpp",
"clutter/ground_clutter_foliage.cpp",
#"prop_tool/prop_tool_editor_plugin.cpp",
]
if ARGUMENTS.get('custom_modules_shared', 'no') == 'yes':

View File

@ -0,0 +1,66 @@
#include "prop_tool_editor_plugin.h"
#include "editor/editor_scale.h"
void PropDataEditor::edit(const Ref<PropData> &prop) {
}
void PropDataEditor::_bind_methods() {
}
PropDataEditor::PropDataEditor(EditorNode *p_editor) {
set_h_size_flags(SIZE_EXPAND_FILL);
set_custom_minimum_size(Size2(0, 200) * EDSCALE);
Tree *tree = memnew(Tree);
tree->set_custom_minimum_size(Size2(100, 0) * EDSCALE);
add_child(tree);
ViewportContainer *container = memnew(ViewportContainer);
container->set_h_size_flags(SIZE_EXPAND_FILL);
container->set_h_size_flags(SIZE_EXPAND_FILL);
container->set_v_size_flags(SIZE_EXPAND_FILL);
add_child(container);
Viewport *viewport = memnew(Viewport);
viewport->set_size(Size2(400, 400));
container->add_child(viewport);
set_split_offset(200 * EDSCALE);
}
PropDataEditor::~PropDataEditor() {
}
void PropDataEditorPlugin::edit(Object *p_object) {
}
bool PropDataEditorPlugin::handles(Object *p_object) const {
bool handles = p_object->is_class("PropData");
if (handles) {
prop_editor_button->show();
} else {
prop_editor_button->hide();
}
return handles;
}
void PropDataEditorPlugin::make_visible(bool p_visible) {
}
PropDataEditorPlugin::PropDataEditorPlugin(EditorNode *p_node) {
editor = p_node;
prop_editor = memnew(PropDataEditor(editor));
prop_editor_button = add_control_to_bottom_panel(prop_editor, "Prop");
prop_editor->hide();
}
PropDataEditorPlugin::~PropDataEditorPlugin() {
}

View File

@ -0,0 +1,54 @@
#ifndef PROP_TOOL_EDITOR_PLUGIN_H
#define PROP_TOOL_EDITOR_PLUGIN_H
#include "editor/editor_plugin.h"
#include "editor/pane_drag.h"
#include "scene/gui/graph_edit.h"
#include "scene/gui/menu_button.h"
#include "scene/main/viewport.h"
#include "../props/prop_data.h"
#include "scene/gui/viewport_container.h"
#include "editor/plugins/spatial_editor_plugin.h"
class PropDataEditor : public HSplitContainer {
GDCLASS(PropDataEditor, HSplitContainer);
public:
void edit(const Ref<PropData> &prop);
PropDataEditor() {}
PropDataEditor(EditorNode *p_editor);
~PropDataEditor();
protected:
static void _bind_methods();
private:
};
class PropDataEditorPlugin : public EditorPlugin {
GDCLASS(PropDataEditorPlugin, EditorPlugin);
public:
virtual String get_name() const { return "PropData"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_object);
virtual bool handles(Object *p_object) const;
virtual void make_visible(bool p_visible);
PropDataEditorPlugin(EditorNode *p_node);
~PropDataEditorPlugin();
protected:
private:
PropDataEditor *prop_editor;
ToolButton *prop_editor_button;
EditorNode *editor;
};
#endif

View File

@ -43,6 +43,8 @@
#include "clutter/ground_clutter.h"
#include "clutter/ground_clutter_foliage.h"
//#include "prop_tool/prop_tool_editor_plugin.h"
void register_voxelman_types() {
ClassDB::register_class<VoxelmanQueue>();
ClassDB::register_class<VoxelmanUnboundedQueue>();
@ -86,6 +88,10 @@ void register_voxelman_types() {
ClassDB::register_class<WorldArea>();
ClassDB::register_class<GroundClutterFoliage>();
//#ifdef TOOLS_ENABLED
// EditorPlugins::add_by_type<PropToolEditorPlugin>();
//#endif
}
void unregister_voxelman_types() {