diff --git a/assets/plugins/plugin-9patch-0.1.4.jar b/assets/plugins/plugin-9patch-0.1.4.jar index 02f8521c..e197350a 100644 Binary files a/assets/plugins/plugin-9patch-0.1.4.jar and b/assets/plugins/plugin-9patch-0.1.4.jar differ diff --git a/assets/plugins/plugin-performance-0.1.4.jar b/assets/plugins/plugin-performance-0.1.4.jar index 8603d064..c83fed03 100644 Binary files a/assets/plugins/plugin-performance-0.1.4.jar and b/assets/plugins/plugin-performance-0.1.4.jar differ diff --git a/assets/plugins/plugin-skin-composer-0.1.4.jar b/assets/plugins/plugin-skin-composer-0.1.4.jar index 021d5c9e..dc93026f 100644 Binary files a/assets/plugins/plugin-skin-composer-0.1.4.jar and b/assets/plugins/plugin-skin-composer-0.1.4.jar differ diff --git a/assets/plugins/plugin-tiled-0.1.4.jar b/assets/plugins/plugin-tiled-0.1.4.jar index d71edcb1..9b71d7ae 100644 Binary files a/assets/plugins/plugin-tiled-0.1.4.jar and b/assets/plugins/plugin-tiled-0.1.4.jar differ diff --git a/h2d-libgdx-spine-extension b/h2d-libgdx-spine-extension index 2e3d05e2..c6e614a3 160000 --- a/h2d-libgdx-spine-extension +++ b/h2d-libgdx-spine-extension @@ -1 +1 @@ -Subproject commit 2e3d05e227e14211c62354acd2df7488ee553561 +Subproject commit c6e614a3dbfdc69f5cb1ad9ed48864b3cae2e193 diff --git a/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/view/SpineDrawable.java b/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/view/SpineDrawable.java index 70f95cfb..7d00c955 100644 --- a/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/view/SpineDrawable.java +++ b/plugin-tiled/src/main/java/games/rednblack/editor/plugin/tiled/view/SpineDrawable.java @@ -30,6 +30,10 @@ public class SpineDrawable extends BaseDrawable { this.skeleton = skeleton; AnimationStateData animationStateData = new AnimationStateData(skeleton.getData()); animationState = new AnimationState(animationStateData); + if (skeleton.getData().getDefaultSkin() == null) { + skeleton.setSkin(skeleton.getData().getSkins().get(0)); + skeleton.setSlotsToSetupPose(); + } computeBoundBox(); diff --git a/src/main/java/games/rednblack/editor/view/ui/widget/actors/SpineActor.java b/src/main/java/games/rednblack/editor/view/ui/widget/actors/SpineActor.java index 22cf8cba..776d75df 100644 --- a/src/main/java/games/rednblack/editor/view/ui/widget/actors/SpineActor.java +++ b/src/main/java/games/rednblack/editor/view/ui/widget/actors/SpineActor.java @@ -34,10 +34,11 @@ public class SpineActor extends Actor { this.renderer = new SkeletonRenderer(); this.animationName = animationName; initSkeletonData(); - initSpine(); + scaleChanged(); } private void computeBoundBox() { + skeleton.setPosition(0, 0); skeleton.updateWorldTransform(); Array drawOrder = skeleton.getDrawOrder(); @@ -79,15 +80,15 @@ public class SpineActor extends Actor { SpineDataObject spineDataObject = (SpineDataObject) irr.getExternalItemType(SpineItemType.SPINE_TYPE, animationName); skeletonJson = spineDataObject.skeletonJson; skeletonData = spineDataObject.skeletonData; - } - - private void initSpine() { - skeleton = new Skeleton(skeletonData); - skeleton.setScale(getScaleX(), getScaleY()); AnimationStateData stateData = new AnimationStateData(skeletonData); state = new AnimationState(stateData); - computeBoundBox(); + skeleton = new Skeleton(skeletonData); + setAnimation(skeletonData.getAnimations().get(0).getName()); + if (skeletonData.getDefaultSkin() == null) { + skeleton.setSkin(skeletonData.getSkins().get(0)); + skeleton.setSlotsToSetupPose(); + } } public Array getAnimations() { @@ -103,9 +104,9 @@ public class SpineActor extends Actor { } @Override - public void setScale(float scale) { - super.setScale(scale); - initSpine(); + protected void scaleChanged() { + skeleton.setScale(getScaleX(), getScaleY()); + computeBoundBox(); } @Override @@ -122,12 +123,16 @@ public class SpineActor extends Actor { super.draw(batch, parentAlpha); } + @Override + protected void positionChanged() { + skeleton.setPosition(getX() - minX, getY() - minY); + } + @Override public void act(float delta) { skeleton.updateWorldTransform(); // state.update(delta); state.apply(skeleton); - skeleton.setPosition(getX() - minX, getY() - minY); super.act(delta); } }