diff --git a/modules/entity_spell_system/SCsub b/modules/entity_spell_system/SCsub
index 050a0d853..0de756bc5 100644
--- a/modules/entity_spell_system/SCsub
+++ b/modules/entity_spell_system/SCsub
@@ -127,6 +127,7 @@ if env["module_texture_packer_enabled"]:
if env["module_props_enabled"]:
sources.append("props/prop_data_entity.cpp")
+ sources.append("props/prop_data_ess_entity_world_spawner_3d.cpp")
sources.append("props/prop_data_ess_entity_world_spawner_3d_single.cpp")
sources.append("props/prop_data_ess_entity_world_spawner_3d_area.cpp")
diff --git a/modules/entity_spell_system/config.py b/modules/entity_spell_system/config.py
index ddcc98792..56627a4ff 100644
--- a/modules/entity_spell_system/config.py
+++ b/modules/entity_spell_system/config.py
@@ -102,6 +102,7 @@ def get_doc_classes():
"ESSEntitySpawner",
"PropDataEntity",
+ "PropDataESSEntityWorldSpawner3D",
"PropDataESSEntityWorldSpawner3DSingle",
"PropDataESSEntityWorldSpawner3DArea",
diff --git a/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3D.xml b/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3D.xml
new file mode 100644
index 000000000..376713ac5
--- /dev/null
+++ b/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3D.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3DArea.xml b/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3DArea.xml
index 083fa7cac..b94571baf 100644
--- a/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3DArea.xml
+++ b/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3DArea.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3DSingle.xml b/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3DSingle.xml
index 05371e4ad..b231de6d6 100644
--- a/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3DSingle.xml
+++ b/modules/entity_spell_system/doc_classes/PropDataESSEntityWorldSpawner3DSingle.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d.cpp b/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d.cpp
new file mode 100644
index 000000000..f11dda20b
--- /dev/null
+++ b/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d.cpp
@@ -0,0 +1,40 @@
+/*************************************************************************/
+/* prop_data_ess_entity_world_spawner_3d.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* PANDEMONIUM ENGINE */
+/* https://github.com/Relintai/pandemonium_engine */
+/*************************************************************************/
+/* Copyright (c) 2022-present Péter Magyar. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* */
+/* 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_ess_entity_world_spawner_3d.h"
+
+PropDataESSEntityWorldSpawner3D::PropDataESSEntityWorldSpawner3D() {
+}
+PropDataESSEntityWorldSpawner3D::~PropDataESSEntityWorldSpawner3D() {
+}
+
+void PropDataESSEntityWorldSpawner3D::_bind_methods() {
+}
diff --git a/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d.h b/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d.h
new file mode 100644
index 000000000..e11b7c641
--- /dev/null
+++ b/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d.h
@@ -0,0 +1,52 @@
+#ifndef PROP_DATA_ESS_ENTITY_WORLD_SPAWNER_3D_H
+#define PROP_DATA_ESS_ENTITY_WORLD_SPAWNER_3D_H
+
+/*************************************************************************/
+/* prop_data_ess_entity_world_spawner_3d.h */
+/*************************************************************************/
+/* This file is part of: */
+/* PANDEMONIUM ENGINE */
+/* https://github.com/Relintai/pandemonium_engine */
+/*************************************************************************/
+/* Copyright (c) 2022-present Péter Magyar. */
+/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
+/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
+/* */
+/* 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 "../../props/props/prop_data_entry.h"
+
+class PropDataESSEntityWorldSpawner3D : public PropDataEntry {
+ GDCLASS(PropDataESSEntityWorldSpawner3D, PropDataEntry);
+
+public:
+ bool _processor_handles(Node *node) { return false; }
+
+ PropDataESSEntityWorldSpawner3D();
+ ~PropDataESSEntityWorldSpawner3D();
+
+protected:
+ static void _bind_methods();
+
+private:
+};
+
+#endif
diff --git a/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d_area.h b/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d_area.h
index 75ea6fea8..1ab3b5b80 100644
--- a/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d_area.h
+++ b/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d_area.h
@@ -32,14 +32,14 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "../../props/props/prop_data_entry.h"
+#include "prop_data_ess_entity_world_spawner_3d.h"
class ESSEntityWorldSpawner3DArea;
class EntityData;
class PropData;
-class PropDataESSEntityWorldSpawner3DArea : public PropDataEntry {
- GDCLASS(PropDataESSEntityWorldSpawner3DArea, PropDataEntry);
+class PropDataESSEntityWorldSpawner3DArea : public PropDataESSEntityWorldSpawner3D {
+ GDCLASS(PropDataESSEntityWorldSpawner3DArea, PropDataESSEntityWorldSpawner3D);
public:
Vector3 get_spawn_area_extents() const;
diff --git a/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d_single.h b/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d_single.h
index 59f1534b3..a9a0c60d9 100644
--- a/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d_single.h
+++ b/modules/entity_spell_system/props/prop_data_ess_entity_world_spawner_3d_single.h
@@ -32,14 +32,14 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "../../props/props/prop_data_entry.h"
+#include "prop_data_ess_entity_world_spawner_3d.h"
class ESSEntityWorldSpawner3DSingle;
class EntityData;
class PropData;
-class PropDataESSEntityWorldSpawner3DSingle : public PropDataEntry {
- GDCLASS(PropDataESSEntityWorldSpawner3DSingle, PropDataEntry);
+class PropDataESSEntityWorldSpawner3DSingle : public PropDataESSEntityWorldSpawner3D {
+ GDCLASS(PropDataESSEntityWorldSpawner3DSingle, PropDataESSEntityWorldSpawner3D);
public:
String get_entity_name() const;
diff --git a/modules/entity_spell_system/register_types.cpp b/modules/entity_spell_system/register_types.cpp
index 381336ec1..edffc2eef 100644
--- a/modules/entity_spell_system/register_types.cpp
+++ b/modules/entity_spell_system/register_types.cpp
@@ -152,6 +152,7 @@
#ifdef MODULE_PROPS_ENABLED
#include "modules/props/singleton/prop_utils.h"
#include "props/prop_data_entity.h"
+#include "props/prop_data_ess_entity_world_spawner_3d.h"
#include "props/prop_data_ess_entity_world_spawner_3d_single.h"
#include "props/prop_data_ess_entity_world_spawner_3d_area.h"
#endif
@@ -178,6 +179,7 @@ void register_entity_spell_system_types(ModuleRegistrationLevel p_level) {
if (p_level == MODULE_REGISTRATION_LEVEL_SCENE) {
#ifdef MODULE_PROPS_ENABLED
ClassDB::register_class();
+ ClassDB::register_class();
ClassDB::register_class();
ClassDB::register_class();
#endif