Bläddra i källkod

[godot] Fix compilation for latest 4.0 master commit.

Mario Zechner 3 år sedan
förälder
incheckning
933ccbba62

+ 4 - 4
spine-godot/spine_godot/SpineBone.cpp

@@ -410,7 +410,7 @@ void SpineBone::set_active(bool v) {
 Transform2D SpineBone::get_transform() {
 	SPINE_CHECK(get_spine_object(), Transform2D())
 	Transform2D transform;
-	transform.rotate(Math::deg2rad(get_rotation()));
+	transform.rotate(spine::MathUtil::Deg_Rad * get_rotation());
 	transform.scale(Size2(get_scale_x(), get_scale_y()));
 	transform.set_origin(Vector2(get_x(), get_y()));
 	return transform;
@@ -419,7 +419,7 @@ Transform2D SpineBone::get_transform() {
 void SpineBone::set_transform(Transform2D transform) {
 	SPINE_CHECK(get_spine_object(), )
 	Vector2 position = transform.get_origin();
-	float rotation = Math::rad2deg(transform.get_rotation());
+	float rotation = spine::MathUtil::Rad_Deg * transform.get_rotation();
 	Vector2 scale = transform.get_scale();
 
 	set_x(position.x);
@@ -436,7 +436,7 @@ Transform2D SpineBone::get_global_transform() {
 	if (!get_spine_owner()) return get_transform();
 	if (!get_spine_owner()->is_visible_in_tree()) return get_transform();
 	Transform2D local;
-	local.rotate(Math::deg2rad(get_world_rotation_x()));
+	local.rotate(spine::MathUtil::Deg_Rad * get_world_rotation_x());
 	local.scale(Vector2(get_world_scale_x(), get_world_scale_y()));
 	local.set_origin(Vector2(get_world_x(), get_world_y()));
 	return get_spine_owner()->get_global_transform() * local;
@@ -452,7 +452,7 @@ void SpineBone::set_global_transform(Transform2D transform) {
 	Transform2D inverse_sprite_transform = get_spine_owner()->get_global_transform().affine_inverse();
 	transform = inverse_sprite_transform * transform;
 	Vector2 position = transform.get_origin();
-	float rotation = Math::rad2deg(transform.get_rotation());
+	float rotation = spine::MathUtil::Rad_Deg * transform.get_rotation();
 	Vector2 scale = transform.get_scale();
 	Vector2 local_position = position;
 	float local_rotation = bone->worldToLocalRotation(rotation) - 180;

+ 4 - 0
spine-godot/spine_godot/SpineBoneNode.cpp

@@ -141,7 +141,11 @@ bool SpineBoneNode::_set(const StringName &property, const Variant &value) {
 void SpineBoneNode::on_world_transforms_changed(const Variant &_sprite) {
 	SpineSprite *sprite = cast_to<SpineSprite>(_sprite.operator Object *());
 	update_transform(sprite);
+#if VERSION_MAJOR > 3
+	queue_redraw();
+#else
 	update();
+#endif
 }
 
 void SpineBoneNode::update_transform(SpineSprite *sprite) {

+ 1 - 1
spine-godot/spine_godot/SpineEditorPlugin.cpp

@@ -253,7 +253,7 @@ void SpineEditorPropertyAnimationMix::_bind_methods() {
 void SpineEditorPropertyAnimationMix::data_changed(const String &property, const Variant &value, const String &name, bool changing) {
 	auto mix = Object::cast_to<SpineAnimationMix>(get_edited_object()->get(get_edited_property()));
 
-	UndoRedo *undo_redo = EditorNode::get_undo_redo();
+	auto undo_redo = EditorNode::get_undo_redo();
 	undo_redo->create_action("Set mix property " + property);
 	undo_redo->add_do_property(mix, property, value);
 	undo_redo->add_undo_property(mix, property, mix->get(property));

+ 6 - 2
spine-godot/spine_godot/SpineSprite.cpp

@@ -483,7 +483,11 @@ void SpineSprite::update_skeleton(float delta) {
 	if (modified_bones) skeleton->update_world_transform();
 	sort_slot_nodes();
 	update_meshes(skeleton);
+#if VERSION_MAJOR > 3
+	queue_redraw();
+#else
 	update();
+#endif
 }
 
 static void clear_mesh_instance(MeshInstance2D *mesh_instance) {
@@ -794,7 +798,7 @@ void SpineSprite::draw() {
 			scratch_points.set(2, Vector2(bone_length, 0));
 			scratch_points.set(3, Vector2(0, -debug_bones_thickness));
 			scratch_points.set(4, Vector2(-debug_bones_thickness, 0));
-			Transform2D bone_transform(Math::deg2rad(bone->getWorldRotationX()), Vector2(bone->getWorldX(), bone->getWorldY()));
+			Transform2D bone_transform(spine::MathUtil::Deg_Rad * bone->getWorldRotationX(), Vector2(bone->getWorldX(), bone->getWorldY()));
 			bone_transform.scale_basis(Vector2(bone->getWorldScaleX(), bone->getWorldScaleY()));
 			auto mouse_local_position = bone_transform.affine_inverse().xform(mouse_position);
 			if (GEOMETRY2D::is_point_in_polygon(mouse_local_position, scratch_points)) {
@@ -858,7 +862,7 @@ void SpineSprite::draw() {
 }
 
 void SpineSprite::draw_bone(spine::Bone *bone, const Color &color) {
-	draw_set_transform(Vector2(bone->getWorldX(), bone->getWorldY()), Math::deg2rad(bone->getWorldRotationX()), Vector2(bone->getWorldScaleX(), bone->getWorldScaleY()));
+	draw_set_transform(Vector2(bone->getWorldX(), bone->getWorldY()), spine::MathUtil::Deg_Rad * bone->getWorldRotationX(), Vector2(bone->getWorldScaleX(), bone->getWorldScaleY()));
 	float bone_length = bone->getData().getLength();
 	if (bone_length == 0) bone_length = debug_bones_thickness * 2;
 	Vector<Vector2> points;