Skip to content

Commit

Permalink
[C#] Unexpose GodotSharp
Browse files Browse the repository at this point in the history
This class seems to have been exposed accidentally, and breaks
documentation on non-mono builds, requiring hacks
  • Loading branch information
AThousandShips committed May 4, 2024
1 parent 7ebc866 commit aff2e47
Show file tree
Hide file tree
Showing 8 changed files with 4 additions and 63 deletions.
3 changes: 0 additions & 3 deletions doc/classes/@GlobalScope.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
19 changes: 0 additions & 19 deletions editor/doc_tools.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}

Expand Down
1 change: 0 additions & 1 deletion modules/mono/doc_classes/CSharpScript.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
20 changes: 0 additions & 20 deletions modules/mono/doc_classes/GodotSharp.xml

This file was deleted.

2 changes: 1 addition & 1 deletion modules/mono/editor/editor_internal_calls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
11 changes: 1 addition & 10 deletions modules/mono/mono_gd/gd_mono.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
}
Expand Down
8 changes: 2 additions & 6 deletions modules/mono/mono_gd/gd_mono.h
Original file line number Diff line number Diff line change
Expand Up @@ -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();
};
Expand Down
3 changes: 0 additions & 3 deletions modules/mono/register_types.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit aff2e47

Please sign in to comment.