Просмотр исходного кода

[spine-libgdx] Fixed Skeleton copy constructor.

NathanSweet 9 лет назад
Родитель
Сommit
fca7c478e2

+ 1 - 1
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java

@@ -62,7 +62,7 @@ public class Bone implements Updatable {
 		setToSetupPose();
 		setToSetupPose();
 	}
 	}
 
 
-	/** Copy constructor.
+	/** Copy constructor. Does not copy the children bones.
 	 * @param parent May be null. */
 	 * @param parent May be null. */
 	public Bone (Bone bone, Skeleton skeleton, Bone parent) {
 	public Bone (Bone bone, Skeleton skeleton, Bone parent) {
 		if (bone == null) throw new IllegalArgumentException("bone cannot be null.");
 		if (bone == null) throw new IllegalArgumentException("bone cannot be null.");

+ 9 - 2
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java

@@ -107,8 +107,15 @@ public class Skeleton {
 
 
 		bones = new Array(skeleton.bones.size);
 		bones = new Array(skeleton.bones.size);
 		for (Bone bone : skeleton.bones) {
 		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);
 		slots = new Array(skeleton.slots.size);