aboutsummaryrefslogtreecommitdiff
path: root/servers/register_server_types.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'servers/register_server_types.cpp')
-rw-r--r--servers/register_server_types.cpp39
1 files changed, 33 insertions, 6 deletions
diff --git a/servers/register_server_types.cpp b/servers/register_server_types.cpp
index 7a9328e30..1ba9e7b17 100644
--- a/servers/register_server_types.cpp
+++ b/servers/register_server_types.cpp
@@ -49,6 +49,9 @@
#include "audio/effects/audio_effect_reverb.h"
#include "audio/effects/audio_effect_stereo_enhance.h"
#include "audio_server.h"
+#include "physics/physics_server_sw.h"
+#include "physics_2d/physics_2d_server_sw.h"
+#include "physics_2d/physics_2d_server_wrap_mt.h"
#include "physics_2d_server.h"
#include "physics_server.h"
#include "script_debugger_remote.h"
@@ -74,6 +77,14 @@ static void _debugger_get_resource_usage(List<ScriptDebuggerRemote::ResourceUsag
ShaderTypes *shader_types = NULL;
+PhysicsServer *_createGodotPhysicsCallback() {
+ return memnew(PhysicsServerSW);
+}
+
+Physics2DServer *_createGodotPhysics2DCallback() {
+ return Physics2DServerWrapMT::init_server<Physics2DServerSW>();
+}
+
void register_server_types() {
ClassDB::register_virtual_class<VisualServer>();
@@ -82,12 +93,6 @@ void register_server_types() {
ClassDB::register_virtual_class<Physics2DServer>();
ClassDB::register_class<ARVRServer>();
- ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("VisualServer", VisualServer::get_singleton()));
- ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("AudioServer", AudioServer::get_singleton()));
- ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("PhysicsServer", PhysicsServer::get_singleton()));
- ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("Physics2DServer", Physics2DServer::get_singleton()));
- ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("ARVRServer", ARVRServer::get_singleton()));
-
shader_types = memnew(ShaderTypes);
ClassDB::register_virtual_class<ARVRInterface>();
@@ -144,9 +149,31 @@ void register_server_types() {
ClassDB::register_virtual_class<PhysicsShapeQueryResult>();
ScriptDebuggerRemote::resource_usage_func = _debugger_get_resource_usage;
+
+ // Physics 2D
+ GLOBAL_DEF(Physics2DServerManager::setting_property_name, "DEFAULT");
+ ProjectSettings::get_singleton()->set_custom_property_info(Physics2DServerManager::setting_property_name, PropertyInfo(Variant::STRING, Physics2DServerManager::setting_property_name, PROPERTY_HINT_ENUM, "DEFAULT"));
+
+ Physics2DServerManager::register_server("GodotPhysics", &_createGodotPhysics2DCallback);
+ Physics2DServerManager::set_default_server("GodotPhysics");
+
+ // Physics 3D
+ GLOBAL_DEF(PhysicsServerManager::setting_property_name, "DEFAULT");
+ ProjectSettings::get_singleton()->set_custom_property_info(PhysicsServerManager::setting_property_name, PropertyInfo(Variant::STRING, PhysicsServerManager::setting_property_name, PROPERTY_HINT_ENUM, "DEFAULT"));
+
+ PhysicsServerManager::register_server("GodotPhysics", &_createGodotPhysicsCallback);
+ PhysicsServerManager::set_default_server("GodotPhysics");
}
void unregister_server_types() {
memdelete(shader_types);
}
+
+void register_server_singletons() {
+ ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("VisualServer", VisualServer::get_singleton()));
+ ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("AudioServer", AudioServer::get_singleton()));
+ ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("PhysicsServer", PhysicsServer::get_singleton()));
+ ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("Physics2DServer", Physics2DServer::get_singleton()));
+ ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("ARVRServer", ARVRServer::get_singleton()));
+}