Skip to content

Commit 7095431

Browse files
committed
GDExtension: Add interface functions for Object::set_script_instance()
1 parent 1586c56 commit 7095431

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

core/extension/gdextension_interface.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1572,6 +1572,15 @@ static GDExtensionScriptInstancePtr gdextension_object_get_script_instance(GDExt
15721572
return script_instance_extension->instance;
15731573
}
15741574

1575+
static void gdextension_object_set_script_instance(GDExtensionObjectPtr p_object, GDExtensionScriptInstancePtr p_script_instance) {
1576+
ERR_FAIL_NULL(p_object);
1577+
1578+
Object *o = (Object *)p_object;
1579+
ScriptInstance *script_instance = (ScriptInstanceExtension *)p_script_instance;
1580+
1581+
o->set_script_instance(script_instance);
1582+
}
1583+
15751584
#ifndef DISABLE_DEPRECATED
15761585
static void gdextension_callable_custom_create(GDExtensionUninitializedTypePtr r_callable, GDExtensionCallableCustomInfo *p_custom_callable_info) {
15771586
memnew_placement(r_callable, Callable(memnew(CallableCustomExtension(p_custom_callable_info))));
@@ -1809,6 +1818,7 @@ void gdextension_setup_interface() {
18091818
REGISTER_INTERFACE_FUNC(placeholder_script_instance_create);
18101819
REGISTER_INTERFACE_FUNC(placeholder_script_instance_update);
18111820
REGISTER_INTERFACE_FUNC(object_get_script_instance);
1821+
REGISTER_INTERFACE_FUNC(object_set_script_instance);
18121822
#ifndef DISABLE_DEPRECATED
18131823
REGISTER_INTERFACE_FUNC(callable_custom_create);
18141824
#endif // DISABLE_DEPRECATED

core/extension/gdextension_interface.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2721,6 +2721,17 @@ typedef void (*GDExtensionInterfacePlaceHolderScriptInstanceUpdate)(GDExtensionS
27212721
*/
27222722
typedef GDExtensionScriptInstanceDataPtr (*GDExtensionInterfaceObjectGetScriptInstance)(GDExtensionConstObjectPtr p_object, GDExtensionObjectPtr p_language);
27232723

2724+
/**
2725+
* @name object_set_script_instance
2726+
* @since 4.5
2727+
*
2728+
* Set the script instance data attached to this object.
2729+
*
2730+
* @param p_object A pointer to the Object.
2731+
* @param p_script_instance A pointer to the script instance data to attach to this object.
2732+
*/
2733+
typedef void (*GDExtensionInterfaceObjectSetScriptInstance)(GDExtensionObjectPtr p_object, GDExtensionScriptInstanceDataPtr p_script_instance);
2734+
27242735
/* INTERFACE: Callable */
27252736

27262737
/**

0 commit comments

Comments
 (0)