Browse Source

[C#] Unexpose `GodotSharp`

This class seems to have been exposed accidentally, and breaks
documentation on non-mono builds, requiring hacks
A Thousand Ships 1 year ago
parent
commit
aff2e47bff

+ 0 - 3
doc/classes/@GlobalScope.xml

@@ -1570,9 +1570,6 @@
 		<member name="Geometry3D" type="Geometry3D" setter="" getter="">
 			The [Geometry3D] singleton.
 		</member>
-		<member name="GodotSharp" type="GodotSharp" setter="" getter="">
-			The [GodotSharp] singleton.
-		</member>
 		<member name="IP" type="IP" setter="" getter="">
 			The [IP] singleton.
 		</member>

+ 0 - 19
editor/doc_tools.cpp

@@ -344,25 +344,6 @@ void DocTools::merge_from(const DocTools &p_data) {
 		merge_theme_properties(c.theme_properties, cf.theme_properties);
 
 		merge_operators(c.operators, cf.operators);
-
-#ifndef MODULE_MONO_ENABLED
-		// The Mono module defines some properties that we want to keep when
-		// re-generating docs with a non-Mono build, to prevent pointless diffs
-		// (and loss of descriptions) depending on the config of the doc writer.
-		// We use a horrible hack to force keeping the relevant properties,
-		// hardcoded below. At least it's an ad hoc hack... ¯\_(ツ)_/¯
-		// Don't show this to your kids.
-		if (c.name == "@GlobalScope") {
-			// Retrieve GodotSharp singleton.
-			for (int j = 0; j < cf.properties.size(); j++) {
-				if (cf.properties[j].name == "GodotSharp") {
-					c.properties.push_back(cf.properties[j]);
-					c.properties.sort();
-					break;
-				}
-			}
-		}
-#endif
 	}
 }
 

+ 0 - 1
modules/mono/doc_classes/CSharpScript.xml

@@ -5,7 +5,6 @@
 	</brief_description>
 	<description>
 		This class represents a C# script. It is the C# equivalent of the [GDScript] class and is only available in Mono-enabled Godot builds.
-		See also [GodotSharp].
 	</description>
 	<tutorials>
 		<link title="C# documentation index">$DOCS_URL/tutorials/scripting/c_sharp/index.html</link>

+ 0 - 20
modules/mono/doc_classes/GodotSharp.xml

@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GodotSharp" inherits="Object" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
-	<brief_description>
-		Bridge between Godot and the Mono runtime (Mono-enabled builds only).
-	</brief_description>
-	<description>
-		This class is a bridge between Godot and the Mono runtime. It exposes several low-level operations and is only available in Mono-enabled Godot builds.
-		See also [CSharpScript].
-	</description>
-	<tutorials>
-	</tutorials>
-	<methods>
-		<method name="is_runtime_initialized">
-			<return type="bool" />
-			<description>
-				Returns [code]true[/code] if the .NET runtime is initialized, [code]false[/code] otherwise.
-			</description>
-		</method>
-	</methods>
-</class>

+ 1 - 1
modules/mono/editor/editor_internal_calls.cpp

@@ -143,7 +143,7 @@ bool godot_icall_Internal_IsAssembliesReloadingNeeded() {
 
 void godot_icall_Internal_ReloadAssemblies(bool p_soft_reload) {
 #ifdef GD_MONO_HOT_RELOAD
-	mono_bind::GodotSharp::get_singleton()->call_deferred(SNAME("_reload_assemblies"), (bool)p_soft_reload);
+	callable_mp(mono_bind::GodotSharp::get_singleton(), &mono_bind::GodotSharp::reload_assemblies).call_deferred(p_soft_reload);
 #endif
 }
 

+ 1 - 10
modules/mono/mono_gd/gd_mono.cpp

@@ -564,11 +564,7 @@ namespace mono_bind {
 
 GodotSharp *GodotSharp::singleton = nullptr;
 
-bool GodotSharp::_is_runtime_initialized() {
-	return GDMono::get_singleton() != nullptr && GDMono::get_singleton()->is_runtime_initialized();
-}
-
-void GodotSharp::_reload_assemblies(bool p_soft_reload) {
+void GodotSharp::reload_assemblies(bool p_soft_reload) {
 #ifdef GD_MONO_HOT_RELOAD
 	CRASH_COND(CSharpLanguage::get_singleton() == nullptr);
 	// This method may be called more than once with `call_deferred`, so we need to check
@@ -579,11 +575,6 @@ void GodotSharp::_reload_assemblies(bool p_soft_reload) {
 #endif
 }
 
-void GodotSharp::_bind_methods() {
-	ClassDB::bind_method(D_METHOD("is_runtime_initialized"), &GodotSharp::_is_runtime_initialized);
-	ClassDB::bind_method(D_METHOD("_reload_assemblies"), &GodotSharp::_reload_assemblies);
-}
-
 GodotSharp::GodotSharp() {
 	singleton = this;
 }

+ 2 - 6
modules/mono/mono_gd/gd_mono.h

@@ -167,18 +167,14 @@ namespace mono_bind {
 class GodotSharp : public Object {
 	GDCLASS(GodotSharp, Object);
 
-	friend class GDMono;
-
-	void _reload_assemblies(bool p_soft_reload);
-	bool _is_runtime_initialized();
-
 protected:
 	static GodotSharp *singleton;
-	static void _bind_methods();
 
 public:
 	static GodotSharp *get_singleton() { return singleton; }
 
+	void reload_assemblies(bool p_soft_reload);
+
 	GodotSharp();
 	~GodotSharp();
 };

+ 0 - 3
modules/mono/register_types.cpp

@@ -49,9 +49,6 @@ void initialize_mono_module(ModuleInitializationLevel p_level) {
 
 	_godotsharp = memnew(mono_bind::GodotSharp);
 
-	GDREGISTER_CLASS(mono_bind::GodotSharp);
-	Engine::get_singleton()->add_singleton(Engine::Singleton("GodotSharp", mono_bind::GodotSharp::get_singleton()));
-
 	script_language_cs = memnew(CSharpLanguage);
 	script_language_cs->set_language_index(ScriptServer::get_language_count());
 	ScriptServer::register_language(script_language_cs);