From e83b9c1714e780fa80d416aa395cda185ad4cafb Mon Sep 17 00:00:00 2001 From: Jordan Schidlowsky <323868+jordo@users.noreply.github.com> Date: Tue, 29 Nov 2022 02:23:15 -0600 Subject: [PATCH 1/4] fix incorrect ordering issue when applying custom materials to slot nodes (#2205) --- spine-godot/spine_godot/SpineSprite.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-godot/spine_godot/SpineSprite.cpp b/spine-godot/spine_godot/SpineSprite.cpp index 9cbc69923..286d6e1da 100644 --- a/spine-godot/spine_godot/SpineSprite.cpp +++ b/spine-godot/spine_godot/SpineSprite.cpp @@ -621,7 +621,7 @@ void SpineSprite::update_meshes(Ref skeleton_ref) { Ref custom_material; // See if we have a slot node for this slot with a custom material - auto &nodes = slot_nodes[i]; + auto &nodes = slot_nodes[slot->getData().getIndex()]; if (nodes.size() > 0) { auto slot_node = nodes[0]; if (slot_node) { From e545a113154b9815b1d85f1c4bae53c084acdbc1 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Tue, 29 Nov 2022 09:32:21 +0100 Subject: [PATCH 2/4] [godot] Update scenes with more default data. --- .../animation-state-listeners.tscn | 1 + spine-godot/example/examples/04-simple-input/simple-input.tscn | 1 + .../example/examples/05-mouse-following/mouse-following.tscn | 1 + .../example/examples/06-bone-following/bone-following.tscn | 1 + spine-godot/example/examples/07-slot-node/slot-node.tscn | 3 +++ .../example/examples/08-animation-player/animation-player.tscn | 2 ++ .../example/examples/09-custom-material/custom-material.tscn | 1 + spine-godot/example/examples/10-2d-lighting/2d-lighting.tscn | 1 + 8 files changed, 11 insertions(+) diff --git a/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.tscn b/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.tscn index c72344957..092209653 100644 --- a/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.tscn +++ b/spine-godot/example/examples/02-animation-state-listeners/animation-state-listeners.tscn @@ -11,6 +11,7 @@ script = ExtResource( 1 ) position = Vector2( 473, 487 ) scale = Vector2( 0.575051, 0.575051 ) skeleton_data_res = ExtResource( 2 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 diff --git a/spine-godot/example/examples/04-simple-input/simple-input.tscn b/spine-godot/example/examples/04-simple-input/simple-input.tscn index d7a3067f7..2e983a61b 100644 --- a/spine-godot/example/examples/04-simple-input/simple-input.tscn +++ b/spine-godot/example/examples/04-simple-input/simple-input.tscn @@ -9,6 +9,7 @@ position = Vector2( 501.503, 472.035 ) scale = Vector2( 0.518624, 0.518624 ) skeleton_data_res = ExtResource( 1 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 diff --git a/spine-godot/example/examples/05-mouse-following/mouse-following.tscn b/spine-godot/example/examples/05-mouse-following/mouse-following.tscn index 7592d35cc..c1e1089e6 100644 --- a/spine-godot/example/examples/05-mouse-following/mouse-following.tscn +++ b/spine-godot/example/examples/05-mouse-following/mouse-following.tscn @@ -10,6 +10,7 @@ script = ExtResource( 1 ) position = Vector2( 481, 457 ) scale = Vector2( 0.5, 0.5 ) skeleton_data_res = ExtResource( 2 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 diff --git a/spine-godot/example/examples/06-bone-following/bone-following.tscn b/spine-godot/example/examples/06-bone-following/bone-following.tscn index c579984d5..fd4eb6d81 100644 --- a/spine-godot/example/examples/06-bone-following/bone-following.tscn +++ b/spine-godot/example/examples/06-bone-following/bone-following.tscn @@ -11,6 +11,7 @@ script = ExtResource( 2 ) position = Vector2( 478, 483 ) scale = Vector2( 0.58461, 0.58461 ) skeleton_data_res = ExtResource( 1 ) +preview_skin = "Default" preview_animation = "" preview_frame = false preview_time = 0.0 diff --git a/spine-godot/example/examples/07-slot-node/slot-node.tscn b/spine-godot/example/examples/07-slot-node/slot-node.tscn index b3274f491..0c681842a 100644 --- a/spine-godot/example/examples/07-slot-node/slot-node.tscn +++ b/spine-godot/example/examples/07-slot-node/slot-node.tscn @@ -12,6 +12,7 @@ script = ExtResource( 1 ) position = Vector2( 474, 506 ) scale = Vector2( 0.560712, 0.560712 ) skeleton_data_res = ExtResource( 2 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 @@ -27,6 +28,7 @@ slot_name = "gun" position = Vector2( 84.6909, -67.9174 ) scale = Vector2( 0.193472, 0.193472 ) skeleton_data_res = ExtResource( 3 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 @@ -54,6 +56,7 @@ slot_name = "front-fist" position = Vector2( -2.64624, -10.8111 ) scale = Vector2( 0.193389, 0.193389 ) skeleton_data_res = ExtResource( 2 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 diff --git a/spine-godot/example/examples/08-animation-player/animation-player.tscn b/spine-godot/example/examples/08-animation-player/animation-player.tscn index 191f8e992..610bc282f 100644 --- a/spine-godot/example/examples/08-animation-player/animation-player.tscn +++ b/spine-godot/example/examples/08-animation-player/animation-player.tscn @@ -1850,6 +1850,7 @@ script = ExtResource( 2 ) position = Vector2( 72.0001, 520 ) scale = Vector2( 0.323942, 0.323942 ) skeleton_data_res = ExtResource( 1 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 @@ -1919,6 +1920,7 @@ anims/walk_looped = SubResource( 129 ) position = Vector2( 1284, 520 ) scale = Vector2( -0.328761, 0.328761 ) skeleton_data_res = ExtResource( 3 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 diff --git a/spine-godot/example/examples/09-custom-material/custom-material.tscn b/spine-godot/example/examples/09-custom-material/custom-material.tscn index 9d3462726..4ee43c0d6 100644 --- a/spine-godot/example/examples/09-custom-material/custom-material.tscn +++ b/spine-godot/example/examples/09-custom-material/custom-material.tscn @@ -31,6 +31,7 @@ position = Vector2( 501, 507 ) scale = Vector2( 0.546374, 0.546373 ) skeleton_data_res = ExtResource( 1 ) normal_material = SubResource( 2 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 diff --git a/spine-godot/example/examples/10-2d-lighting/2d-lighting.tscn b/spine-godot/example/examples/10-2d-lighting/2d-lighting.tscn index 8e6161b01..7c4bf808d 100644 --- a/spine-godot/example/examples/10-2d-lighting/2d-lighting.tscn +++ b/spine-godot/example/examples/10-2d-lighting/2d-lighting.tscn @@ -11,6 +11,7 @@ script = ExtResource( 3 ) position = Vector2( 576, 506 ) scale = Vector2( 0.458967, 0.458967 ) skeleton_data_res = ExtResource( 1 ) +preview_skin = "Default" preview_animation = "-- Empty --" preview_frame = false preview_time = 0.0 From a7a2d844e12c0c79cad8df4be7e2929dfcc64821 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Tue, 29 Nov 2022 09:46:52 +0100 Subject: [PATCH 3/4] [godot] Use our .clang-format. --- .gitignore | 3 ++- spine-godot/build/setup.sh | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index bf1a1ee8f..57335b326 100644 --- a/.gitignore +++ b/.gitignore @@ -177,4 +177,5 @@ spine-cocos2dx/example/build-macos spine-godot/logs !spine-godot/build spine-ts/spine-ts.zip -*.d \ No newline at end of file +*.d +spine-godot/.clang-format diff --git a/spine-godot/build/setup.sh b/spine-godot/build/setup.sh index 262219c17..9e85a8532 100755 --- a/spine-godot/build/setup.sh +++ b/spine-godot/build/setup.sh @@ -23,6 +23,7 @@ git clone --depth 1 https://github.com/godotengine/godot.git -b $branch if [ $dev = "true" ]; then cp -r .idea godot cp build/custom.py godot + cp ../formatters/.clang-format . rm -rf example/.import rm -rf example/.godot From 0a14457f36d075d9d8085328b930f090496e23bc Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Tue, 29 Nov 2022 09:47:45 +0100 Subject: [PATCH 4/4] [godot] Apply light mask of sprite to mesh instances, closes #2197. --- spine-godot/spine_godot/SpineSprite.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/spine-godot/spine_godot/SpineSprite.cpp b/spine-godot/spine_godot/SpineSprite.cpp index 286d6e1da..05a88c99a 100644 --- a/spine-godot/spine_godot/SpineSprite.cpp +++ b/spine-godot/spine_godot/SpineSprite.cpp @@ -536,6 +536,7 @@ void SpineSprite::update_meshes(Ref skeleton_ref) { spine::Slot *slot = skeleton->getDrawOrder()[i]; spine::Attachment *attachment = slot->getAttachment(); MeshInstance2D *mesh_instance = mesh_instances[i]; + mesh_instance->set_light_mask(get_light_mask()); clear_mesh_instance(mesh_instance); if (!attachment) { skeleton_clipper->clipEnd(*slot);