@@ -515,7 +515,8 @@ typedef void *GDExtensionScriptInstanceDataPtr; // Pointer to custom ScriptInsta
515
515
typedef GDExtensionBool (* GDExtensionScriptInstanceSet )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name , GDExtensionConstVariantPtr p_value );
516
516
typedef GDExtensionBool (* GDExtensionScriptInstanceGet )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name , GDExtensionVariantPtr r_ret );
517
517
typedef const GDExtensionPropertyInfo * (* GDExtensionScriptInstanceGetPropertyList )(GDExtensionScriptInstanceDataPtr p_instance , uint32_t * r_count );
518
- typedef void (* GDExtensionScriptInstanceFreePropertyList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionPropertyInfo * p_list );
518
+ typedef void (* GDExtensionScriptInstanceFreePropertyList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionPropertyInfo * p_list ); // Deprecated. Use GDExtensionScriptInstanceFreePropertyList2 instead.
519
+ typedef void (* GDExtensionScriptInstanceFreePropertyList2 )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionPropertyInfo * p_list , uint32_t p_count );
519
520
typedef GDExtensionBool (* GDExtensionScriptInstanceGetClassCategory )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionPropertyInfo * p_class_category );
520
521
521
522
typedef GDExtensionVariantType (* GDExtensionScriptInstanceGetPropertyType )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name , GDExtensionBool * r_is_valid );
@@ -529,7 +530,8 @@ typedef void (*GDExtensionScriptInstancePropertyStateAdd)(GDExtensionConstString
529
530
typedef void (* GDExtensionScriptInstanceGetPropertyState )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionScriptInstancePropertyStateAdd p_add_func , void * p_userdata );
530
531
531
532
typedef const GDExtensionMethodInfo * (* GDExtensionScriptInstanceGetMethodList )(GDExtensionScriptInstanceDataPtr p_instance , uint32_t * r_count );
532
- typedef void (* GDExtensionScriptInstanceFreeMethodList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionMethodInfo * p_list );
533
+ typedef void (* GDExtensionScriptInstanceFreeMethodList )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionMethodInfo * p_list ); // Deprecated. Use GDExtensionScriptInstanceFreeMethodList2 instead.
534
+ typedef void (* GDExtensionScriptInstanceFreeMethodList2 )(GDExtensionScriptInstanceDataPtr p_instance , const GDExtensionMethodInfo * p_list , uint32_t p_count );
533
535
534
536
typedef GDExtensionBool (* GDExtensionScriptInstanceHasMethod )(GDExtensionScriptInstanceDataPtr p_instance , GDExtensionConstStringNamePtr p_name );
535
537
@@ -589,7 +591,7 @@ typedef struct {
589
591
590
592
GDExtensionScriptInstanceFree free_func ;
591
593
592
- } GDExtensionScriptInstanceInfo ; // Deprecated. Use GDExtensionScriptInstanceInfo2 instead.
594
+ } GDExtensionScriptInstanceInfo ; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead.
593
595
594
596
typedef struct {
595
597
GDExtensionScriptInstanceSet set_func ;
@@ -630,7 +632,48 @@ typedef struct {
630
632
631
633
GDExtensionScriptInstanceFree free_func ;
632
634
633
- } GDExtensionScriptInstanceInfo2 ;
635
+ } GDExtensionScriptInstanceInfo2 ; // Deprecated. Use GDExtensionScriptInstanceInfo3 instead.
636
+
637
+ typedef struct {
638
+ GDExtensionScriptInstanceSet set_func ;
639
+ GDExtensionScriptInstanceGet get_func ;
640
+ GDExtensionScriptInstanceGetPropertyList get_property_list_func ;
641
+ GDExtensionScriptInstanceFreePropertyList2 free_property_list_func ;
642
+ GDExtensionScriptInstanceGetClassCategory get_class_category_func ; // Optional. Set to NULL for the default behavior.
643
+
644
+ GDExtensionScriptInstancePropertyCanRevert property_can_revert_func ;
645
+ GDExtensionScriptInstancePropertyGetRevert property_get_revert_func ;
646
+
647
+ GDExtensionScriptInstanceGetOwner get_owner_func ;
648
+ GDExtensionScriptInstanceGetPropertyState get_property_state_func ;
649
+
650
+ GDExtensionScriptInstanceGetMethodList get_method_list_func ;
651
+ GDExtensionScriptInstanceFreeMethodList2 free_method_list_func ;
652
+ GDExtensionScriptInstanceGetPropertyType get_property_type_func ;
653
+ GDExtensionScriptInstanceValidateProperty validate_property_func ;
654
+
655
+ GDExtensionScriptInstanceHasMethod has_method_func ;
656
+
657
+ GDExtensionScriptInstanceCall call_func ;
658
+ GDExtensionScriptInstanceNotification2 notification_func ;
659
+
660
+ GDExtensionScriptInstanceToString to_string_func ;
661
+
662
+ GDExtensionScriptInstanceRefCountIncremented refcount_incremented_func ;
663
+ GDExtensionScriptInstanceRefCountDecremented refcount_decremented_func ;
664
+
665
+ GDExtensionScriptInstanceGetScript get_script_func ;
666
+
667
+ GDExtensionScriptInstanceIsPlaceholder is_placeholder_func ;
668
+
669
+ GDExtensionScriptInstanceSet set_fallback_func ;
670
+ GDExtensionScriptInstanceGet get_fallback_func ;
671
+
672
+ GDExtensionScriptInstanceGetLanguage get_language_func ;
673
+
674
+ GDExtensionScriptInstanceFree free_func ;
675
+
676
+ } GDExtensionScriptInstanceInfo3 ;
634
677
635
678
/* INITIALIZATION */
636
679
@@ -2412,7 +2455,7 @@ typedef void (*GDExtensionInterfaceRefSetObject)(GDExtensionRefPtr p_ref, GDExte
2412
2455
/**
2413
2456
* @name script_instance_create
2414
2457
* @since 4.1
2415
- * @deprecated in Godot 4.2. Use `script_instance_create2 ` instead.
2458
+ * @deprecated in Godot 4.2. Use `script_instance_create3 ` instead.
2416
2459
*
2417
2460
* Creates a script instance that contains the given info and instance data.
2418
2461
*
@@ -2426,6 +2469,7 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate)
2426
2469
/**
2427
2470
* @name script_instance_create2
2428
2471
* @since 4.2
2472
+ * @deprecated in Godot 4.3. Use `script_instance_create3` instead.
2429
2473
*
2430
2474
* Creates a script instance that contains the given info and instance data.
2431
2475
*
@@ -2436,6 +2480,19 @@ typedef GDExtensionScriptInstancePtr (*GDExtensionInterfaceScriptInstanceCreate)
2436
2480
*/
2437
2481
typedef GDExtensionScriptInstancePtr (* GDExtensionInterfaceScriptInstanceCreate2 )(const GDExtensionScriptInstanceInfo2 * p_info , GDExtensionScriptInstanceDataPtr p_instance_data );
2438
2482
2483
+ /**
2484
+ * @name script_instance_create3
2485
+ * @since 4.3
2486
+ *
2487
+ * Creates a script instance that contains the given info and instance data.
2488
+ *
2489
+ * @param p_info A pointer to a GDExtensionScriptInstanceInfo3 struct.
2490
+ * @param p_instance_data A pointer to a data representing the script instance in the GDExtension. This will be passed to all the function pointers on p_info.
2491
+ *
2492
+ * @return A pointer to a ScriptInstanceExtension object.
2493
+ */
2494
+ typedef GDExtensionScriptInstancePtr (* GDExtensionInterfaceScriptInstanceCreate3 )(const GDExtensionScriptInstanceInfo3 * p_info , GDExtensionScriptInstanceDataPtr p_instance_data );
2495
+
2439
2496
/**
2440
2497
* @name placeholder_script_instance_create
2441
2498
* @since 4.2
0 commit comments