diff --git a/spine-godot/spine_godot/docs/SpineAnimation.xml b/spine-godot/spine_godot/docs/SpineAnimation.xml index 048bab53c..099008414 100644 --- a/spine-godot/spine_godot/docs/SpineAnimation.xml +++ b/spine-godot/spine_godot/docs/SpineAnimation.xml @@ -1,10 +1,10 @@ - Stores a list of timelines to animate a skeleton's pose over time. The timelines can not be modified through GDScript. + Stores a list of timelines to animate a skeleton's pose over time. - Stores a list of timelines to animate a skeleton's pose over time. The timelines can not be modified through GDScript. + Stores a list of timelines to animate a skeleton's pose over time. An animation modifies the skeleton's pose based on time, using timelines to control bone transforms, slot colors, attachment visibility, events, draw order, and more. diff --git a/spine-godot/spine_godot/docs/SpineAttachment.xml b/spine-godot/spine_godot/docs/SpineAttachment.xml index 60c46eecb..6a3b9dae8 100644 --- a/spine-godot/spine_godot/docs/SpineAttachment.xml +++ b/spine-godot/spine_godot/docs/SpineAttachment.xml @@ -1,26 +1,25 @@ - + - Represents an attachment in a Spine skeleton's skin. + The base class for attachments. - Represents an attachment in a Spine skeleton's skin. See [url]http://en.esotericsoftware.com/spine-runtime-skins[/url]. - Attachments can only be queried for their name and can not be manipulated. + The base class for attachments. Attachments are stored in skins and can be attached to slots. Attachments are reference counted and may be shared across multiple skeletons. + + See [url=http://esotericsoftware.com/spine-attachments]Attachments[/url] in the Spine User Guide. - - - - - - - + Returns the attachment's name. + + + + + + Returns a copy of this attachment. - - - + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineBone.xml b/spine-godot/spine_godot/docs/SpineBone.xml index c9230a6c1..b613bc13b 100644 --- a/spine-godot/spine_godot/docs/SpineBone.xml +++ b/spine-godot/spine_godot/docs/SpineBone.xml @@ -1,397 +1,150 @@ - + - A bone of a Spine skeleton, storing its current pose. + The current pose for a bone, before constraints are applied. - A bone of a Spine skeleton, storing its current pose. + The current pose for a bone, before constraints are applied. + A bone has a local transform which is used to compute its world transform. A bone also has an applied transform, which is a local transform that can be applied to compute the world transform. The local transform and applied transform may differ if a constraint or application code modifies the world transform after it was computed from the local transform. - The bone's world transform is relative to the skeleton's coordinate system origin. Use [code]set_global_transform()[/code] and [code]get_global_transform()[/code] to convert from and to Godot's Canvas coordinate system. + + The bone's world transform is relative to the skeleton's coordinate system origin. Use [method set_global_transform] and [method get_global_transform] to convert from and to Godot's Canvas coordinate system. - - - - + + + - Part of the world transform matrix for the X axis. If changed, [code]update_applied_transform[/code] should be called. + Transforms a point from world coordinates to the bone's local coordinates. The world coordinate space is equal to the SpineSprite coordinate space. - - + + + - The local scaleX. + Transforms a point from world coordinates to the parent bone's local coordinates. - - + + + - The local scaleY. + Transforms a point from the bone's local coordinates to world coordinates. The world coordinate space equals the coordinate space of the SpineSprite. - - + + + - The local shearX. + Transforms a point from the parent bone's coordinates to world coordinates. - + + - The local shearY. + Transforms a world rotation to a local rotation. The world coordinate space is equal to the SpineSprite coordinate space. - + + - The applied local x translation. + Transforms a local rotation to a world rotation. The world coordinate space equals the coordinate space of the SpineSprite. - - + + + - The applied local y translation. - - - - - - The applied local rotation in degrees, counter clockwise. - - - - - - Part of the world transform matrix for the Y axis. If changed, [code]update_applied_transform()[/code] should be called. - - - - - - Part of the world transform matrix for the X axis. If changed, [code]update_applied_transform()[/code] should be called. - - - - - - The immediate children of this bone. Modifications of the array have no effect. - - - - - - Part of the world transform matrix for the Y axis. If changed, [code]update_applied_transform()[/code] should be called. + Rotates the world transform the specified amount in degrees. + + After changes are made to the world transform, update_local_transform should be called on the applied pose and update_world_transform will need to be called on any child bones, recursively. - The bone's setup pose data. - - - - - - Returns the bone transform as a [code]Transform2D[/code] relative to Godot's global canvas coordinate space. Shear is not encoded in the transform. + Returns the bone's setup pose data. - The parent bone, or null if this is the root bone. + Returns the parent bone, or null if this is the root bone. - - + + - The local rotation in degrees, counter clockwise. + Returns the immediate children of this bone. Modifications of the array have no effect. - - + + - The local scaleX. + Returns the local pose for this bone. The pose contains the local transform (position, rotation, scale, shear). - - + + - The local scaleY. - - - - - - The local shearX. - - - - - - The local shearY. - - - - - - Returns the bone transform as a [code]Transform2D[/code] relative to the [code]SpineSprite[/code] node representing the skeleton. Shear is not encoded in the transform. - - - - - - The world rotation for the X axis in degrees, calculated using a and c of the transform. The rotation is relative to the [code]SpineSprite[/code]. - - - - - - The world rotation for the X axis in degrees, calculated using b and d of the transform. The rotation is relative to the [code]SpineSprite[/code]. - - - - - - The magnitude (always positive) of the world scale X, calculated using a and c. The scale is relative to the [code]SpineSprite[/code]. - - - - - - The magnitude (always positive) of the world scale X, calculated using b and d. The scale is relative to the [code]SpineSprite[/code]. - - - - - - Transforms a world rotation to a local rotation. The world coordinate system is equal to the [code]SpineSprite[/code] coordinate space. - - - - - - Transforms a world rotation to a local rotation. The world coordinate system is equal to the [code]SpineSprite[/code] coordinate space. - - - - - - The world X position. If changed, [code]update_applied_transform()[/code] should be called. The world coordinate system is equal to the [code]SpineSprite[/code] coordinate space. - - - - - - The world Y position. If changed, [code]update_applied_transform()[/code] should be called. The world coordinate system is equal to the [code]SpineSprite[/code] coordinate space. - - - - - - The local x translation. - - - - - - The local y translation. + Returns the applied pose for this bone. The applied pose contains both the local transform and the world transform. The applied transform may differ from the pose if a constraint or application code modifies the world transform after it was computed from the local transform. - Returns false when the bone has not been computed because [code]BoneData.get_skin_required()[/code] is true and the active skin does not contain this bone. - - - - - - - Transforms a point from the bone's local coordinates to world coordinates. The world coordinate space equals the coordinate space of the [code]SpineSprite[/code]. - - - - - - - Transforms a local rotation to a world rotation. The world coordinate space equals the coordinate space of the [code]SpineSprite[/code]. - - - - - - - Rotates the world transform the specified amount. - After changes are made to the world transform, [code]update_applied_transform[/code] should be called and [code]update()[/code] will need to be called on any child bones, recursively. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Returns false when the bone has not been computed because BoneData.skin_required is true and the active skin does not contain this bone. - + + Sets whether this bone is active. Inactive bones are not computed until they are active again. - + - + + + Updates this bone. This is called internally when the skeleton's world transform is computed and should typically not be called directly. The physics parameter determines how physics are applied. See [enum SpineConstant.Physics]. - + - + + Applies a world transform to this bone from a Node2D or Bone2D object. - - - + + - - - - - - - - - - - - - Sets the bone's transform to the global Godot [code]Transform2D[/code]. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sets this bone's local transform to the setup pose. + Returns the bone transform as a Transform2D relative to the SpineSprite node representing the skeleton. Shear is not encoded in the transform. - + - Sets the bone transform to the Godot [code]Transform2D[/code]. + Sets the bone transform to the Godot Transform2D relative to the SpineSprite. - + + + + Returns the bone transform as a Transform2D relative to Godot's global canvas coordinate space. Shear is not encoded in the transform. + + + - + - - - - - - - - - - - - - - - - - - - - - - - - Computes the world transform using the parent bone and this bone's local transform. - - - - - - - Transforms a point from world coordinates to the bone's local coordinates. The world coordinate space is equal to the [code]SpineSprite[/code] coordinate space. - - - - - - - Transforms a world rotation to a local rotation. The world coordinate space is equal to the [code]SpineSprite[/code] coordinate space. + Sets the bone's transform to the global Godot Transform2D. - - - + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineBoneData.xml b/spine-godot/spine_godot/docs/SpineBoneData.xml index 729200d1d..7341f6825 100644 --- a/spine-godot/spine_godot/docs/SpineBoneData.xml +++ b/spine-godot/spine_godot/docs/SpineBoneData.xml @@ -1,163 +1,93 @@ - + Stores the setup pose for a bone. - Stores the setup pose for a bone. + Stores the setup pose for a bone. The setup pose is the reference pose for the skeleton, before any animations are applied. - - - - - - The name of the bone, which is unique across all bones in the skeleton. - - - - - - The color of the bone as it was in Spine, or a default color if nonessential data was not exported. Bones are not usually rendered at runtime. - - - The index of the bone in [code]Skeleton.get_bones()[/code]. + Returns the index of the bone in Skeleton.bones. - - + + - The bone's length. + Returns the name of the bone, which is unique across all bones in the skeleton. + Returns the parent bone data. May be null for the root bone. - + - The local rotation in degrees. + Returns the bone's length. - - + + + - The local scaleX. + Sets the bone's length. - - + + - The local scaleY. - - - - - - The local shearX. - - - - - - The local shearY. - - - - - - The transform mode for how parent world transforms affect this bone. - - - - - - The local x translation. - - - - - - The local y translation. + Returns the local setup pose for this bone, containing position, rotation, scale, and shear. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Returns whether the bone is only active when a skin containing it is active. - + + Sets whether the bone is only active when a skin containing it is active. - - - + + + Returns the color of the bone as it was in Spine, or a default color if nonessential data was not exported. Bones are not usually rendered at runtime. - + - + + Sets the color of the bone. - - - + + + Returns the icon name for this bone, if any. + + + + + + Returns whether the bone is visible. + + + + + + + Sets whether the bone is visible. - - - + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineBoneLocal.xml b/spine-godot/spine_godot/docs/SpineBoneLocal.xml new file mode 100644 index 000000000..0bc0394dd --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineBoneLocal.xml @@ -0,0 +1,138 @@ + + + + Stores a bone's local pose. + + + Stores a bone's local pose, which consists of the bone's position, rotation, scale, and shear in its local coordinate space (relative to its parent). The inherit property determines how parent world transforms affect this bone. + + + + + + Returns the local x translation. + + + + + + + Sets the local x translation. + + + + + + Returns the local y translation. + + + + + + + Sets the local y translation. + + + + + + Returns the local rotation in degrees, counter clockwise. + + + + + + + Sets the local rotation in degrees, counter clockwise. + + + + + + Returns the local scaleX. + + + + + + + Sets the local scaleX. + + + + + + Returns the local scaleY. + + + + + + + Sets the local scaleY. + + + + + + Returns the local shearX. + + + + + + + Sets the local shearX. + + + + + + Returns the local shearY. + + + + + + + Sets the local shearY. + + + + + + Returns how parent world transforms affect this bone. See [enum SpineConstant.Inherit]. + + + + + + + Sets how parent world transforms affect this bone. See [enum SpineConstant.Inherit]. + + + + + + + + Sets both the local x and y translation at once. + + + + + + + + Sets both the local scaleX and scaleY at once. + + + + + + + Sets both the local scaleX and scaleY to the same value. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineBonePose.xml b/spine-godot/spine_godot/docs/SpineBonePose.xml new file mode 100644 index 000000000..d75ab6ea4 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineBonePose.xml @@ -0,0 +1,186 @@ + + + + The applied pose for a bone with constraints applied and world transform computed. + + + The applied pose for a bone. This is the bone pose with constraints applied and the world transform computed by [SpineSkeleton]'s update_world_transform method. Inherits all local transform properties from [SpineBoneLocal] and adds world transform properties and transformation methods. + + See [url=https://esotericsoftware.com/spine-runtime-skeletons#World-transforms]World transforms[/url] in the Spine Runtimes Guide. + + + + + + Returns part of the world transform matrix for the X axis. If changed, update_local_transform should be called. + + + + + + + Sets part of the world transform matrix for the X axis. If changed, update_local_transform should be called. + + + + + + Returns part of the world transform matrix for the Y axis. If changed, update_local_transform should be called. + + + + + + + Sets part of the world transform matrix for the Y axis. If changed, update_local_transform should be called. + + + + + + Returns part of the world transform matrix for the X axis. If changed, update_local_transform should be called. + + + + + + + Sets part of the world transform matrix for the X axis. If changed, update_local_transform should be called. + + + + + + Returns part of the world transform matrix for the Y axis. If changed, update_local_transform should be called. + + + + + + + Sets part of the world transform matrix for the Y axis. If changed, update_local_transform should be called. + + + + + + Returns the world X position. If changed, update_local_transform should be called. + + + + + + + Sets the world X position. If changed, update_local_transform should be called. + + + + + + Returns the world Y position. If changed, update_local_transform should be called. + + + + + + + Sets the world Y position. If changed, update_local_transform should be called. + + + + + + Returns the world rotation for the X axis, calculated using a and c. + + + + + + Returns the world rotation for the Y axis, calculated using b and d. + + + + + + Returns the magnitude (always positive) of the world scale X, calculated using a and c. + + + + + + Returns the magnitude (always positive) of the world scale Y, calculated using b and d. + + + + + + + Transforms a point from world coordinates to the bone's local coordinates. + + + + + + + Transforms a point from the bone's local coordinates to world coordinates. + + + + + + + Transforms a point from world coordinates to the parent bone's local coordinates. + + + + + + + Transforms a point from the parent bone's coordinates to world coordinates. + + + + + + + Transforms a world rotation to a local rotation. + + + + + + + Transforms a local rotation to a world rotation. + + + + + + + Rotates the world transform the specified amount in degrees. + + After changes are made to the world transform, update_local_transform should be called on this bone and any child bones, recursively. + + + + + + + Computes the world transform using the parent bone's applied pose and this pose. Child bones are not updated. + + See [url=https://esotericsoftware.com/spine-runtime-skeletons#World-transforms]World transforms[/url] in the Spine Runtimes Guide. + + + + + + + Computes the local transform values from the world transform. + + If the world transform is modified (by a constraint, rotate_world, etc) then this method should be called so the local transform matches the world transform. The local transform may be needed by other code (eg to apply another constraint). + + Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. The local transform after calling this method is equivalent to the local transform used to compute the world transform, but may not be identical. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineConstant.xml b/spine-godot/spine_godot/docs/SpineConstant.xml new file mode 100644 index 000000000..249821e34 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineConstant.xml @@ -0,0 +1,167 @@ + + + + Contains constant values and enumerations used throughout the Spine runtime. + + + The SpineConstant class provides access to various enumeration values used by the Spine runtime system in Godot. These constants are used to configure animation mixing, bone inheritance, path constraints, blend modes, and physics settings. + + + + Transitions between the setup and timeline values (the current value is not used). Before the first frame, the setup value is used. MixBlend_Setup is intended to transition to or from the setup pose, not for animations layered on top of others. + + + Transitions between the current and timeline values. Before the first frame, transitions between the current and setup values. Timelines which perform instant transitions, such as DrawOrderTimeline or AttachmentTimeline, use the setup value before the first frame. MixBlend_First is intended for the first animations applied, not for animations layered on top of others. + + + Transitions between the current and timeline values. No change is made before the first frame. MixBlend_Replace is intended for animations layered on top of others, not for the first animations applied. + + + Transitions between the current value and the current plus timeline values. No change is made before the first frame. MixBlend_Add is intended for animations layered on top of others, not for the first animations applied. Properties set by additive animations must be set manually or by another animation before applying the additive animations, else the property values will increase each time the additive animations are applied. + + + Spine animation mix direction for mixing in. + + + Spine animation mix direction for mixing out. + + + Timeline property for rotation. + + + Timeline property for X position. + + + Timeline property for Y position. + + + Timeline property for X scale. + + + Timeline property for Y scale. + + + Timeline property for X shear. + + + Timeline property for Y shear. + + + Timeline property for RGB color. + + + Timeline property for alpha transparency. + + + Timeline property for second RGB color (for two-color tinting). + + + Timeline property for attachment changes. + + + Timeline property for mesh deformation. + + + Timeline property for events. + + + Timeline property for draw order changes. + + + Timeline property for IK constraint. + + + Timeline property for transform constraint. + + + Timeline property for path constraint position. + + + Timeline property for path constraint spacing. + + + Timeline property for path constraint mix. + + + Timeline property for sequence. + + + Normal transform inheritance from parent bone. + + + Inherits only translation from parent bone. + + + Inherits transform except rotation and reflection. + + + Inherits transform except scale. + + + Inherits transform except scale and reflection. + + + Path constraint position mode using fixed values. + + + Path constraint position mode using percentage of path length. + + + Path constraint spacing based on fixed length. + + + Path constraint spacing with fixed number of bones. + + + Path constraint spacing as percentage of path length. + + + Path constraint rotation follows the path tangent. + + + Path constraint rotation chains bones together. + + + Path constraint rotation chains bones together with scale. + + + Normal alpha blending. + + + Additive blending. + + + Multiply blending. + + + Screen blending. + + + Update during the process step. + + + Update during the physics step. + + + Manual update mode, updates must be triggered explicitly. + + + Bone follows the physics simulation. + + + Bone drives the physics simulation. + + + Physics are not updated or applied. + + + Physics are reset to the current pose. + + + Physics are updated and the pose from physics is applied. + + + Physics are not updated but the pose from physics is applied. + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineEventData.xml b/spine-godot/spine_godot/docs/SpineEventData.xml new file mode 100644 index 000000000..19acad1d6 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineEventData.xml @@ -0,0 +1,95 @@ + + + + Stores the setup pose values for an Event. + + + Stores the setup pose values for an Event. Events can have various types of values associated with them including integers, floats, strings, and audio information. The event name is unique within the skeleton. + + + + + + Returns the name of the event, which is unique within the skeleton. + + + + + + Returns the integer value for this event. + + + + + + + Sets the integer value for this event. + + + + + + Returns the float value for this event. + + + + + + + Sets the float value for this event. + + + + + + Returns the string value for this event. + + + + + + + Sets the string value for this event. + + + + + + Returns the audio path for this event. + + + + + + + Sets the audio path for this event. + + + + + + Returns the volume for the audio of this event. + + + + + + + Sets the volume for the audio of this event. + + + + + + Returns the balance for the audio of this event. + + + + + + + Sets the balance for the audio of this event. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineIkConstraint.xml b/spine-godot/spine_godot/docs/SpineIkConstraint.xml index 68ed683e1..a4f96dc02 100644 --- a/spine-godot/spine_godot/docs/SpineIkConstraint.xml +++ b/spine-godot/spine_godot/docs/SpineIkConstraint.xml @@ -1,122 +1,70 @@ - + Stores the current pose for an IK constraint. Stores the current pose for an IK constraint. An IK constraint adjusts the rotation of 1 or 2 constrained bones so the tip of the last bone is as close to the target bone as possible. - See [url]http://esotericsoftware.com/spine-ik-constraints[/url] in the Spine User Guide. + + See [url=http://esotericsoftware.com/spine-ik-constraints]IK constraints[/url] in the Spine User Guide. - - - - + + + - For two bone IK, controls the bend direction of the IK bones, either 1 or -1. - - - - - - The bones that will be modified by this IK constraint. Modifying the array has no effect. - - - - - - For one bone IK, when true and the target is too close, the bone is scaled to reach it. + Updates the constraint. The IK constraint is solved by adjusting the rotation of the bones so the tip of the last bone is as close to the target as possible. - The IK constraint's setup pose data. + Returns the IK constraint's setup pose data. - - + + - A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. - For two bone IK: if the parent bone has local nonuniform scale, the child bone's local Y translation is set to 0. - - - - - - - - - - - For two bone IK, the target bone's distance from the maximum reach of the bones where rotation begins to slow. The bones will not straighten completely until the target is this far out of range. - - - - - - When true and the target is out of range, the parent bone is scaled to reach it. For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if softness is > 0, and 3) if the parent bone has local nonuniform scale, stretch is not applied. + Returns the bones that will be modified by this IK constraint. Modifying the array has no effect. - The bone that is the IK target. + Returns the bone that is the target for the IK constraint. The bones will be rotated so the tip of the last bone is as close to the target as possible. + + + + + + + Sets the bone that is the target for the IK constraint. The bones will be rotated so the tip of the last bone is as close to the target as possible. + + + + + + Returns the current pose for this IK constraint, containing mix, softness, bend direction, compress, and stretch values. + + + + + + Returns the applied pose for this IK constraint. + Returns whether this IK constraint is active. When inactive, the constraint is not applied. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + Sets whether this IK constraint is active. When inactive, the constraint is not applied. - - - + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineIkConstraintPose.xml b/spine-godot/spine_godot/docs/SpineIkConstraintPose.xml new file mode 100644 index 000000000..34c70a38e --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineIkConstraintPose.xml @@ -0,0 +1,84 @@ + + + + Stores the current pose for an IK constraint. + + + Stores the current pose values for an IK (Inverse Kinematics) constraint. IK constraints can be used to make bones follow a target, with various parameters controlling how the constraint behaves. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + For two bone IK: if the parent bone has local nonuniform scale, the child bone's local Y translation is set to 0. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + For two bone IK: if the parent bone has local nonuniform scale, the child bone's local Y translation is set to 0. + + + + + + For two bone IK, returns the target bone's distance from the maximum reach of the bones where rotation begins to slow. The bones will not straighten completely until the target is this far out of range. + + + + + + + For two bone IK, sets the target bone's distance from the maximum reach of the bones where rotation begins to slow. The bones will not straighten completely until the target is this far out of range. + + + + + + For two bone IK, returns the bend direction of the IK bones, either 1 or -1. + + + + + + + For two bone IK, sets the bend direction of the IK bones, either 1 or -1. + + + + + + For one bone IK, returns whether the bone is scaled to reach the target when the target is too close. + + + + + + + For one bone IK, sets whether the bone is scaled to reach the target when the target is too close. + + + + + + Returns whether the parent bone is scaled to reach the target when the target is out of range. + + For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if softness is > 0, and 3) if the parent bone has local nonuniform scale, stretch is not applied. + + + + + + + Sets whether the parent bone is scaled to reach the target when the target is out of range. + + For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if softness is > 0, and 3) if the parent bone has local nonuniform scale, stretch is not applied. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpinePathConstraintPose.xml b/spine-godot/spine_godot/docs/SpinePathConstraintPose.xml new file mode 100644 index 000000000..38a14ac35 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpinePathConstraintPose.xml @@ -0,0 +1,76 @@ + + + + Stores a pose for a path constraint. + + + Stores the current pose values for a path constraint. Path constraints position and rotate bones along a path defined by a slot's attachment. + + + + + + Returns the position along the path. + + + + + + + Sets the position along the path. + + + + + + Returns the spacing between bones. + + + + + + + Sets the spacing between bones. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained translation X. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained translation X. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpinePhysicsConstraint.xml b/spine-godot/spine_godot/docs/SpinePhysicsConstraint.xml new file mode 100644 index 000000000..441cf068e --- /dev/null +++ b/spine-godot/spine_godot/docs/SpinePhysicsConstraint.xml @@ -0,0 +1,76 @@ + + + + Stores the current pose for a physics constraint that applies physics to bones. + + + A physics constraint applies physics simulation to bones, allowing them to move and react based on physical forces like gravity, inertia, and momentum. + + See [url=https://esotericsoftware.com/spine-physics-constraints]Physics constraints[/url] in the Spine User Guide. + + + + + + + + Updates the physics constraint. The physics parameter determines how physics are applied. See [enum SpineConstant.Physics]. + + + + + + Returns the data for this physics constraint. + + + + + + Returns the bone constrained by this physics constraint. + + + + + + + Sets the bone constrained by this physics constraint. + + + + + + Returns the current pose for this physics constraint. + + + + + + Returns the applied pose for this physics constraint. + + + + + + + Resets the physics constraint. + + + + + + + + Translates the physics constraint so next update forces are applied as if the bone moved an additional amount in world space. + + + + + + + + + Rotates the physics constraint so next update forces are applied as if the bone rotated around the specified point in world space. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpinePhysicsConstraintData.xml b/spine-godot/spine_godot/docs/SpinePhysicsConstraintData.xml new file mode 100644 index 000000000..1074d1a70 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpinePhysicsConstraintData.xml @@ -0,0 +1,109 @@ + + + + Stores the setup pose for a PhysicsConstraint. + + + Stores the setup pose data for a physics constraint, which determines how physics simulation is configured for a bone. + + See [url=https://esotericsoftware.com/spine-physics-constraints]Physics constraints[/url] in the Spine User Guide. + + + + + + Returns the bone constrained by this physics constraint. + + + + + + Returns the X offset for the physics constraint. + + + + + + Returns the Y offset for the physics constraint. + + + + + + Returns the rotation offset for the physics constraint. + + + + + + Returns the X scale for the physics constraint. + + + + + + Returns the X shear for the physics constraint. + + + + + + Returns the limit for the physics constraint. + + + + + + Returns the step value for the physics simulation. + + + + + + Returns whether inertia is applied globally. + + + + + + Returns whether strength is applied globally. + + + + + + Returns whether damping is applied globally. + + + + + + Returns whether mass is applied globally. + + + + + + Returns whether wind is applied globally. + + + + + + Returns whether gravity is applied globally. + + + + + + Returns whether mix is applied globally. + + + + + + Returns the setup pose for this physics constraint data. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpinePhysicsConstraintPose.xml b/spine-godot/spine_godot/docs/SpinePhysicsConstraintPose.xml new file mode 100644 index 000000000..6bd5c0447 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpinePhysicsConstraintPose.xml @@ -0,0 +1,102 @@ + + + + Stores a pose for a physics constraint. + + + Stores the current pose values for a physics constraint, including physics properties like inertia, strength, damping, mass, wind, and gravity. + + + + + + Returns the inertia value for the physics constraint. + + + + + + + Sets the inertia value for the physics constraint. + + + + + + Returns the strength value for the physics constraint. + + + + + + + Sets the strength value for the physics constraint. + + + + + + Returns the damping value for the physics constraint. + + + + + + + Sets the damping value for the physics constraint. + + + + + + Returns the inverse mass value for the physics constraint. + + + + + + + Sets the inverse mass value for the physics constraint. + + + + + + Returns the wind value for the physics constraint. + + + + + + + Sets the wind value for the physics constraint. + + + + + + Returns the gravity value for the physics constraint. + + + + + + + Sets the gravity value for the physics constraint. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained poses. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained poses. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineSlider.xml b/spine-godot/spine_godot/docs/SpineSlider.xml new file mode 100644 index 000000000..b03322607 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSlider.xml @@ -0,0 +1,63 @@ + + + + A slider constraint for animating properties. + + + A slider constraint that can be used to animate various properties of bones. Sliders provide a way to control and animate bone transformations through constraint values. + + + + + + + + Updates the slider constraint. The physics parameter determines how physics are applied. See [enum SpineConstant.Physics]. + + + + + + Returns the data for this slider constraint. + + + + + + Returns the bone affected by this slider. + + + + + + + Sets the bone affected by this slider. + + + + + + Returns the current pose for this slider. + + + + + + Returns the applied pose for this slider. + + + + + + Returns whether this slider is active. + + + + + + + Sets whether this slider is active. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineSliderData.xml b/spine-godot/spine_godot/docs/SpineSliderData.xml new file mode 100644 index 000000000..350c12099 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSliderData.xml @@ -0,0 +1,88 @@ + + + + Stores the setup pose for a Slider. + + + Stores the setup pose data for a slider constraint, including the animation it references, whether it's additive, looping settings, and scale/offset values. + + + + + + Returns the animation referenced by this slider. + + + + + + Returns whether this slider uses additive blending. + + + + + + + Sets whether this slider uses additive blending. + + + + + + Returns whether this slider loops. + + + + + + + Sets whether this slider loops. + + + + + + Returns the bone data for this slider. + + + + + + + Sets the bone data for this slider. + + + + + + Returns the scale value for this slider. + + + + + + + Sets the scale value for this slider. + + + + + + Returns the offset value for this slider. + + + + + + + Sets the offset value for this slider. + + + + + + Returns the setup pose for this slider data. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineSliderPose.xml b/spine-godot/spine_godot/docs/SpineSliderPose.xml new file mode 100644 index 000000000..39369c185 --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSliderPose.xml @@ -0,0 +1,37 @@ + + + + Stores a pose for a slider. + + + Stores the current pose values for a slider constraint, including the time position and mix value. + + + + + + Returns the time position for this slider. + + + + + + + Sets the time position for this slider. + + + + + + Returns the mix value for this slider. + + + + + + + Sets the mix value for this slider. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineSlot.xml b/spine-godot/spine_godot/docs/SpineSlot.xml index 076f913ce..5847d8094 100644 --- a/spine-godot/spine_godot/docs/SpineSlot.xml +++ b/spine-godot/spine_godot/docs/SpineSlot.xml @@ -1,102 +1,121 @@ - + Stores a slot's current pose. - Stores a slot's current pose. Slots organize attachments for {@link Skeleton#drawOrder} purposes and provide a place to store state for an attachment. State cannot be stored in an attachment itself because attachments are stateless and may be shared across multiple skeletons. + Stores a slot's current pose. Slots organize attachments for skeleton draw order purposes and provide a place to store state for an attachment. State cannot be stored in an attachment itself because attachments are stateless and may be shared across multiple skeletons. - - - - - - The current attachment for the slot, or null if the slot has no attachment. - - - - + + + Returns the slot's setup pose data. - The bone this slot belongs to. + Returns the bone this slot belongs to. + + + + + + Returns the current pose for this slot, containing color, attachment, and deform data. - The color used to tint the slot's attachment. If {@link #getDarkColor()} is set, this is used as the light color for two color tinting. Modifying the color has no effect. + Returns the color used to tint the slot's attachment. If dark color is set, this is used as the light color for two color tinting. + + + + + + + Sets the color used to tint the slot's attachment. If dark color is set, this is used as the light color for two color tinting. - The dark color used to tint the slot's attachment for two color tinting, or null if two color tinting is not used. The dark color's alpha is not used. Modifying the color has no effect. + Returns the dark color used to tint the slot's attachment for two color tinting, or null if two color tinting is not used. The dark color's alpha is not used. - - + + + - The slot's setup pose data. - - - - - - Values to deform the slot's attachment. For an unweighted mesh, the entries are local positions for each vertex. For a weighted mesh, the entries are an offset for each vertex which will be added to the mesh's local vertex positions. Modifying the deform has no effect. - - - - - - The index of the texture region to display when the slot's attachment has a sequence. -1 represents the sequence's setup index. + Sets the dark color used to tint the slot's attachment for two color tinting. The dark color's alpha is not used. - Whether the slot has a dark color. + Returns whether the slot has a dark color for two color tinting. + + + + + + + Sets whether the slot has a dark color for two color tinting. + + + + + + Returns the current attachment for the slot, or null if the slot has no attachment. - + - Sets the slot's attachment and, if the attachment changed, resets the sequence index and clears the deform. The deform is not cleared if the old attachment has the same timeline as the specified attachment + Sets the slot's attachment and, if the attachment changed, resets sequence_index and clears the deform. The deform is not cleared if the old attachment has the same timeline attachment as the specified attachment. - - - - - - - - - - - - - - - - - - - - - + + + Returns the index of the texture region to display when the slot's attachment has a Sequence. -1 represents the setup index. - + + Sets the index of the texture region to display when the slot's attachment has a Sequence. -1 represents the setup index. + + + + + + Returns the attachment state for this slot. + + + + + + + Sets the attachment state for this slot. + + + + + + Returns values to deform the slot's attachment. For an unweighted mesh, the entries are local positions for each vertex. For a weighted mesh, the entries are an offset for each vertex which will be added to the mesh's local vertex positions. + + See VertexAttachment.computeWorldVertices and DeformTimeline. + + + + + + + Sets values to deform the slot's attachment. For an unweighted mesh, the entries are local positions for each vertex. For a weighted mesh, the entries are an offset for each vertex which will be added to the mesh's local vertex positions. @@ -106,6 +125,4 @@ - - - + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineSlotData.xml b/spine-godot/spine_godot/docs/SpineSlotData.xml index e00d811be..142ea6b97 100644 --- a/spine-godot/spine_godot/docs/SpineSlotData.xml +++ b/spine-godot/spine_godot/docs/SpineSlotData.xml @@ -42,7 +42,7 @@ - The index of the slot in [code]Skeleton.get_slots()[/code]. + Returns the index of the slot in Skeleton.slots. diff --git a/spine-godot/spine_godot/docs/SpineSlotPose.xml b/spine-godot/spine_godot/docs/SpineSlotPose.xml new file mode 100644 index 000000000..6edcfb57d --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineSlotPose.xml @@ -0,0 +1,89 @@ + + + + Stores a pose for a slot. + + + Stores the current pose for a slot, including color tinting, attachment, and deformation values. + + + + + + Returns the color used to tint the slot's attachment. If dark color is set, this is used as the light color for two color tinting. + + + + + + + Sets the color used to tint the slot's attachment. If dark color is set, this is used as the light color for two color tinting. + + + + + + Returns the dark color used to tint the slot's attachment for two color tinting. The dark color's alpha is not used. + + + + + + + Sets the dark color used to tint the slot's attachment for two color tinting. The dark color's alpha is not used. + + + + + + Returns true if this slot has a dark color. + + + + + + + Sets whether this slot has a dark color. + + + + + + Returns the current attachment for the slot, or null if the slot has no attachment. + + + + + + + Sets the slot's attachment and, if the attachment changed, resets sequence_index and clears the deform. The deform is not cleared if the old attachment has the same timeline attachment as the specified attachment. + + + + + + Returns the index of the texture region to display when the slot's attachment has a Sequence. -1 represents the setup index. + + + + + + + Sets the index of the texture region to display when the slot's attachment has a Sequence. -1 represents the setup index. + + + + + + Returns values to deform the slot's attachment. For an unweighted mesh, the entries are local positions for each vertex. For a weighted mesh, the entries are an offset for each vertex which will be added to the mesh's local vertex positions. + + + + + + + Sets values to deform the slot's attachment. For an unweighted mesh, the entries are local positions for each vertex. For a weighted mesh, the entries are an offset for each vertex which will be added to the mesh's local vertex positions. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/SpineTransformConstraintPose.xml b/spine-godot/spine_godot/docs/SpineTransformConstraintPose.xml new file mode 100644 index 000000000..2177afded --- /dev/null +++ b/spine-godot/spine_godot/docs/SpineTransformConstraintPose.xml @@ -0,0 +1,89 @@ + + + + Stores a pose for a transform constraint. + + + Stores the current pose values for a transform constraint. Transform constraints adjust bone transforms to match a target bone's transform, with various mix values controlling how much each transform component is affected. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained translation X. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained translation X. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained scale X. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained scale X. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained scale Y. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained scale Y. + + + + + + Returns a percentage (0-1) that controls the mix between the constrained and unconstrained shear Y. + + + + + + + Sets a percentage (0-1) that controls the mix between the constrained and unconstrained shear Y. + + + + \ No newline at end of file diff --git a/spine-godot/spine_godot/docs/docs.md b/spine-godot/spine_godot/docs/docs.md new file mode 100644 index 000000000..9713967e0 --- /dev/null +++ b/spine-godot/spine_godot/docs/docs.md @@ -0,0 +1,215 @@ +# Spine Godot Documentation Update Guide + +## Overview +This document serves as a reusable prompt for updating the Spine Godot documentation. The documentation consists of XML files in `spine_godot/docs/` that document the user-facing API classes exposed to GDScript. + +## Key Rule +**Any `SpineXXX.h` class that contains a `_bind_methods()` declaration must be documented**, as this indicates the class is exposed to GDScript users. + +## Instructions for Documentation Update + +**IMPORTANT: DO NOT USE TASK AGENTS FOR THIS WORK!** You must work on documentation sequentially, one class at a time, checking off completed items as you go. + +### Step 1: Analyze Current State +Before updating documentation, you must: +1. Run: `grep -l "_bind_methods" spine_godot/Spine*.h | sort` to find all classes that need documentation +2. List all existing `.xml` files in `spine_godot/docs/` +3. Compare the two lists to identify missing documentation +4. Update the checklist below based on current state + +### Step 2: Documentation Sources +For each class that needs documentation: +1. **Primary source**: The Godot wrapper header in `spine_godot/SpineXXX.h` - check the `_bind_methods()` implementation in the corresponding `.cpp` file to see what's exposed +2. **CRITICAL source for documentation text**: The corresponding spine-cpp header in `spine_godot/spine-cpp/include/spine/*.h` - **COPY AND ADAPT THE DOCUMENTATION FROM HERE** +3. **Implementation details**: The corresponding `.cpp` file if needed for understanding behavior + +### Step 3: Update Process (WORK SEQUENTIALLY) +For each class in the checklist, working one at a time: +1. Read the wrapper's `_bind_methods()` to identify all exposed methods, properties, signals, and constants +2. **READ THE SPINE-CPP HEADER FILE AND COPY THE DOCUMENTATION COMMENTS** - Look for: + - Class-level documentation (usually after `class ClassName`) + - Method documentation (usually comments above or near methods) + - Member variable documentation (inline comments or above declarations) +3. **ADAPT the spine-cpp documentation to GDScript**: + - Convert C++ terminology to GDScript terminology + - Adjust examples to use GDScript syntax + - Keep the technical accuracy and detail from the original documentation +4. For Godot-specific additions (signals, properties not in spine-cpp), document based on implementation +5. Create or update the XML documentation following Godot's documentation format +6. Ensure all bound methods, properties, signals, and enum constants are documented +7. **Check off the item in the checklist after completing its documentation** + +### CRITICAL RULE FOR DOCUMENTATION +**DO NOT WRITE GENERIC OR VAGUE DOCUMENTATION!** You must: +- Copy the actual documentation from spine-cpp headers +- Preserve technical details about what each method/property does +- Explain the purpose and behavior as documented in spine-cpp +- Only write your own documentation for Godot-specific features not in spine-cpp + +## Documentation Checklist + +**Instructions**: Update this checklist every time before processing documentation updates. Check the box [x] when documentation is complete and up-to-date. + +### Classes with Existing Documentation +Based on files in `spine_godot/docs/`: +- [ ] **SpineAnimation** - `spine_godot/SpineAnimation.h` → `spine-cpp/include/spine/Animation.h` +- [ ] **SpineAnimationState** - `spine_godot/SpineAnimationState.h` → `spine-cpp/include/spine/AnimationState.h` +- [ ] **SpineAnimationTrack** - `spine_godot/SpineAnimationTrack.h` → (Godot wrapper specific) +- [ ] **SpineAtlasResource** - `spine_godot/SpineAtlasResource.h` → `spine-cpp/include/spine/Atlas.h` +- [ ] **SpineAttachment** - `spine_godot/SpineAttachment.h` → `spine-cpp/include/spine/Attachment.h` +- [ ] **SpineBone** - `spine_godot/SpineBone.h` → `spine-cpp/include/spine/Bone.h` +- [ ] **SpineBoneData** - `spine_godot/SpineBoneData.h` → `spine-cpp/include/spine/BoneData.h` +- [ ] **SpineBoneNode** - `spine_godot/SpineBoneNode.h` → (Godot node wrapper) +- [ ] **SpineConstraintData** - `spine_godot/SpineConstraintData.h` → `spine-cpp/include/spine/ConstraintData.h` +- [ ] **SpineEvent** - `spine_godot/SpineEvent.h` → `spine-cpp/include/spine/Event.h` +- [ ] **SpineIkConstraint** - `spine_godot/SpineIkConstraint.h` → `spine-cpp/include/spine/IkConstraint.h` +- [ ] **SpineIkConstraintData** - `spine_godot/SpineIkConstraintData.h` → `spine-cpp/include/spine/IkConstraintData.h` +- [ ] **SpinePathConstraint** - `spine_godot/SpinePathConstraint.h` → `spine-cpp/include/spine/PathConstraint.h` +- [ ] **SpinePathConstraintData** - `spine_godot/SpinePathConstraintData.h` → `spine-cpp/include/spine/PathConstraintData.h` +- [ ] **SpineSkeleton** - `spine_godot/SpineSkeleton.h` → `spine-cpp/include/spine/Skeleton.h` +- [ ] **SpineSkeletonDataResource** - `spine_godot/SpineSkeletonDataResource.h` → `spine-cpp/include/spine/SkeletonData.h` +- [ ] **SpineSkeletonFileResource** - `spine_godot/SpineSkeletonFileResource.h` → (Godot resource loader) +- [ ] **SpineSkin** - `spine_godot/SpineSkin.h` → `spine-cpp/include/spine/Skin.h` +- [ ] **SpineSlot** - `spine_godot/SpineSlot.h` → `spine-cpp/include/spine/Slot.h` +- [ ] **SpineSlotData** - `spine_godot/SpineSlotData.h` → `spine-cpp/include/spine/SlotData.h` +- [ ] **SpineSlotNode** - `spine_godot/SpineSlotNode.h` → (Godot node wrapper) +- [ ] **SpineSprite** - `spine_godot/SpineSprite.h` → (Main Godot node for Spine animations) +- [ ] **SpineTimeline** - `spine_godot/SpineTimeline.h` → `spine-cpp/include/spine/Timeline.h` +- [ ] **SpineTrackEntry** - `spine_godot/SpineTrackEntry.h` → (Part of AnimationState) +- [ ] **SpineTransformConstraint** - `spine_godot/SpineTransformConstraint.h` → `spine-cpp/include/spine/TransformConstraint.h` +- [ ] **SpineTransformConstraintData** - `spine_godot/SpineTransformConstraintData.h` → `spine-cpp/include/spine/TransformConstraintData.h` + +### Classes Missing Documentation (Have _bind_methods but no .xml file) +These classes have `_bind_methods()` in their headers but lack documentation: + +#### Data Classes +- [ ] **SpineEventData** - `spine_godot/SpineEventData.h` → `spine-cpp/include/spine/EventData.h` + - Setup pose data for events + +#### Physics Classes (New in 4.x) +- [ ] **SpinePhysicsConstraint** - `spine_godot/SpinePhysicsConstraint.h` → `spine-cpp/include/spine/PhysicsConstraint.h` + - Runtime physics constraint +- [ ] **SpinePhysicsConstraintData** - `spine_godot/SpinePhysicsConstraintData.h` → `spine-cpp/include/spine/PhysicsConstraintData.h` + - Setup data for physics constraints +- [ ] **SpinePhysicsConstraintPose** - `spine_godot/SpinePhysicsConstraintPose.h` → `spine-cpp/include/spine/PhysicsConstraintPose.h` + - Physics constraint pose state + +#### Slider Classes (New in 4.x) +- [ ] **SpineSlider** - `spine_godot/SpineSlider.h` → `spine-cpp/include/spine/Slider.h` + - Runtime slider for property animation +- [ ] **SpineSliderData** - `spine_godot/SpineSliderData.h` → `spine-cpp/include/spine/SliderData.h` + - Setup data for sliders +- [ ] **SpineSliderPose** - `spine_godot/SpineSliderPose.h` → `spine-cpp/include/spine/SliderPose.h` + - Slider pose state + +#### Pose Classes +- [x] **SpineBoneLocal** - `spine_godot/SpineBoneLocal.h` → `spine-cpp/include/spine/BoneLocal.h` + - Local bone transform data +- [x] **SpineBonePose** - `spine_godot/SpineBonePose.h` → `spine-cpp/include/spine/BonePose.h` + - Bone pose state +- [ ] **SpineIkConstraintPose** - `spine_godot/SpineIkConstraintPose.h` → `spine-cpp/include/spine/IkConstraintPose.h` + - IK constraint pose state +- [ ] **SpinePathConstraintPose** - `spine_godot/SpinePathConstraintPose.h` → `spine-cpp/include/spine/PathConstraintPose.h` + - Path constraint pose state +- [ ] **SpineSlotPose** - `spine_godot/SpineSlotPose.h` → `spine-cpp/include/spine/SlotPose.h` + - Slot pose state +- [ ] **SpineTransformConstraintPose** - `spine_godot/SpineTransformConstraintPose.h` → `spine-cpp/include/spine/TransformConstraintPose.h` + - Transform constraint pose state + +#### Constants/Enums Class +- [ ] **SpineConstant** - `spine_godot/SpineConstant.h` → (Godot-specific constants) + - Exposes Spine enums and constants to GDScript (MixBlend, MixDirection, Property, etc.) + +### Classes to Skip (Internal/Editor Only) +These have `_bind_methods()` but should NOT have user-facing documentation: +- **SpineCommon** - Internal base classes and utilities +- **SpineEditorPlugin** - Editor-only functionality + +## Documentation Template + +When creating new documentation files, use this template: + +```xml + + + + One-line description of the class purpose. + + + Detailed description of the class. + Include usage context and relationship to other Spine classes. + For wrapper classes, explain what Spine runtime feature this exposes. + + + + + + + Method description. Check _bind_methods() for exact signature. + + + + + + Property description. Must match ADD_PROPERTY in _bind_methods(). + + + + + + + Signal description. Must match ADD_SIGNAL in _bind_methods(). + + + + + + Constant description. Must match BIND_ENUM_CONSTANT in _bind_methods(). + + + +``` + +## Validation Steps + +After updating documentation: +1. Verify every method in `_bind_methods()` has corresponding documentation +2. Check that all `ADD_PROPERTY` calls have corresponding member documentation +3. Verify all `ADD_SIGNAL` calls have corresponding signal documentation +4. Ensure all `BIND_ENUM_CONSTANT` calls have corresponding constant documentation +5. Test that property setters/getters match the actual implementation +6. Validate that examples (if provided) are valid GDScript code + +## Important Notes + +### Identifying What to Document +- Run `grep -l "_bind_methods" spine_godot/Spine*.h` to get the definitive list +- The presence of `_bind_methods()` is the key indicator that a class needs documentation +- Even if a class seems internal, if it has `_bind_methods()` it's exposed to users + +### Class Categories +1. **Core Runtime Classes**: SpineSkeleton, SpineAnimation, SpineBone, etc. +2. **Data Classes**: Classes ending in "Data" that hold setup/configuration +3. **Pose Classes**: Classes ending in "Pose" that represent runtime state +4. **Constraint Classes**: IK, Path, Transform, Physics constraints +5. **Resource Classes**: Atlas, SkeletonData, SkeletonFile resources +6. **Node Classes**: SpineSprite, SpineBoneNode, SpineSlotNode (Godot scene nodes) +7. **Constants Class**: SpineConstant (enum definitions) + +### Version Considerations +- Physics constraints and sliders are new in Spine 4.x +- Some features may not be available in all Spine versions +- Documentation should note version requirements where applicable + +## Running the Documentation Update + +To use this guide: +1. Run `grep -l "_bind_methods" spine_godot/Spine*.h | sort` to get current list +2. Compare with existing .xml files in `spine_godot/docs/` +3. Update this checklist based on findings +4. For each unchecked item, create or update the XML documentation +5. Focus on the `_bind_methods()` implementation to ensure accuracy +6. Mark items as complete when documentation is finished +7. Commit with message indicating which classes were documented + +Remember: The presence of `_bind_methods()` is the definitive indicator that a class needs documentation. \ No newline at end of file