Merge branch '4.1' into 4.2-beta

This commit is contained in:
Mario Zechner 2022-09-03 12:53:02 +02:00
commit 14547392bc
4 changed files with 15 additions and 7 deletions

View File

@ -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;

View File

@ -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) {

View File

@ -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));

View File

@ -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;