@@ -137,8 +137,10 @@ void register_core_types() {
137137
138138 CoreStringNames::create ();
139139
140- resource_format_po.instantiate ();
141- ResourceLoader::add_resource_format_loader (resource_format_po);
140+ if (GD_IS_CLASS_ENABLED (Translation)) {
141+ resource_format_po.instantiate ();
142+ ResourceLoader::add_resource_format_loader (resource_format_po);
143+ }
142144
143145 resource_saver_binary.instantiate ();
144146 ResourceSaver::add_resource_format_saver (resource_saver_binary);
@@ -151,8 +153,10 @@ void register_core_types() {
151153 resource_format_importer_saver.instantiate ();
152154 ResourceSaver::add_resource_format_saver (resource_format_importer_saver);
153155
154- resource_format_image.instantiate ();
155- ResourceLoader::add_resource_format_loader (resource_format_image);
156+ if (GD_IS_CLASS_ENABLED (Image)) {
157+ resource_format_image.instantiate ();
158+ ResourceLoader::add_resource_format_loader (resource_format_image);
159+ }
156160
157161 GDREGISTER_CLASS (Object);
158162
@@ -219,16 +223,21 @@ void register_core_types() {
219223 ClassDB::register_custom_instance_class<PacketPeerDTLS>();
220224 ClassDB::register_custom_instance_class<DTLSServer>();
221225
222- resource_format_saver_crypto.instantiate ();
223- ResourceSaver::add_resource_format_saver (resource_format_saver_crypto);
224- resource_format_loader_crypto.instantiate ();
225- ResourceLoader::add_resource_format_loader (resource_format_loader_crypto);
226+ if (GD_IS_CLASS_ENABLED (Crypto)) {
227+ resource_format_saver_crypto.instantiate ();
228+ ResourceSaver::add_resource_format_saver (resource_format_saver_crypto);
229+
230+ resource_format_loader_crypto.instantiate ();
231+ ResourceLoader::add_resource_format_loader (resource_format_loader_crypto);
232+ }
226233
227- resource_loader_json.instantiate ();
228- ResourceLoader::add_resource_format_loader (resource_loader_json);
234+ if (GD_IS_CLASS_ENABLED (JSON)) {
235+ resource_saver_json.instantiate ();
236+ ResourceSaver::add_resource_format_saver (resource_saver_json);
229237
230- resource_saver_json.instantiate ();
231- ResourceSaver::add_resource_format_saver (resource_saver_json);
238+ resource_loader_json.instantiate ();
239+ ResourceLoader::add_resource_format_loader (resource_loader_json);
240+ }
232241
233242 GDREGISTER_CLASS (MainLoop);
234243 GDREGISTER_CLASS (Translation);
@@ -277,8 +286,10 @@ void register_core_types() {
277286
278287 gdextension_manager = memnew (GDExtensionManager);
279288
280- resource_loader_gdextension.instantiate ();
281- ResourceLoader::add_resource_format_loader (resource_loader_gdextension);
289+ if (GD_IS_CLASS_ENABLED (GDExtension)) {
290+ resource_loader_gdextension.instantiate ();
291+ ResourceLoader::add_resource_format_loader (resource_loader_gdextension);
292+ }
282293
283294 ip = IP::create ();
284295
@@ -409,8 +420,10 @@ void unregister_core_types() {
409420 memdelete (ip);
410421 }
411422
412- ResourceLoader::remove_resource_format_loader (resource_format_image);
413- resource_format_image.unref ();
423+ if (GD_IS_CLASS_ENABLED (Image)) {
424+ ResourceLoader::remove_resource_format_loader (resource_format_image);
425+ resource_format_image.unref ();
426+ }
414427
415428 ResourceSaver::remove_resource_format_saver (resource_saver_binary);
416429 resource_saver_binary.unref ();
@@ -424,22 +437,31 @@ void unregister_core_types() {
424437 ResourceSaver::remove_resource_format_saver (resource_format_importer_saver);
425438 resource_format_importer_saver.unref ();
426439
427- ResourceLoader::remove_resource_format_loader (resource_format_po);
428- resource_format_po.unref ();
440+ if (GD_IS_CLASS_ENABLED (Translation)) {
441+ ResourceLoader::remove_resource_format_loader (resource_format_po);
442+ resource_format_po.unref ();
443+ }
444+
445+ if (GD_IS_CLASS_ENABLED (Crypto)) {
446+ ResourceSaver::remove_resource_format_saver (resource_format_saver_crypto);
447+ resource_format_saver_crypto.unref ();
429448
430- ResourceSaver::remove_resource_format_saver (resource_format_saver_crypto);
431- resource_format_saver_crypto.unref ();
432- ResourceLoader::remove_resource_format_loader (resource_format_loader_crypto);
433- resource_format_loader_crypto.unref ();
449+ ResourceLoader::remove_resource_format_loader (resource_format_loader_crypto);
450+ resource_format_loader_crypto.unref ();
451+ }
434452
435- ResourceSaver::remove_resource_format_saver (resource_saver_json);
436- resource_saver_json.unref ();
453+ if (GD_IS_CLASS_ENABLED (JSON)) {
454+ ResourceSaver::remove_resource_format_saver (resource_saver_json);
455+ resource_saver_json.unref ();
437456
438- ResourceLoader::remove_resource_format_loader (resource_loader_json);
439- resource_loader_json.unref ();
457+ ResourceLoader::remove_resource_format_loader (resource_loader_json);
458+ resource_loader_json.unref ();
459+ }
440460
441- ResourceLoader::remove_resource_format_loader (resource_loader_gdextension);
442- resource_loader_gdextension.unref ();
461+ if (GD_IS_CLASS_ENABLED (GDExtension)) {
462+ ResourceLoader::remove_resource_format_loader (resource_loader_gdextension);
463+ resource_loader_gdextension.unref ();
464+ }
443465
444466 ResourceLoader::finalize ();
445467
0 commit comments