diff --git a/SCsub b/SCsub
index 50eb6b8..229359d 100644
--- a/SCsub
+++ b/SCsub
@@ -11,24 +11,9 @@ sources = [
"register_types.cpp",
- "props/prop_data.cpp",
- "props/prop_data_entry.cpp",
- "props/prop_data_scene.cpp",
- "props/prop_data_mesh.cpp",
- "props/prop_data_light.cpp",
- "props/prop_data_prop.cpp",
- "props/prop_data_entity.cpp",
-
"clutter/ground_clutter.cpp",
"clutter/ground_clutter_foliage.cpp",
- "prop_tool/prop_tool.cpp",
- "prop_tool/prop_tool_entity.cpp",
- "prop_tool/prop_tool_prop.cpp",
- "prop_tool/prop_tool_scene.cpp",
- "prop_tool/prop_tool_light.cpp",
- "prop_tool/prop_tool_mesh.cpp",
-
"prop_mesh_utils.cpp",
"prop_instance.cpp",
@@ -37,9 +22,6 @@ sources = [
"prop_voxelman_light.cpp",
]
-if env['tools']:
- sources.append("prop_tool/prop_tool_editor_plugin.cpp")
-
if ARGUMENTS.get('custom_modules_shared', 'no') == 'yes':
# Shared lib compilation
module_env.Append(CCFLAGS=['-fPIC'])
diff --git a/config.py b/config.py
index 1086867..076828f 100644
--- a/config.py
+++ b/config.py
@@ -14,20 +14,11 @@ def get_doc_classes():
"GroundClutterFoliage",
"GroundClutter",
- "PropDataEntity",
- "PropDataEntry",
- "PropDataLight",
- "PropDataMesh",
- "PropDataProp",
- "PropDataScene",
- "PropData",
-
- "PropTool",
- "PropToolEntity",
- "PropToolLight",
- "PropToolMesh",
- "PropToolProp",
- "PropToolScene",
+ "PropESSEntity",
+ "PropInstance",
+ "PropMeshDataInstance",
+ "PropMeshUtils",
+ "PropVoxelmanLights",
]
def get_doc_path():
diff --git a/doc_classes/PropData.xml b/doc_classes/PropData.xml
deleted file mode 100644
index 266e5bb..0000000
--- a/doc_classes/PropData.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropDataEntity.xml b/doc_classes/PropDataEntity.xml
deleted file mode 100644
index 2d17720..0000000
--- a/doc_classes/PropDataEntity.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropDataEntry.xml b/doc_classes/PropDataEntry.xml
deleted file mode 100644
index 20db1e2..0000000
--- a/doc_classes/PropDataEntry.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropDataLight.xml b/doc_classes/PropDataLight.xml
deleted file mode 100644
index 2316e86..0000000
--- a/doc_classes/PropDataLight.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropDataMesh.xml b/doc_classes/PropDataMesh.xml
deleted file mode 100644
index 0e0aba5..0000000
--- a/doc_classes/PropDataMesh.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropDataProp.xml b/doc_classes/PropDataProp.xml
deleted file mode 100644
index 28424ad..0000000
--- a/doc_classes/PropDataProp.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropDataScene.xml b/doc_classes/PropDataScene.xml
deleted file mode 100644
index a370f11..0000000
--- a/doc_classes/PropDataScene.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropTool.xml b/doc_classes/PropTool.xml
deleted file mode 100644
index c5fccca..0000000
--- a/doc_classes/PropTool.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropToolEntity.xml b/doc_classes/PropToolEntity.xml
deleted file mode 100644
index 3fe8184..0000000
--- a/doc_classes/PropToolEntity.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropToolLight.xml b/doc_classes/PropToolLight.xml
deleted file mode 100644
index ac889c9..0000000
--- a/doc_classes/PropToolLight.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropToolMesh.xml b/doc_classes/PropToolMesh.xml
deleted file mode 100644
index 8631d87..0000000
--- a/doc_classes/PropToolMesh.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropToolProp.xml b/doc_classes/PropToolProp.xml
deleted file mode 100644
index 09a850c..0000000
--- a/doc_classes/PropToolProp.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doc_classes/PropToolScene.xml b/doc_classes/PropToolScene.xml
deleted file mode 100644
index 931dfed..0000000
--- a/doc_classes/PropToolScene.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/prop_tool/prop_tool.cpp b/prop_tool/prop_tool.cpp
deleted file mode 100644
index 282b45e..0000000
--- a/prop_tool/prop_tool.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-#include "prop_tool.h"
-
-#ifdef TOOLS_ENABLED
-
-#include "../props/prop_data.h"
-#include "../props/prop_data_entity.h"
-#include "../props/prop_data_light.h"
-#include "../props/prop_data_mesh.h"
-#include "../props/prop_data_prop.h"
-#include "../props/prop_data_scene.h"
-
-#include "prop_tool_entity.h"
-#include "prop_tool_light.h"
-#include "prop_tool_mesh.h"
-#include "prop_tool_prop.h"
-#include "prop_tool_scene.h"
-
-#include "core/io/resource_saver.h"
-#include "prop_tool_editor_plugin.h"
-
-void PropTool::edit(const Ref &prop) {
-}
-
-void PropTool::save() {
- if (!_target_prop.is_valid())
- return;
-
- print_verbose("save " + _target_prop->get_path());
-
- while (_target_prop->get_prop_count() > 0)
- _target_prop->remove_prop(0);
-
- for (int i = 0; i < get_child_count(); ++i) {
- save_node(get_child(i), get_transform());
- }
-
- _target_prop->set_snap_to_mesh(_snap_to_mesh);
- _target_prop->set_snap_axis(_snap_axis);
-
- ResourceSaver::save(_target_prop->get_path(), _target_prop);
-}
-
-void PropTool::save_node(Node *node, Transform parent_transform) {
- Spatial *snode = Object::cast_to(node);
-
- if (ObjectDB::instance_validate(snode) && snode->has_method("get_data")) {
- Ref prop = node->call("get_data");
-
- if (prop.is_valid()) {
- prop->set_transform(parent_transform * snode->get_transform());
-
- _target_prop->add_prop(prop);
- }
-
- if (snode->has_method("evaluate_children") && !snode->call("evaluate_children"))
- return;
-
- for (int i = 0; i < get_child_count(); ++i) {
- save_node(get_child(i), parent_transform * snode->get_transform());
- }
- } else {
- if (node->has_method("set_target_prop") && node->has_method("get_target_prop")) {
- Ref tprop = node->call("get_target_prop");
-
- if (tprop.is_valid()) {
- Ref prop;
- prop.instance();
-
- prop->set_prop(tprop);
-
- prop->set_transform(parent_transform * snode->get_transform());
-
- _target_prop->add_prop(prop);
- }
- } else {
- for (int i = 0; i < get_child_count(); ++i) {
- save_node(get_child(i), parent_transform * snode->get_transform());
- }
- }
- }
-}
-
-void PropTool::rebuild_hierarchy() {
- for (int i = 0; i < get_child_count(); ++i)
- get_child(i)->queue_delete();
-
- if (!_target_prop.is_valid())
- return;
-
- _snap_to_mesh = _target_prop->get_snap_to_mesh();
- _snap_axis = _target_prop->get_snap_axis();
-
- for (int i = 0; i < _target_prop->get_prop_count(); ++i) {
- Ref prop = _target_prop->get_prop(i);
-
- Ref prop_light = prop;
- Ref prop_mesh = prop;
- Ref prop_scene = prop;
- Ref prop_prop = prop;
- Ref prop_entity = prop;
-
- if (prop_light.is_valid()) {
- PropToolLight *l = memnew(PropToolLight);
-
- add_child(l);
- l->set_owner(this);
- l->set_transform(prop->get_transform());
-
- l->set_data(prop_light);
- } else if (prop_mesh.is_valid()) {
- PropToolMesh *m = memnew(PropToolMesh);
-
- add_child(m);
- m->set_owner(this);
- m->set_transform(prop->get_transform());
-
- m->set_data(prop_mesh);
- } else if (prop_scene.is_valid()) {
- PropToolScene *s = memnew(PropToolScene);
-
- add_child(s);
- s->set_owner(this);
- s->set_transform(prop->get_transform());
-
- s->set_data(prop_scene);
- } else if (prop_prop.is_valid()) {
- PropTool *s = _plugin->create_or_get_scene(prop_prop->get_prop());
-
- add_child(s);
- s->set_owner(this);
- s->set_transform(prop->get_transform());
- s->set_target_prop(prop_prop->get_prop());
- } else if (prop_entity.is_valid()) {
- PropToolEntity *s = memnew(PropToolEntity);
-
- add_child(s);
- s->set_owner(this);
- s->set_transform(prop->get_transform());
-
- s->set_data(prop_entity);
- }
- }
-}
-
-void PropTool::refresh_set(bool value) {
- if (value)
- rebuild_hierarchy();
-}
-
-void PropTool::set_target_prop(const Ref &prop) {
- _target_prop = prop;
-
- rebuild_hierarchy();
-}
-
-void PropTool::target_prop_set(const Ref &prop) {
- _target_prop = prop;
-
- if (!prop.is_valid())
- return;
-
- PropTool *last_prop_tool = this;
- Node *root = this;
-
- while (root->get_parent() != NULL) {
- root = root->get_parent();
-
- if (root && root->has_method("target_prop_set"))
- last_prop_tool = Object::cast_to(root);
- }
-
- if (last_prop_tool == this)
- return;
-
- last_prop_tool->load_scene_for(this, prop);
-}
-
-void PropTool::load_scene_for(PropTool *t, const Ref &prop) {
- if (_plugin == NULL)
- return;
-
- t->queue_delete();
-
- Node *s = _plugin->create_or_get_scene(prop);
-
- add_child(s);
- //s->set_owner(this);
-}
-
-PropToolEditorPlugin *PropTool::get_plugin() {
- return _plugin;
-}
-
-void PropTool::set_plugin(PropToolEditorPlugin *plugin) {
- _plugin = plugin;
-}
-
-PropTool::PropTool() {
- _snap_to_mesh = false;
- _snap_axis = Vector3(0, -1, 0);
-}
-PropTool::PropTool(EditorNode *p_editor) {
- _snap_to_mesh = false;
- _snap_axis = Vector3(0, -1, 0);
-}
-PropTool::~PropTool() {
- _target_prop.unref();
-}
-
-void PropTool::_bind_methods() {
-}
-
-#endif
\ No newline at end of file
diff --git a/prop_tool/prop_tool.h b/prop_tool/prop_tool.h
deleted file mode 100644
index 2255fc8..0000000
--- a/prop_tool/prop_tool.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_TOOL_H
-#define PROP_TOOL_H
-
-class EditorNode;
-class EditorPlugin;
-class PropData;
-
-#include "core/math/vector3.h"
-#include "core/reference.h"
-#include "scene/3d/spatial.h"
-
-class propData;
-class PropToolEditorPlugin;
-
-class PropTool : public Spatial {
- GDCLASS(PropTool, Spatial);
-
-#ifdef TOOLS_ENABLED
-public:
- void edit(const Ref &prop);
-
- void save();
- void save_node(Node *node, Transform parent_transform);
- void rebuild_hierarchy();
- void refresh_set(bool value);
- void set_target_prop(const Ref &prop);
- void target_prop_set(const Ref &prop);
- void load_scene_for(PropTool *t, const Ref &prop);
-
- PropToolEditorPlugin *get_plugin();
- void set_plugin(PropToolEditorPlugin *plugin);
-
- PropTool();
- PropTool(EditorNode *p_editor);
- ~PropTool();
-
-protected:
- static void _bind_methods();
-
-private:
- bool _refresh;
- Ref _target_prop;
- bool _snap_to_mesh;
- Vector3 _snap_axis;
- PropToolEditorPlugin *_plugin;
-#endif
-};
-
-#endif
diff --git a/prop_tool/prop_tool_editor_plugin.cpp b/prop_tool/prop_tool_editor_plugin.cpp
deleted file mode 100644
index 4df37bb..0000000
--- a/prop_tool/prop_tool_editor_plugin.cpp
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_tool_editor_plugin.h"
-
-#include "core/os/dir_access.h"
-#include "core/os/file_access.h"
-#include "editor/editor_scale.h"
-#include "editor/editor_settings.h"
-#include "scene/resources/packed_scene.h"
-
-#include "../props/prop_data.h"
-
-#include "prop_tool.h"
-#include "prop_tool_entity.h"
-#include "prop_tool_light.h"
-#include "prop_tool_mesh.h"
-#include "prop_tool_scene.h"
-
-#include "editor/plugins/spatial_editor_plugin.h"
-
-void PropToolEditorPlugin::edit(Object *p_object) {
- Ref pedited_prop(Object::cast_to(p_object));
-
- String p = create_or_get_scene_path(pedited_prop);
-
- get_editor_interface()->open_scene_from_path(p);
-}
-
-bool PropToolEditorPlugin::handles(Object *p_object) const {
-
- bool handles = p_object->is_class("PropData");
-
- return handles;
-}
-
-void PropToolEditorPlugin::make_visible(bool p_visible) {
-}
-
-String PropToolEditorPlugin::create_or_get_scene_path(const Ref &data) {
- ERR_FAIL_COND_V(!data.is_valid(), "");
-
- String temp_path = EditorSettings::get_singleton()->get("editors/prop_tool/temp_path");
-
- String path = temp_path + data->get_path().get_file().get_basename() + ".tscn";
-
- if (!FileAccess::exists(path))
- create_scene(data);
-
- return path;
-}
-PropTool *PropToolEditorPlugin::create_or_get_scene(const Ref &data) {
- ERR_FAIL_COND_V(!data.is_valid(), NULL);
-
- String temp_path = EditorSettings::get_singleton()->get("editors/prop_tool/temp_path");
-
- String path = temp_path + data->get_path().get_file().get_basename() + ".tscn";
-
- Ref ps;
-
- if (!FileAccess::exists(path))
- ps = create_scene(data);
- else
- ps = ResourceLoader::load(path, "PackedScene");
-
- if (!ps.is_valid())
- return NULL;
-
- PropTool *pt = Object::cast_to(ps->instance());
- pt->set_plugin(this);
- return pt;
-}
-Ref PropToolEditorPlugin::create_scene(const Ref &data) {
- PropTool *pt = memnew(PropTool);
-
- pt->set_plugin(this);
- pt->set_target_prop(data);
-
- Ref ps;
- ps.instance();
- ps->pack(pt);
-
- String temp_path = EditorSettings::get_singleton()->get("editors/prop_tool/temp_path");
-
- Error err = ResourceSaver::save(temp_path + data->get_path().get_file().get_basename() + ".tscn", ps);
-
- if (err)
- print_error("PropTool: create_scene failed! Error_code:" + String::num(err));
-
- pt->queue_delete();
- return ps;
-}
-
-void PropToolEditorPlugin::on_scene_changed(Node *scene) {
- PropTool *pt = Object::cast_to(scene);
-
- if (ObjectDB::instance_validate(pt)) {
- pt->set_plugin(this);
-
- light_button->show();
- mesh_button->show();
- prop_button->show();
- scene_button->show();
- entity_button->show();
- } else {
- light_button->hide();
- mesh_button->hide();
- prop_button->hide();
- scene_button->hide();
- entity_button->hide();
- }
-}
-
-void PropToolEditorPlugin::apply_changes() {
- Node *scene = get_editor_interface()->get_edited_scene_root();
- PropTool *pt = Object::cast_to(scene);
-
- if (ObjectDB::instance_validate(pt)) {
- pt->save();
- }
-}
-
-void PropToolEditorPlugin::add_light() {
- Array selection = get_editor_interface()->get_selection()->get_selected_nodes();
-
- Node *selected;
-
- if (selection.size() != 1)
- selected = get_editor_interface()->get_edited_scene_root();
- else
- selected = selection[0];
-
- Node *s = selected;
- PropToolLight *n = memnew(PropToolLight);
-
- UndoRedo u = get_undo_redo();
- u.create_action("Add Light");
- u.add_do_method(s, "add_child", n);
- u.add_do_property(n, "owner", get_editor_interface()->get_edited_scene_root());
- u.add_undo_method(s, "remove_child", n);
- u.commit_action();
-
- get_editor_interface()->get_selection()->clear();
- get_editor_interface()->get_selection()->add_node(n);
-}
-
-void PropToolEditorPlugin::add_mesh() {
- Array selected = get_editor_interface()->get_selection()->get_selected_nodes();
-
- if (selected.size() != 1)
- return;
-
- Node *s = selected[0];
- PropToolMesh *n = memnew(PropToolMesh);
-
- UndoRedo u = get_undo_redo();
- u.create_action("Add Mesh");
- u.add_do_method(s, "add_child", n);
- u.add_do_property(n, "owner", get_editor_interface()->get_edited_scene_root());
- u.add_undo_method(s, "remove_child", n);
- u.commit_action();
-
- get_editor_interface()->get_selection()->clear();
- get_editor_interface()->get_selection()->add_node(n);
-}
-
-void PropToolEditorPlugin::add_prop() {
-
- Array selected = get_editor_interface()->get_selection()->get_selected_nodes();
-
- if (selected.size() != 1)
- return;
-
- Node *s = selected[0];
- PropTool *n = memnew(PropTool);
-
- UndoRedo u = get_undo_redo();
- u.create_action("Add Prop");
- u.add_do_method(s, "add_child", n);
- u.add_do_property(n, "owner", get_editor_interface()->get_edited_scene_root());
- u.add_undo_method(s, "remove_child", n);
- u.commit_action();
-
- get_editor_interface()->get_selection()->clear();
- get_editor_interface()->get_selection()->add_node(n);
-}
-
-void PropToolEditorPlugin::add_scene() {
- Array selected = get_editor_interface()->get_selection()->get_selected_nodes();
-
- if (selected.size() != 1)
- return;
-
- Node *s = selected[0];
- PropToolScene *n = memnew(PropToolScene);
-
- UndoRedo u = get_undo_redo();
- u.create_action("Add Scene");
- u.add_do_method(s, "add_child", n);
- u.add_do_property(n, "owner", get_editor_interface()->get_edited_scene_root());
- u.add_undo_method(s, "remove_child", n);
- u.commit_action();
-
- get_editor_interface()->get_selection()->clear();
- get_editor_interface()->get_selection()->add_node(n);
-}
-
-void PropToolEditorPlugin::add_entity() {
- Array selected = get_editor_interface()->get_selection()->get_selected_nodes();
-
- if (selected.size() != 1)
- return;
-
- Node *s = selected[0];
- PropToolEntity *n = memnew(PropToolEntity);
-
- UndoRedo u = get_undo_redo();
- u.create_action("Add Entity");
- u.add_do_method(s, "add_child", n);
- u.add_do_property(n, "owner", get_editor_interface()->get_edited_scene_root());
- u.add_undo_method(s, "remove_child", n);
- u.commit_action();
-
- get_editor_interface()->get_selection()->clear();
- get_editor_interface()->get_selection()->add_node(n);
-}
-
-PropToolEditorPlugin::PropToolEditorPlugin(EditorNode *p_node) {
- EDITOR_DEF("editors/prop_tool/temp_path", "res://.prop_tool_temp/");
- EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "editors/prop_tool/temp_path"));
-
- String tp = EditorSettings::get_singleton()->get("editors/prop_tool/temp_path");
-
- if (!tp.ends_with("/")) {
- tp += "/";
- EditorSettings::get_singleton()->set("editors/prop_tool/temp_path", tp);
- }
-
- if (!DirAccess::exists(tp)) {
- DirAccess *d = DirAccess::create_for_path(tp);
-
- Error err = d->make_dir_recursive(tp);
-
- memdelete(d);
-
- if (err)
- print_error("PropTool: Temporary directory creation failed: error code: " + String::num(err));
- }
-
- editor = p_node;
-
- light_button = memnew(ToolButton);
- light_button->set_text("Light");
- light_button->connect("pressed", this, "add_light");
-
- mesh_button = memnew(ToolButton);
- mesh_button->set_text("Mesh");
- mesh_button->connect("pressed", this, "add_mesh");
-
- prop_button = memnew(ToolButton);
- prop_button->set_text("Prop");
- prop_button->connect("pressed", this, "add_prop");
-
- scene_button = memnew(ToolButton);
- scene_button->set_text("Scene");
- scene_button->connect("pressed", this, "add_scene");
-
- entity_button = memnew(ToolButton);
- entity_button->set_text("Entity");
- entity_button->connect("pressed", this, "add_entity");
-
- add_control_to_container(EditorPlugin::CONTAINER_SPATIAL_EDITOR_MENU, light_button);
- add_control_to_container(EditorPlugin::CONTAINER_SPATIAL_EDITOR_MENU, mesh_button);
- add_control_to_container(EditorPlugin::CONTAINER_SPATIAL_EDITOR_MENU, prop_button);
- add_control_to_container(EditorPlugin::CONTAINER_SPATIAL_EDITOR_MENU, scene_button);
- add_control_to_container(EditorPlugin::CONTAINER_SPATIAL_EDITOR_MENU, entity_button);
-
- light_button->hide();
- mesh_button->hide();
- prop_button->hide();
- scene_button->hide();
- entity_button->hide();
-
- call_deferred("connect", "scene_changed", this, "on_scene_changed");
-}
-
-PropToolEditorPlugin::~PropToolEditorPlugin() {
- _edited_prop.unref();
-}
-
-void PropToolEditorPlugin::_notification(int p_what) {
- if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
-
- String tp = EditorSettings::get_singleton()->get("editors/prop_tool/temp_path");
-
- if (!tp.ends_with("/")) {
- tp += "/";
- EditorSettings::get_singleton()->set("editors/prop_tool/temp_path", tp);
- }
-
- if (!DirAccess::exists(tp)) {
- DirAccess *d = DirAccess::create_for_path(tp);
-
- Error err = d->make_dir_recursive(tp);
-
- memdelete(d);
-
- ERR_FAIL_COND_MSG(err, "PropTool: Temporary directory creation failed: error code: " + String::num(err));
- }
- }
-}
-
-void PropToolEditorPlugin::_bind_methods() {
- ClassDB::bind_method(D_METHOD("on_scene_changed", "scene_root"), &PropToolEditorPlugin::on_scene_changed);
- ClassDB::bind_method(D_METHOD("apply_changes"), &PropToolEditorPlugin::apply_changes);
- ClassDB::bind_method(D_METHOD("add_light"), &PropToolEditorPlugin::add_light);
- ClassDB::bind_method(D_METHOD("add_mesh"), &PropToolEditorPlugin::add_mesh);
- ClassDB::bind_method(D_METHOD("add_prop"), &PropToolEditorPlugin::add_prop);
- ClassDB::bind_method(D_METHOD("add_scene"), &PropToolEditorPlugin::add_scene);
- ClassDB::bind_method(D_METHOD("add_entity"), &PropToolEditorPlugin::add_entity);
-}
diff --git a/prop_tool/prop_tool_editor_plugin.h b/prop_tool/prop_tool_editor_plugin.h
deleted file mode 100644
index 494a6c4..0000000
--- a/prop_tool/prop_tool_editor_plugin.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_TOOL_EDITOR_PLUGIN_H
-#define PROP_TOOL_EDITOR_PLUGIN_H
-
-#include "editor/editor_node.h"
-#include "editor/editor_plugin.h"
-
-class PropData;
-class PropTool;
-
-class PropToolEditorPlugin : public EditorPlugin {
- GDCLASS(PropToolEditorPlugin, 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);
-
- String create_or_get_scene_path(const Ref &data);
- PropTool *create_or_get_scene(const Ref &data);
- Ref create_scene(const Ref &data);
-
- void on_scene_changed(Node *scene);
- void apply_changes();
- void add_light();
- void add_mesh();
- void add_prop();
- void add_scene();
- void add_entity();
-
- PropToolEditorPlugin(EditorNode *p_node);
- ~PropToolEditorPlugin();
-
-protected:
- void _notification(int p_what);
- static void _bind_methods();
-
-private:
- ToolButton *light_button;
- ToolButton *mesh_button;
- ToolButton *prop_button;
- ToolButton *scene_button;
- ToolButton *entity_button;
-
- ToolButton *edited_prop;
-
- EditorNode *editor;
-
- Ref _edited_prop;
-};
-
-#endif
diff --git a/prop_tool/prop_tool_entity.cpp b/prop_tool/prop_tool_entity.cpp
deleted file mode 100644
index d382307..0000000
--- a/prop_tool/prop_tool_entity.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_tool_entity.h"
-
-#ifdef TOOLS_ENABLED
-
-#include "../../entity_spell_system/entities/data/entity_data.h"
-#include "../../entity_spell_system/entities/entity.h"
-
-Ref PropToolEntity::get_data() {
- if (!is_visible() || !_entity_data.is_valid())
- return Ref();
-
- if (!_prop_entity.is_valid())
- _prop_entity.instance();
-
- _prop_entity->set_entity_data_id(_entity_data_id);
- _prop_entity->set_level(_level);
-
- return _prop_entity;
-}
-void PropToolEntity::set_data(const Ref &data) {
- _prop_entity = data;
-
- if (!_prop_entity.is_valid())
- return;
-
- _entity_data_id = _prop_entity->get_entity_data_id();
- _level = _prop_entity->get_level();
-
- /*
- TODO generic solution
- var dir = Directory.new()
- if dir.open("res://data/entities/") == OK:
- dir.list_dir_begin()
- var file_name = dir.get_next()
-
- while (file_name != ""):
- if not dir.current_is_dir():
- var ed : EntityData = ResourceLoader.load("res://data/entities/" + file_name, "EntityData")
-
- if ed != null and ed.id == entity_data_id:
- set_entity_data(ed)
- return
-
- file_name = dir.get_next()
-
- print("PropToolEntity: Entity not found!")
- */
-}
-
-Ref PropToolEntity::get_entity_data() {
- return _entity_data;
-}
-void PropToolEntity::set_entity_data(const Ref &data) {
- _entity_data = data;
-
- if (!_entity_data.is_valid())
- return;
-
- _entity_data_id = _entity_data->get_id();
-
- if (_entity == NULL) {
- //TODO generic solutiuon
-
- //var scene : PackedScene = load("res://addons/prop_tool/player/PropToolDisplayPlayer.tscn")
-
- //_entity = scene.instance() as Entity
-
- // add_child(_entity)
- //_entity.owner = owner
-
- //_entity.get_node(_entity.character_skeleton_path).owner = owner
- //_entity.get_node(_entity.character_skeleton_path).refresh_in_editor = true
- //_entity.get_character_skeleton().refresh_in_editor = true
-
- // _entity.sentity_data = entity_data
-
- //name = entity_data.text_name
- }
-}
-
-int PropToolEntity::get_entity_data_id() const {
- return _entity_data_id;
-}
-void PropToolEntity::set_entity_data_id(const int value) {
- _entity_data_id = value;
-}
-
-int PropToolEntity::get_level() const {
- return _level;
-}
-void PropToolEntity::set_level(const int value) {
- _level = value;
-}
-
-bool PropToolEntity::evaluate_children() const {
- return false;
-}
-
-PropToolEntity::PropToolEntity() {
- _entity_data_id = 0;
- _level = 1;
-
- _entity = NULL;
-}
-PropToolEntity::~PropToolEntity() {
- _entity_data.unref();
- _prop_entity.unref();
-}
-
-void PropToolEntity::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_data"), &PropToolEntity::get_data);
- ClassDB::bind_method(D_METHOD("set_data", "value"), &PropToolEntity::set_data);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "data", PROPERTY_HINT_RESOURCE_TYPE, "PropDataProp"), "set_data", "get_data");
-
- ClassDB::bind_method(D_METHOD("get_entity_data_id"), &PropToolEntity::get_entity_data_id);
- ClassDB::bind_method(D_METHOD("set_entity_data_id", "value"), &PropToolEntity::set_entity_data_id);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "entity_data_id"), "set_entity_data_id", "get_entity_data_id");
-
- ClassDB::bind_method(D_METHOD("get_level"), &PropToolEntity::get_level);
- ClassDB::bind_method(D_METHOD("set_level", "value"), &PropToolEntity::set_level);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "level"), "set_level", "get_level");
-
- ClassDB::bind_method(D_METHOD("get_entity_data"), &PropToolEntity::get_entity_data);
- ClassDB::bind_method(D_METHOD("set_entity_data", "value"), &PropToolEntity::set_entity_data);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "entity_data", PROPERTY_HINT_RESOURCE_TYPE, "EntityData"), "set_entity_data", "get_entity_data");
-
- ClassDB::bind_method(D_METHOD("evaluate_children"), &PropToolEntity::evaluate_children);
-}
-
-#endif
\ No newline at end of file
diff --git a/prop_tool/prop_tool_entity.h b/prop_tool/prop_tool_entity.h
deleted file mode 100644
index 31a2d09..0000000
--- a/prop_tool/prop_tool_entity.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_TOOL_ENTITY_H
-#define PROP_TOOL_ENTITY_H
-
-#include "scene/3d/spatial.h"
-
-#include "../props/prop_data.h"
-#include "../props/prop_data_entity.h"
-
-class EntityData;
-class Entity;
-
-class PropToolEntity : public Spatial {
- GDCLASS(PropToolEntity, Spatial);
-
-#ifdef TOOLS_ENABLED
-public:
- Ref get_data();
- void set_data(const Ref &data);
-
- Ref get_entity_data();
- void set_entity_data(const Ref &data);
-
- int get_entity_data_id() const;
- void set_entity_data_id(const int value);
-
- int get_level() const;
- void set_level(const int value);
-
- bool evaluate_children() const;
-
- PropToolEntity();
- ~PropToolEntity();
-
-protected:
- static void _bind_methods();
-
-private:
- Ref _entity_data;
- int _entity_data_id;
- int _level;
-
- Ref _prop_entity;
- Entity *_entity;
-#endif
-};
-
-#endif
diff --git a/prop_tool/prop_tool_light.cpp b/prop_tool/prop_tool_light.cpp
deleted file mode 100644
index 274c9c9..0000000
--- a/prop_tool/prop_tool_light.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_tool_light.h"
-
-#ifdef TOOLS_ENABLED
-
-Ref PropToolLight::get_data() {
-
- if (!is_visible())
- return Ref();
-
- if (!_prop_light.is_valid())
- _prop_light.instance();
-
- _prop_light->set_light_color(get_color());
- _prop_light->set_light_size(get_param(Light::PARAM_RANGE));
-
- return _prop_light;
-}
-void PropToolLight::set_data(const Ref &data) {
- _prop_light = data;
-
- if (!_prop_light.is_valid())
- return;
-
- set_color(_prop_light->get_light_color());
- set_param(Light::PARAM_RANGE, _prop_light->get_light_size());
- set_param(Light::PARAM_ENERGY, _prop_light->get_light_size());
-}
-
-bool PropToolLight::get_snap_to_mesh() const {
- return _snap_to_mesh;
-}
-void PropToolLight::set_snap_to_mesh(const bool value) {
- _snap_to_mesh = value;
-}
-
-PropToolLight::PropToolLight() {
-}
-PropToolLight::~PropToolLight() {
- _prop_light.unref();
-}
-
-void PropToolLight::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_data"), &PropToolLight::get_data);
- ClassDB::bind_method(D_METHOD("set_data", "value"), &PropToolLight::set_data);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "data", PROPERTY_HINT_RESOURCE_TYPE, "PropDataLight"), "set_data", "get_data");
-
- ClassDB::bind_method(D_METHOD("get_snap_to_mesh"), &PropToolLight::get_snap_to_mesh);
- ClassDB::bind_method(D_METHOD("set_snap_to_mesh", "value"), &PropToolLight::set_snap_to_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_to_mesh"), "set_snap_to_mesh", "get_snap_to_mesh");
-}
-
-#endif
\ No newline at end of file
diff --git a/prop_tool/prop_tool_light.h b/prop_tool/prop_tool_light.h
deleted file mode 100644
index 8e9c0ac..0000000
--- a/prop_tool/prop_tool_light.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_TOOL_LIGHT_H
-#define PROP_TOOL_LIGHT_H
-
-class EditorNode;
-class EditorPlugin;
-class PropData;
-
-#include "../props/prop_data_light.h"
-#include "scene/3d/light.h"
-
-class propData;
-
-class PropToolLight : public OmniLight {
- GDCLASS(PropToolLight, OmniLight);
-
-#ifdef TOOLS_ENABLED
-public:
- Ref get_data();
- void set_data(const Ref &data);
-
- bool get_snap_to_mesh() const;
- void set_snap_to_mesh(const bool value);
-
- PropToolLight();
- ~PropToolLight();
-
-protected:
- static void _bind_methods();
-
-private:
- Ref _prop_light;
- bool _snap_to_mesh;
-#endif
-};
-
-#endif
diff --git a/prop_tool/prop_tool_mesh.cpp b/prop_tool/prop_tool_mesh.cpp
deleted file mode 100644
index 33f09cf..0000000
--- a/prop_tool/prop_tool_mesh.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_tool_mesh.h"
-
-#ifdef TOOLS_ENABLED
-
-Ref PropToolMesh::get_mesh_data() {
- return _mesh_data;
-}
-void PropToolMesh::set_mesh_data(const Ref &data) {
- _mesh_data = data;
-}
-
-Ref PropToolMesh::get_data() {
- return _prop_mesh;
-
- if (!is_visible() || !_mesh_data.is_valid())
- return Ref();
-
- if (!_prop_mesh.is_valid())
- _prop_mesh.instance();
-
- _prop_mesh->set_mesh(_mesh_data);
- _prop_mesh->set_texture(_texture);
- _prop_mesh->set_snap_to_mesh(_snap_to_mesh);
- _prop_mesh->set_snap_axis(_snap_axis);
-
- return _prop_mesh;
-}
-void PropToolMesh::set_data(const Ref &data) {
- _prop_mesh = data;
-
- if (!_prop_mesh.is_valid())
- return;
-
- _texture = _prop_mesh->get_texture();
-
- _snap_to_mesh = _prop_mesh->get_snap_to_mesh();
- _snap_axis = _prop_mesh->get_snap_axis();
-
- set_generate(true);
-}
-
-Ref PropToolMesh::get_texture() {
- return _texture;
-}
-void PropToolMesh::set_texture(const Ref &tex) {
- _texture = tex;
-}
-
-bool PropToolMesh::get_snap_to_mesh() const {
- return _snap_to_mesh;
-}
-void PropToolMesh::set_snap_to_mesh(const bool value) {
- _snap_to_mesh = value;
-}
-
-Vector3 PropToolMesh::get_snap_axis() const {
- return _snap_axis;
-}
-void PropToolMesh::set_snap_axis(const Vector3 &value) {
- _snap_axis = value;
-}
-
-Ref PropToolMesh::get_prop_mesh() {
- return _prop_mesh;
-}
-void PropToolMesh::set_prop_mesh(const Ref &data) {
- _prop_mesh = data;
-}
-
-void PropToolMesh::generate() {
-}
-
-PropToolMesh::PropToolMesh() {
- _snap_to_mesh = false;
- _snap_axis = Vector3(0, -1, 0);
-}
-PropToolMesh::~PropToolMesh() {
- _prop_mesh.unref();
- _material.unref();
-}
-
-void PropToolMesh::set_generate(bool value) {
- if (!value)
- return;
-
- if (!_mesh_data.is_valid()) {
- mesh.unref();
- return;
- }
-
- Ref m;
- m.instance();
-
- Array arr;
- arr.resize(ArrayMesh::ARRAY_MAX);
-
- Array mda = _mesh_data->get_array();
-
- PoolVector3Array v;
- v.append_array(mda[Mesh::ARRAY_VERTEX]);
- arr.set(Mesh::ARRAY_VERTEX, v);
-
- PoolVector3Array norm;
- norm.append_array(mda[Mesh::ARRAY_NORMAL]);
- arr.set(Mesh::ARRAY_NORMAL, norm);
-
- PoolVector2Array uv;
- uv.append_array(mda[Mesh::ARRAY_TEX_UV]);
- arr.set(Mesh::ARRAY_TEX_UV, uv);
-
- PoolIntArray ind;
- ind.append_array(mda[Mesh::ARRAY_INDEX]);
- arr.set(Mesh::ARRAY_INDEX, ind);
-
- m->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, arr);
-
- mesh = m;
-
- if (_texture.is_valid()) {
- if (!_material.is_valid())
- _material.instance();
-
- _material->set_texture(SpatialMaterial::TEXTURE_ALBEDO, _texture);
-
- set_material_override(_material);
- }
-}
-
-void PropToolMesh::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_mesh_data"), &PropToolMesh::get_mesh_data);
- ClassDB::bind_method(D_METHOD("set_mesh_data", "value"), &PropToolMesh::set_mesh_data);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "mesh_data", PROPERTY_HINT_RESOURCE_TYPE, "MeshDataResource"), "set_mesh_data", "get_mesh_data");
-
- ClassDB::bind_method(D_METHOD("get_data"), &PropToolMesh::get_data);
- ClassDB::bind_method(D_METHOD("set_data", "value"), &PropToolMesh::set_data);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "data", PROPERTY_HINT_RESOURCE_TYPE, "PropDataMesh"), "set_data", "get_data");
-
- ClassDB::bind_method(D_METHOD("get_texture"), &PropToolMesh::get_texture);
- ClassDB::bind_method(D_METHOD("set_texture", "value"), &PropToolMesh::set_texture);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_texture", "get_texture");
-
- ClassDB::bind_method(D_METHOD("get_snap_to_mesh"), &PropToolMesh::get_snap_to_mesh);
- ClassDB::bind_method(D_METHOD("set_snap_to_mesh", "value"), &PropToolMesh::set_snap_to_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_to_mesh"), "set_snap_to_mesh", "get_snap_to_mesh");
-
- ClassDB::bind_method(D_METHOD("get_snap_axis"), &PropToolMesh::get_snap_axis);
- ClassDB::bind_method(D_METHOD("set_snap_axis", "value"), &PropToolMesh::set_snap_axis);
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "snap_axis"), "set_snap_axis", "get_snap_axis");
-
- ClassDB::bind_method(D_METHOD("get_prop_mesh"), &PropToolMesh::get_prop_mesh);
- ClassDB::bind_method(D_METHOD("set_prop_mesh", "value"), &PropToolMesh::set_prop_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "prop_mesh", PROPERTY_HINT_RESOURCE_TYPE, "MeshDataResource"), "set_prop_mesh", "get_prop_mesh");
-
- ClassDB::bind_method(D_METHOD("generate"), &PropToolMesh::generate);
-
- ClassDB::bind_method(D_METHOD("get_generate"), &PropToolMesh::get_generate);
- ClassDB::bind_method(D_METHOD("set_generate"), &PropToolMesh::set_generate);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "generate"), "set_generate", "get_generate");
-}
-
-#endif
\ No newline at end of file
diff --git a/prop_tool/prop_tool_mesh.h b/prop_tool/prop_tool_mesh.h
deleted file mode 100644
index 9fa77f5..0000000
--- a/prop_tool/prop_tool_mesh.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_TOOL_MESH_H
-#define PROP_TOOL_MESH_H
-
-#include "core/math/vector3.h"
-
-#include "../props/prop_data_mesh.h"
-#include "scene/3d/mesh_instance.h"
-
-class PropToolMesh : public MeshInstance {
- GDCLASS(PropToolMesh, MeshInstance);
-
-#ifdef TOOLS_ENABLED
-public:
- Ref get_mesh_data();
- void set_mesh_data(const Ref &data);
-
- Ref get_data();
- void set_data(const Ref &data);
-
- Ref get_texture();
- void set_texture(const Ref &tex);
-
- bool get_snap_to_mesh() const;
- void set_snap_to_mesh(const bool value);
-
- Vector3 get_snap_axis() const;
- void set_snap_axis(const Vector3 &value);
-
- Ref get_prop_mesh();
- void set_prop_mesh(const Ref &data);
-
- void generate();
-
- PropToolMesh();
- ~PropToolMesh();
-
-protected:
- bool get_generate() { return false; }
- void set_generate(bool value);
-
- static void _bind_methods();
-
-private:
- Ref _mesh_data;
- Ref _prop_mesh;
- Ref _texture;
- Ref _material;
- bool _snap_to_mesh;
- Vector3 _snap_axis;
-#endif
-};
-
-#endif
diff --git a/prop_tool/prop_tool_prop.cpp b/prop_tool/prop_tool_prop.cpp
deleted file mode 100644
index 5317e55..0000000
--- a/prop_tool/prop_tool_prop.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_tool_prop.h"
-
-#ifdef TOOLS_ENABLED
-
-Ref PropToolProp::get_data() {
- if (!is_visible() || !_prop_data.is_valid())
- return Ref();
-
- if (!_prop_data.is_valid())
- _prop_data.instance();
-
- _prop_prop->set_prop(_prop_data);
- _prop_prop->set_snap_to_mesh(_snap_to_mesh);
- _prop_prop->set_snap_axis(_snap_axis);
-
- return _prop_prop;
-}
-void PropToolProp::set_data(const Ref &data) {
- _prop_prop = data;
-
- if (!_prop_prop.is_valid())
- return;
-
- _prop_data = _prop_prop->get_prop();
- _snap_to_mesh = _prop_prop->get_snap_to_mesh();
- _snap_axis = _prop_prop->get_snap_axis();
-}
-
-Ref PropToolProp::get_prop_data() {
- return _prop_data;
-}
-void PropToolProp::set_prop_data(const Ref &data) {
- _prop_data = data;
-}
-
-bool PropToolProp::get_snap_to_mesh() const {
- return _snap_to_mesh;
-}
-void PropToolProp::set_snap_to_mesh(const bool value) {
- _snap_to_mesh = value;
-}
-
-Vector3 PropToolProp::get_snap_axis() const {
- return _snap_axis;
-}
-void PropToolProp::set_snap_axis(const Vector3 &value) {
- _snap_axis = value;
-}
-
-PropToolProp::PropToolProp() {
- _snap_to_mesh = false;
- _snap_axis = Vector3(0, -1, 0);
-}
-PropToolProp::~PropToolProp() {
- _prop_data.unref();
- _prop_prop.unref();
-}
-
-void PropToolProp::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_data"), &PropToolProp::get_data);
- ClassDB::bind_method(D_METHOD("set_data", "value"), &PropToolProp::set_data);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "data", PROPERTY_HINT_RESOURCE_TYPE, "PropDataProp"), "set_data", "get_data");
-
- ClassDB::bind_method(D_METHOD("get_snap_to_mesh"), &PropToolProp::get_snap_to_mesh);
- ClassDB::bind_method(D_METHOD("set_snap_to_mesh", "value"), &PropToolProp::set_snap_to_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_to_mesh"), "set_snap_to_mesh", "get_snap_to_mesh");
-
- ClassDB::bind_method(D_METHOD("get_snap_axis"), &PropToolProp::get_snap_axis);
- ClassDB::bind_method(D_METHOD("set_snap_axis", "value"), &PropToolProp::set_snap_axis);
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "snap_axis"), "set_snap_axis", "get_snap_axis");
-
- ClassDB::bind_method(D_METHOD("get_prop_data"), &PropToolProp::get_prop_data);
- ClassDB::bind_method(D_METHOD("set_prop_data", "value"), &PropToolProp::set_prop_data);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "prop_data", PROPERTY_HINT_RESOURCE_TYPE, "PropData"), "set_prop_data", "get_prop_data");
-}
-
-#endif
\ No newline at end of file
diff --git a/prop_tool/prop_tool_prop.h b/prop_tool/prop_tool_prop.h
deleted file mode 100644
index c3d9d1a..0000000
--- a/prop_tool/prop_tool_prop.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_TOOL_PROP_H
-#define PROP_TOOL_PROP_H
-
-#include "scene/3d/spatial.h"
-
-#include "../props/prop_data.h"
-#include "../props/prop_data_prop.h"
-
-class PropToolProp : public Spatial {
- GDCLASS(PropToolProp, Spatial);
-
-#ifdef TOOLS_ENABLED
-public:
- Ref get_data();
- void set_data(const Ref &data);
-
- Ref get_prop_data();
- void set_prop_data(const Ref &data);
-
- bool get_snap_to_mesh() const;
- void set_snap_to_mesh(const bool value);
-
- Vector3 get_snap_axis() const;
- void set_snap_axis(const Vector3 &value);
-
- PropToolProp();
- ~PropToolProp();
-
-protected:
- static void _bind_methods();
-
-private:
- Ref _prop_data;
- bool _snap_to_mesh;
- Vector3 _snap_axis;
- Ref _prop_prop;
-#endif
-};
-
-#endif
diff --git a/prop_tool/prop_tool_scene.cpp b/prop_tool/prop_tool_scene.cpp
deleted file mode 100644
index 1e4bf24..0000000
--- a/prop_tool/prop_tool_scene.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_tool_scene.h"
-
-#ifdef TOOLS_ENABLED
-
-Ref PropToolScene::get_data() {
- if (!is_visible() || !_scene_data.is_valid())
- return Ref();
-
- if (!_prop_scene.is_valid())
- _prop_scene.instance();
-
- _prop_scene->set_scene(_scene_data);
- _prop_scene->set_snap_to_mesh(_snap_to_mesh);
- _prop_scene->set_snap_axis(_snap_axis);
-
- return _prop_scene;
-}
-void PropToolScene::set_data(const Ref &data) {
- _prop_scene = data;
-
- if (!_prop_scene.is_valid())
- return;
-
- _scene_data = _prop_scene->get_scene();
- _snap_to_mesh = _prop_scene->get_snap_to_mesh();
- _snap_axis = _prop_scene->get_snap_axis();
-}
-
-Ref PropToolScene::get_scene_data() {
- return _scene_data;
-}
-void PropToolScene::set_scene_data(const Ref &data) {
- _scene_data = data;
-}
-
-bool PropToolScene::get_snap_to_mesh() const {
- return _snap_to_mesh;
-}
-void PropToolScene::set_snap_to_mesh(const bool value) {
- _snap_to_mesh = value;
-}
-
-Vector3 PropToolScene::get_snap_axis() const {
- return _snap_axis;
-}
-void PropToolScene::set_snap_axis(const Vector3 &value) {
- _snap_axis = value;
-}
-
-PropToolScene::PropToolScene() {
- _snap_to_mesh = false;
- _snap_axis = Vector3(0, -1, 0);
-}
-PropToolScene::~PropToolScene() {
- _scene_data.unref();
- _prop_scene.unref();
-}
-
-void PropToolScene::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_data"), &PropToolScene::get_data);
- ClassDB::bind_method(D_METHOD("set_data", "value"), &PropToolScene::set_data);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "data", PROPERTY_HINT_RESOURCE_TYPE, "PropDataScene"), "set_data", "get_data");
-
- ClassDB::bind_method(D_METHOD("get_snap_to_mesh"), &PropToolScene::get_snap_to_mesh);
- ClassDB::bind_method(D_METHOD("set_snap_to_mesh", "value"), &PropToolScene::set_snap_to_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_to_mesh"), "set_snap_to_mesh", "get_snap_to_mesh");
-
- ClassDB::bind_method(D_METHOD("get_snap_axis"), &PropToolScene::get_snap_axis);
- ClassDB::bind_method(D_METHOD("set_snap_axis", "value"), &PropToolScene::set_snap_axis);
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "snap_axis"), "set_snap_axis", "get_snap_axis");
-
- ClassDB::bind_method(D_METHOD("get_scene_data"), &PropToolScene::get_scene_data);
- ClassDB::bind_method(D_METHOD("set_scene_data", "value"), &PropToolScene::set_scene_data);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "scene_data", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_scene_data", "get_scene_data");
-}
-
-#endif
\ No newline at end of file
diff --git a/prop_tool/prop_tool_scene.h b/prop_tool/prop_tool_scene.h
deleted file mode 100644
index 744d43a..0000000
--- a/prop_tool/prop_tool_scene.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-Copyright (c) 2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_TOOL_SCENE_H
-#define PROP_TOOL_SCENE_H
-
-#include "scene/3d/spatial.h"
-
-#include "../props/prop_data_scene.h"
-
-class PropToolScene : public Spatial {
- GDCLASS(PropToolScene, Spatial);
-
-#ifdef TOOLS_ENABLED
-public:
- Ref get_data();
- void set_data(const Ref &data);
-
- Ref get_scene_data();
- void set_scene_data(const Ref &data);
-
- bool get_snap_to_mesh() const;
- void set_snap_to_mesh(const bool value);
-
- Vector3 get_snap_axis() const;
- void set_snap_axis(const Vector3 &value);
-
- PropToolScene();
- ~PropToolScene();
-
-protected:
- static void _bind_methods();
-
-private:
- Ref _scene_data;
- bool _snap_to_mesh;
- Vector3 _snap_axis;
- Ref _prop_scene;
-#endif
-};
-
-#endif
diff --git a/props/prop_data.cpp b/props/prop_data.cpp
deleted file mode 100644
index ce53d30..0000000
--- a/props/prop_data.cpp
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_data.h"
-
-#include "../../voxelman/world/voxel_chunk.h"
-#include "prop_data_prop.h"
-
-int PropData::get_id() const {
- return _id;
-}
-void PropData::set_id(const int value) {
- _id = value;
-}
-
-bool PropData::get_snap_to_mesh() const {
- return _snap_to_mesh;
-}
-void PropData::set_snap_to_mesh(const bool value) {
- _snap_to_mesh = value;
-}
-
-Vector3 PropData::get_snap_axis() const {
- return _snap_axis;
-}
-void PropData::set_snap_axis(const Vector3 &value) {
- _snap_axis = value;
-}
-
-Ref PropData::get_prop(const int index) const {
- ERR_FAIL_INDEX_V(index, _props.size(), Ref());
-
- return _props.get(index);
-}
-void PropData::set_prop(const int index, const Ref prop) {
- ERR_FAIL_INDEX(index, _props.size());
-
- _props.set(index, prop);
-}
-void PropData::add_prop(const Ref prop) {
- _props.push_back(prop);
-}
-void PropData::remove_prop(const int index) {
- ERR_FAIL_INDEX(index, _props.size());
-
- _props.remove(index);
-}
-
-int PropData::get_prop_count() const {
- return _props.size();
-}
-
-Vector PropData::get_props() {
- Vector r;
- for (int i = 0; i < _props.size(); i++) {
- r.push_back(_props[i].get_ref_ptr());
- }
- return r;
-}
-void PropData::set_props(const Vector &props) {
- _props.clear();
- for (int i = 0; i < props.size(); i++) {
- Ref prop = Ref(props[i]);
-
- _props.push_back(prop);
- }
-}
-
-void PropData::add_textures_into(Ref texture_packer) {
- ERR_FAIL_COND(!texture_packer.is_valid());
-
- for (int i = 0; i < _props.size(); ++i) {
- Ref entry = _props.get(i);
-
- Ref pmesh = entry;
-
- if (pmesh.is_valid() && pmesh->get_texture().is_valid()) {
- texture_packer->add_texture(pmesh->get_texture());
- }
-
- Ref pdataprop = entry;
-
- if (pdataprop.is_valid() && pdataprop->get_prop().is_valid()) {
- pdataprop->get_prop()->add_textures_into(texture_packer);
- }
- }
-}
-
-void PropData::add_prop_lights_into(Ref chunk, Transform parent_transform, bool allow_snap) {
- ERR_FAIL_COND(!chunk.is_valid());
-
- for (int i = 0; i < _props.size(); ++i) {
- Ref entry = _props.get(i);
-
- Ref pl = entry;
-
- if (pl.is_valid()) {
- Transform t = parent_transform * pl->get_transform();
-
- Vector3 px = t.origin / chunk->get_voxel_scale();
-
- Ref vl;
- vl.instance();
- vl->set_world_position(px.x + chunk->get_position_x() * chunk->get_size_x(), px.y + chunk->get_position_y() * chunk->get_size_y(), px.z + chunk->get_position_z() * chunk->get_size_z());
- vl->set_color(pl->get_light_color());
- vl->set_size(pl->get_light_size());
-
- chunk->add_prop_light(vl);
- }
-
- Ref pdataprop = entry;
-
- if (pdataprop.is_valid() && pdataprop->get_prop().is_valid()) {
- Ref pd = pdataprop->get_prop();
-
- if (allow_snap) {
- if (pd->get_snap_to_mesh())
- print_error(pd->get_name());
-
- pd->add_prop_lights_into(chunk, get_next_snapped_prop_transform(chunk->get_voxel_world(), parent_transform * pdataprop->get_transform(), pd->get_snap_to_mesh(), pd->get_snap_axis()), allow_snap);
- } else {
- pd->add_prop_lights_into(chunk, parent_transform * pdataprop->get_transform(), allow_snap);
- }
- }
- }
-}
-
-void PropData::add_meshes_into(Ref mesher, Ref texture_packer, Transform parent_transform, Spatial *snap_spatial) {
- ERR_FAIL_COND(!mesher.is_valid());
- ERR_FAIL_COND(!texture_packer.is_valid());
- ERR_FAIL_COND(texture_packer->get_generated_texture_count() == 0);
- ERR_FAIL_COND(snap_spatial != NULL && !ObjectDB::instance_validate(snap_spatial));
-
- Vector2 texsize = texture_packer->get_generated_texture(0)->get_size();
-
- for (int i = 0; i < _props.size(); ++i) {
- Ref entry = _props.get(i);
-
- Ref pmesh = entry;
-
- if (pmesh.is_valid()) {
-
- Rect2 reg = Rect2(0, 0, 1, 1);
-
- if (pmesh->get_texture().is_valid()) {
-
- Ref at = texture_packer->get_texture(pmesh->get_texture());
-
- reg = at->get_region();
-
- reg.position.x /= texsize.x;
- reg.position.y /= texsize.y;
- reg.size.x /= texsize.x;
- reg.size.y /= texsize.y;
- }
-
- if (snap_spatial != NULL)
- mesher->add_mesh_data_resource_transform(pmesh->get_mesh(), get_next_snapped_prop_transform(snap_spatial, parent_transform * pmesh->get_transform(), pmesh->get_snap_to_mesh(), pmesh->get_snap_axis()), reg);
- else
- mesher->add_mesh_data_resource_transform(pmesh->get_mesh(), parent_transform * pmesh->get_transform(), reg);
- }
-
- Ref pdataprop = entry;
-
- if (pdataprop.is_valid() && pdataprop->get_prop().is_valid()) {
-
- if (snap_spatial != NULL)
- pdataprop->get_prop()->add_meshes_into(mesher, texture_packer, get_next_snapped_prop_transform(snap_spatial, parent_transform * pdataprop->get_transform(), pdataprop->get_snap_to_mesh(), pdataprop->get_snap_axis()), snap_spatial);
- else
- pdataprop->get_prop()->add_meshes_into(mesher, texture_packer, parent_transform * pmesh->get_transform(), snap_spatial);
- }
- }
-}
-void PropData::add_meshes_into_bind(Ref mesher, Ref texture_packer, Transform parent_transform, Node *snap_spatial) {
- Spatial *s = Object::cast_to(snap_spatial);
-
- ERR_FAIL_COND(s != NULL && !ObjectDB::instance_validate(s));
-
- add_meshes_into(mesher, texture_packer, parent_transform, s);
-}
-
-Transform PropData::get_next_snapped_prop_transform(Spatial *s, Transform parent_transform, bool snap_to_mesh, Vector3 snap_axis) {
- if (snap_to_mesh) {
- Vector3 pos = s->to_global(parent_transform.origin);
- Vector3 world_snap_axis = s->to_global(parent_transform.xform(snap_axis));
- Vector3 world_snap_dir = world_snap_axis - pos;
- world_snap_dir *= 100;
-
- PhysicsDirectSpaceState *space_state = s->get_world()->get_direct_space_state();
-
- ERR_FAIL_COND_V(space_state == NULL, parent_transform);
-
- PhysicsDirectSpaceState::RayResult res;
-
- if (space_state->intersect_ray(pos - world_snap_dir, pos + world_snap_dir, res, Set(), 1)) {
- parent_transform.origin = s->to_local(res.position);
- }
- }
-
- return parent_transform;
-}
-Transform PropData::get_next_snapped_prop_transform_bind(Node *spatial, Transform parent_transform, bool snap_to_mesh, Vector3 snap_axis) {
- Spatial *s = Object::cast_to(spatial);
-
- ERR_FAIL_COND_V(!ObjectDB::instance_validate(s), parent_transform);
-
- return get_next_snapped_prop_transform(s, parent_transform, snap_to_mesh, snap_axis);
-}
-
-PropData::PropData() {
- _id = 0;
- _snap_to_mesh = false;
- _snap_axis = Vector3(0, -1, 0);
-}
-PropData::~PropData() {
- _props.clear();
-}
-
-void PropData::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_snap_to_mesh"), &PropData::get_snap_to_mesh);
- ClassDB::bind_method(D_METHOD("set_snap_to_mesh", "value"), &PropData::set_snap_to_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_to_mesh"), "set_snap_to_mesh", "get_snap_to_mesh");
-
- ClassDB::bind_method(D_METHOD("get_snap_axis"), &PropData::get_snap_axis);
- ClassDB::bind_method(D_METHOD("set_snap_axis", "value"), &PropData::set_snap_axis);
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "snap_axis"), "set_snap_axis", "get_snap_axis");
-
- ClassDB::bind_method(D_METHOD("get_prop", "index"), &PropData::get_prop);
- ClassDB::bind_method(D_METHOD("set_prop", "index", "spell"), &PropData::set_prop);
- ClassDB::bind_method(D_METHOD("add_prop", "prop"), &PropData::add_prop);
- ClassDB::bind_method(D_METHOD("remove_prop", "index"), &PropData::remove_prop);
-
- ClassDB::bind_method(D_METHOD("get_prop_count"), &PropData::get_prop_count);
-
- ClassDB::bind_method(D_METHOD("get_props"), &PropData::get_props);
- ClassDB::bind_method(D_METHOD("set_props", "props"), &PropData::set_props);
- ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "props", PROPERTY_HINT_NONE, "17/17:PropDataEntry", PROPERTY_USAGE_DEFAULT, "PropDataEntry"), "set_props", "get_props");
-
- ClassDB::bind_method(D_METHOD("add_textures_into", "texture_packer"), &PropData::add_textures_into);
- ClassDB::bind_method(D_METHOD("add_prop_lights_into", "chunk", "parent_transform", "allow_snap"), &PropData::add_prop_lights_into);
-
- ClassDB::bind_method(D_METHOD("add_meshes_into", "mesher", "texture_packer", "parent_transform", "snap_spatial"), &PropData::add_meshes_into_bind);
-
- ClassDB::bind_method(D_METHOD("get_next_snapped_prop_transform", "spatial", "parent_transform", "snap_to_mesh", "snap_axis"), &PropData::get_next_snapped_prop_transform_bind);
-}
diff --git a/props/prop_data.h b/props/prop_data.h
deleted file mode 100644
index 28d1e86..0000000
--- a/props/prop_data.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_DATA_H
-#define PROP_DATA_H
-
-#include "core/math/rect2.h"
-#include "core/math/transform.h"
-#include "core/math/vector2.h"
-#include "core/math/vector3.h"
-#include "core/reference.h"
-#include "core/vector.h"
-
-#include "servers/physics_server.h"
-
-#include "prop_data_entry.h"
-#include "prop_data_mesh.h"
-
-#include "../../voxelman/meshers/voxel_mesher.h"
-
-#include "../../texture_packer/texture_packer.h"
-
-class Spatial;
-class VoxelChunk;
-
-class PropData : public Resource {
- GDCLASS(PropData, Resource);
-
-public:
- int get_id() const;
- void set_id(const int value);
-
- bool get_snap_to_mesh() const;
- void set_snap_to_mesh(const bool value);
-
- Vector3 get_snap_axis() const;
- void set_snap_axis(const Vector3 &value);
-
- Ref get_prop(const int index) const;
- void set_prop(const int index, const Ref prop);
- void add_prop(const Ref prop);
- void remove_prop(const int index);
-
- int get_prop_count() const;
-
- Vector get_props();
- void set_props(const Vector &props);
-
- void add_textures_into(Ref texture_packer);
- void add_prop_lights_into(Ref chunk, Transform parent_transform, bool allow_snap);
- void add_meshes_into(Ref mesher, Ref texture_packer, Transform parent_transform, Spatial *snap_spatial = NULL);
- void add_meshes_into_bind(Ref mesher, Ref texture_packer, Transform parent_transform, Node *snap_spatial = NULL);
-
- Transform get_next_snapped_prop_transform(Spatial *s, Transform parent_transform, bool snap_to_mesh, Vector3 snap_axis);
- Transform get_next_snapped_prop_transform_bind(Node *spatial, Transform parent_transform, bool snap_to_mesh, Vector3 snap_axis);
-
- PropData();
- ~PropData();
-
-protected:
- static void _bind_methods();
-
-private:
- int _id;
- bool _snap_to_mesh;
- Vector3 _snap_axis;
-
- Vector[ > _props;
-};
-
-#endif
diff --git a/props/prop_data_entity.cpp b/props/prop_data_entity.cpp
deleted file mode 100644
index 89e47e8..0000000
--- a/props/prop_data_entity.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_data_entity.h"
-
-int PropDataEntity::get_entity_data_id() const {
- return _entity_data_id;
-}
-void PropDataEntity::set_entity_data_id(const int value) {
- _entity_data_id = value;
-}
-
-int PropDataEntity::get_level() const {
- return _level;
-}
-void PropDataEntity::set_level(const int value) {
- _level = value;
-}
-
-PropDataEntity::PropDataEntity() {
- _entity_data_id = 0;
- _level = 1;
-}
-PropDataEntity::~PropDataEntity() {
-}
-
-void PropDataEntity::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_entity_data_id"), &PropDataEntity::get_entity_data_id);
- ClassDB::bind_method(D_METHOD("set_entity_data_id", "value"), &PropDataEntity::set_entity_data_id);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "entity_data_id"), "set_entity_data_id", "get_entity_data_id");
-
- ClassDB::bind_method(D_METHOD("get_level"), &PropDataEntity::get_level);
- ClassDB::bind_method(D_METHOD("set_level", "value"), &PropDataEntity::set_level);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "level"), "set_level", "get_level");
-}
diff --git a/props/prop_data_entity.h b/props/prop_data_entity.h
deleted file mode 100644
index bd1531b..0000000
--- a/props/prop_data_entity.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_DATA_ENTITY_H
-#define PROP_DATA_ENTITY_H
-
-#include "prop_data_entry.h"
-
-class PropDataEntity : public PropDataEntry {
- GDCLASS(PropDataEntity, PropDataEntry);
-
-public:
- int get_entity_data_id() const;
- void set_entity_data_id(const int value);
-
- int get_level() const;
- void set_level(const int value);
-
- PropDataEntity();
- ~PropDataEntity();
-
-protected:
- static void _bind_methods();
-
-private:
- int _level;
- int _entity_data_id;
-};
-
-#endif
diff --git a/props/prop_data_entry.cpp b/props/prop_data_entry.cpp
deleted file mode 100644
index 4330e35..0000000
--- a/props/prop_data_entry.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_data_entry.h"
-
-Transform PropDataEntry::get_transform() const {
- return _transform;
-}
-void PropDataEntry::set_transform(const Transform value) {
- _transform = value;
-}
-
-PropDataEntry::PropDataEntry() {
-}
-PropDataEntry::~PropDataEntry() {
-}
-
-void PropDataEntry::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_transform"), &PropDataEntry::get_transform);
- ClassDB::bind_method(D_METHOD("set_transform", "value"), &PropDataEntry::set_transform);
- ADD_PROPERTY(PropertyInfo(Variant::TRANSFORM, "transform"), "set_transform", "get_transform");
-}
diff --git a/props/prop_data_entry.h b/props/prop_data_entry.h
deleted file mode 100644
index 0657162..0000000
--- a/props/prop_data_entry.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_DATA_DATA_H
-#define PROP_DATA_DATA_H
-
-#include "core/math/transform.h"
-#include "core/resource.h"
-
-class PropDataEntry : public Resource {
- GDCLASS(PropDataEntry, Resource);
-
-public:
- Transform get_transform() const;
- void set_transform(const Transform value);
-
- PropDataEntry();
- ~PropDataEntry();
-
-protected:
- static void _bind_methods();
-
-private:
- Transform _transform;
-};
-
-#endif
diff --git a/props/prop_data_light.cpp b/props/prop_data_light.cpp
deleted file mode 100644
index 3e7e466..0000000
--- a/props/prop_data_light.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_data_light.h"
-
-Color PropDataLight::get_light_color() const {
- return _light_color;
-}
-void PropDataLight::set_light_color(const Color value) {
- _light_color = value;
-}
-
-int PropDataLight::get_light_size() const {
- return _light_size;
-}
-void PropDataLight::set_light_size(const int value) {
- _light_size = value;
-}
-
-PropDataLight::PropDataLight() {
- _light_size = 5;
-}
-PropDataLight::~PropDataLight() {
-}
-
-void PropDataLight::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_light_color"), &PropDataLight::get_light_color);
- ClassDB::bind_method(D_METHOD("set_light_color", "value"), &PropDataLight::set_light_color);
- ADD_PROPERTY(PropertyInfo(Variant::COLOR, "light_color"), "set_light_color", "get_light_color");
-
- ClassDB::bind_method(D_METHOD("get_light_size"), &PropDataLight::get_light_size);
- ClassDB::bind_method(D_METHOD("set_light_size", "value"), &PropDataLight::set_light_size);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "light_size"), "set_light_size", "get_light_size");
-}
diff --git a/props/prop_data_light.h b/props/prop_data_light.h
deleted file mode 100644
index db9349b..0000000
--- a/props/prop_data_light.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_DATA_LIGHT_H
-#define PROP_DATA_LIGHT_H
-
-#include "prop_data_entry.h"
-
-#include "core/color.h"
-
-class PropDataLight : public PropDataEntry {
- GDCLASS(PropDataLight, PropDataEntry);
-
-public:
- Color get_light_color() const;
- void set_light_color(const Color value);
-
- int get_light_size() const;
- void set_light_size(const int value);
-
- PropDataLight();
- ~PropDataLight();
-
-protected:
- static void _bind_methods();
-
-private:
- Color _light_color;
- int _light_size;
-};
-
-#endif
diff --git a/props/prop_data_mesh.cpp b/props/prop_data_mesh.cpp
deleted file mode 100644
index f5471aa..0000000
--- a/props/prop_data_mesh.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_data_mesh.h"
-
-Ref PropDataMesh::get_mesh() const {
- return _mesh;
-}
-void PropDataMesh::set_mesh(const Ref mesh) {
- _mesh = mesh;
-}
-
-Ref PropDataMesh::get_texture() const {
- return _texture;
-}
-void PropDataMesh::set_texture(const Ref texture) {
- _texture = texture;
-}
-
-bool PropDataMesh::get_snap_to_mesh() {
- return _snap_to_mesh;
-}
-void PropDataMesh::set_snap_to_mesh(bool value) {
- _snap_to_mesh = value;
-}
-
-Vector3 PropDataMesh::get_snap_axis() {
- return _snap_axis;
-}
-void PropDataMesh::set_snap_axis(Vector3 value) {
- _snap_axis = value;
-}
-
-PropDataMesh::PropDataMesh() {
- _snap_to_mesh = true;
- _snap_axis = Vector3(0, 1, 0);
-}
-PropDataMesh::~PropDataMesh() {
- if (_mesh.is_valid())
- _mesh.unref();
-}
-
-void PropDataMesh::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_mesh"), &PropDataMesh::get_mesh);
- ClassDB::bind_method(D_METHOD("set_mesh", "value"), &PropDataMesh::set_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "mesh", PROPERTY_HINT_RESOURCE_TYPE, "MeshDataResource"), "set_mesh", "get_mesh");
-
- ClassDB::bind_method(D_METHOD("get_texture"), &PropDataMesh::get_texture);
- ClassDB::bind_method(D_METHOD("set_texture", "value"), &PropDataMesh::set_texture);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_texture", "get_texture");
-
- ClassDB::bind_method(D_METHOD("get_snap_to_mesh"), &PropDataMesh::get_snap_to_mesh);
- ClassDB::bind_method(D_METHOD("set_snap_to_mesh", "value"), &PropDataMesh::set_snap_to_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_to_mesh"), "set_snap_to_mesh", "get_snap_to_mesh");
-
- ClassDB::bind_method(D_METHOD("get_snap_axis"), &PropDataMesh::get_snap_axis);
- ClassDB::bind_method(D_METHOD("set_snap_axis", "value"), &PropDataMesh::set_snap_axis);
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "snap_axis"), "set_snap_axis", "get_snap_axis");
-}
diff --git a/props/prop_data_mesh.h b/props/prop_data_mesh.h
deleted file mode 100644
index 314f57a..0000000
--- a/props/prop_data_mesh.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_DATA_MESH_H
-#define PROP_DATA_MESH_H
-
-#include "core/math/vector3.h"
-#include "prop_data_entry.h"
-
-#include "scene/resources/texture.h"
-
-#include "../../mesh_data_resource/mesh_data_resource.h"
-
-class PropDataMesh : public PropDataEntry {
- GDCLASS(PropDataMesh, PropDataEntry);
-
-public:
- Ref get_mesh() const;
- void set_mesh(const Ref mesh);
-
- Ref get_texture() const;
- void set_texture(const Ref texture);
-
- bool get_snap_to_mesh();
- void set_snap_to_mesh(bool value);
-
- Vector3 get_snap_axis();
- void set_snap_axis(Vector3 value);
-
- PropDataMesh();
- ~PropDataMesh();
-
-protected:
- static void _bind_methods();
-
-private:
- bool _snap_to_mesh;
- Vector3 _snap_axis;
- Ref _mesh;
- Ref _texture;
-};
-
-#endif
diff --git a/props/prop_data_prop.cpp b/props/prop_data_prop.cpp
deleted file mode 100644
index 21e8cc0..0000000
--- a/props/prop_data_prop.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_data_prop.h"
-
-Ref PropDataProp::get_prop() const {
- return _prop;
-}
-void PropDataProp::set_prop(const Ref value) {
- _prop = value;
-}
-
-bool PropDataProp::get_snap_to_mesh() {
- return _snap_to_mesh;
-}
-void PropDataProp::set_snap_to_mesh(bool value) {
- _snap_to_mesh = value;
-}
-
-Vector3 PropDataProp::get_snap_axis() {
- return _snap_axis;
-}
-void PropDataProp::set_snap_axis(Vector3 value) {
- _snap_axis = value;
-}
-
-PropDataProp::PropDataProp() {
- _snap_to_mesh = false;
- _snap_axis = Vector3(0, 1, 0);
-}
-PropDataProp::~PropDataProp() {
- if (_prop.is_valid())
- _prop.unref();
-}
-
-void PropDataProp::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_prop"), &PropDataProp::get_prop);
- ClassDB::bind_method(D_METHOD("set_prop", "value"), &PropDataProp::set_prop);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "prop", PROPERTY_HINT_RESOURCE_TYPE, "PropData"), "set_prop", "get_prop");
-
- ClassDB::bind_method(D_METHOD("get_snap_to_mesh"), &PropDataProp::get_snap_to_mesh);
- ClassDB::bind_method(D_METHOD("set_snap_to_mesh", "value"), &PropDataProp::set_snap_to_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_to_mesh"), "set_snap_to_mesh", "get_snap_to_mesh");
-
- ClassDB::bind_method(D_METHOD("get_snap_axis"), &PropDataProp::get_snap_axis);
- ClassDB::bind_method(D_METHOD("set_snap_axis", "value"), &PropDataProp::set_snap_axis);
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "snap_axis"), "set_snap_axis", "get_snap_axis");
-}
diff --git a/props/prop_data_prop.h b/props/prop_data_prop.h
deleted file mode 100644
index 8c14f92..0000000
--- a/props/prop_data_prop.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_DATA_PROP_H
-#define PROP_DATA_PROP_H
-
-#include "core/math/vector3.h"
-#include "prop_data_entry.h"
-
-#include "prop_data.h"
-
-class PropDataProp : public PropDataEntry {
- GDCLASS(PropDataProp, PropDataEntry);
-
-public:
- Ref get_prop() const;
- void set_prop(const Ref value);
-
- bool get_snap_to_mesh();
- void set_snap_to_mesh(bool value);
-
- Vector3 get_snap_axis();
- void set_snap_axis(Vector3 value);
-
- PropDataProp();
- ~PropDataProp();
-
-protected:
- static void _bind_methods();
-
-private:
- bool _snap_to_mesh;
- Vector3 _snap_axis;
- Ref _prop;
-};
-
-#endif
diff --git a/props/prop_data_scene.cpp b/props/prop_data_scene.cpp
deleted file mode 100644
index 80d35d7..0000000
--- a/props/prop_data_scene.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#include "prop_data_scene.h"
-
-Ref PropDataScene::get_scene() const {
- return _scene;
-}
-void PropDataScene::set_scene(const Ref value) {
- _scene = value;
-}
-
-bool PropDataScene::get_snap_to_mesh() {
- return _snap_to_mesh;
-}
-void PropDataScene::set_snap_to_mesh(bool value) {
- _snap_to_mesh = value;
-}
-
-Vector3 PropDataScene::get_snap_axis() {
- return _snap_axis;
-}
-void PropDataScene::set_snap_axis(Vector3 value) {
- _snap_axis = value;
-}
-
-PropDataScene::PropDataScene() {
- _snap_to_mesh = true;
- _snap_axis = Vector3(0, 1, 0);
-}
-PropDataScene::~PropDataScene() {
- if (_scene.is_valid())
- _scene.unref();
-}
-
-void PropDataScene::_bind_methods() {
- ClassDB::bind_method(D_METHOD("get_scene"), &PropDataScene::get_scene);
- ClassDB::bind_method(D_METHOD("set_scene", "value"), &PropDataScene::set_scene);
- ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "scene", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_scene", "get_scene");
-
- ClassDB::bind_method(D_METHOD("get_snap_to_mesh"), &PropDataScene::get_snap_to_mesh);
- ClassDB::bind_method(D_METHOD("set_snap_to_mesh", "value"), &PropDataScene::set_snap_to_mesh);
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_to_mesh"), "set_snap_to_mesh", "get_snap_to_mesh");
-
- ClassDB::bind_method(D_METHOD("get_snap_axis"), &PropDataScene::get_snap_axis);
- ClassDB::bind_method(D_METHOD("set_snap_axis", "value"), &PropDataScene::set_snap_axis);
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "snap_axis"), "set_snap_axis", "get_snap_axis");
-}
diff --git a/props/prop_data_scene.h b/props/prop_data_scene.h
deleted file mode 100644
index c9c4e62..0000000
--- a/props/prop_data_scene.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-Copyright (c) 2019-2020 Péter Magyar
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#ifndef PROP_DATA_SCENE_H
-#define PROP_DATA_SCENE_H
-
-#include "core/math/vector3.h"
-#include "prop_data_entry.h"
-
-#include "scene/resources/packed_scene.h"
-
-class PropDataScene : public PropDataEntry {
- GDCLASS(PropDataScene, PropDataEntry);
-
-public:
- Ref get_scene() const;
- void set_scene(const Ref value);
-
- bool get_snap_to_mesh();
- void set_snap_to_mesh(bool value);
-
- Vector3 get_snap_axis();
- void set_snap_axis(Vector3 value);
-
- PropDataScene();
- ~PropDataScene();
-
-protected:
- static void _bind_methods();
-
-private:
- bool _snap_to_mesh;
- Vector3 _snap_axis;
- Ref _scene;
-};
-
-#endif
diff --git a/register_types.cpp b/register_types.cpp
index 4c47dc9..2f5218a 100644
--- a/register_types.cpp
+++ b/register_types.cpp
@@ -22,24 +22,9 @@ SOFTWARE.
#include "register_types.h"
-#include "props/prop_data.h"
-#include "props/prop_data_entity.h"
-#include "props/prop_data_entry.h"
-#include "props/prop_data_light.h"
-#include "props/prop_data_mesh.h"
-#include "props/prop_data_prop.h"
-#include "props/prop_data_scene.h"
-
#include "clutter/ground_clutter.h"
#include "clutter/ground_clutter_foliage.h"
-#include "prop_tool/prop_tool.h"
-#include "prop_tool/prop_tool_entity.h"
-#include "prop_tool/prop_tool_light.h"
-#include "prop_tool/prop_tool_mesh.h"
-#include "prop_tool/prop_tool_prop.h"
-#include "prop_tool/prop_tool_scene.h"
-
#include "prop_mesh_utils.h"
#include "prop_ess_entity.h"
@@ -48,24 +33,9 @@ SOFTWARE.
#include "prop_voxelman_light.h"
void register_props_types() {
- ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
-
ClassDB::register_class();
ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
- ClassDB::register_class();
-
ClassDB::register_class();
ClassDB::register_class();
]