From f1e199b2bde0d03956168d380c9d3849792a962c Mon Sep 17 00:00:00 2001 From: badlogic Date: Tue, 30 Apr 2019 16:09:49 +0200 Subject: [PATCH] Fixed Skin#copySkin to take into account parent meshes. --- .../src/com/esotericsoftware/spine/Skin.java | 13 +++++++++++-- .../spine/attachments/MeshAttachment.java | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java index 74e7646b2..fedae4138 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java @@ -81,10 +81,19 @@ public class Skin { for (SkinEntry entry : skin.attachments.keys()) { Attachment attachment = entry.getAttachment().copy(); - if (attachment instanceof MeshAttachment) { - } setAttachment(entry.getSlotIndex(), entry.getName(), attachment); } + + for (SkinEntry entry : attachments.keys()) { + Attachment attachment = entry.getAttachment(); + if (attachment instanceof MeshAttachment) { + MeshAttachment mesh = (MeshAttachment)attachment; + if (mesh.getParentMesh() != null) { + mesh.setParentMesh((MeshAttachment)getAttachment(entry.getSlotIndex(), mesh.getParentMesh().getName())); + mesh.updateUVs(); + } + } + } } /** Returns the attachment for the specified slot index and name, or null. */ diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java index ea5e3bfa5..54ed4b410 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java @@ -278,8 +278,10 @@ public class MeshAttachment extends VertexAttachment { } copy.width = width; copy.height = height; - } else + } else { copy.setParentMesh(parentMesh); + copy.updateUVs(); + } return copy; }