diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java index f0e61f622..076a4b2d6 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java @@ -62,7 +62,7 @@ public class Bone implements Updatable { setToSetupPose(); } - /** Copy constructor. + /** Copy constructor. Does not copy the children bones. * @param parent May be null. */ public Bone (Bone bone, Skeleton skeleton, Bone parent) { if (bone == null) throw new IllegalArgumentException("bone cannot be null."); diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java index 81a2582ce..0aeb27373 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java @@ -107,8 +107,15 @@ public class Skeleton { bones = new Array(skeleton.bones.size); for (Bone bone : skeleton.bones) { - Bone parent = bone.parent == null ? null : bones.get(bone.parent.data.index); - bones.add(new Bone(bone, this, parent)); + Bone copy; + if (bone.parent == null) + copy = new Bone(bone, this, null); + else { + Bone parent = bones.get(bone.parent.data.index); + copy = new Bone(bone, this, parent); + parent.children.add(copy); + } + bones.add(copy); } slots = new Array(skeleton.slots.size);