mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 07:14:55 +08:00
Fixed missing inherit scale/rotation.
This commit is contained in:
parent
4d9c3d5ec4
commit
8e9595f496
@ -131,6 +131,8 @@ public class SkeletonBinary {
|
||||
boneData.scaleY = input.readFloat();
|
||||
boneData.rotation = input.readFloat();
|
||||
boneData.length = input.readFloat() * scale;
|
||||
boneData.inheritScale = input.readBoolean();
|
||||
boneData.inheritRotation = input.readBoolean();
|
||||
if (nonessential) Color.rgba8888ToColor(boneData.color, input.readInt());
|
||||
skeletonData.bones.add(boneData);
|
||||
}
|
||||
@ -214,7 +216,8 @@ public class SkeletonBinary {
|
||||
return skin;
|
||||
}
|
||||
|
||||
private Attachment readAttachment (DataInput input, Skin skin, String attachmentName, boolean nonessential) throws IOException {
|
||||
private Attachment readAttachment (DataInput input, Skin skin, String attachmentName, boolean nonessential)
|
||||
throws IOException {
|
||||
float scale = this.scale;
|
||||
|
||||
String name = input.readString();
|
||||
@ -403,8 +406,8 @@ public class SkeletonBinary {
|
||||
}
|
||||
timeline.boneIndex = boneIndex;
|
||||
for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) {
|
||||
timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale, input.readFloat()
|
||||
* timelineScale);
|
||||
timeline.setFrame(frameIndex, input.readFloat(), input.readFloat() * timelineScale,
|
||||
input.readFloat() * timelineScale);
|
||||
if (frameIndex < frameCount - 1) readCurve(input, frameIndex, timeline);
|
||||
}
|
||||
timelines.add(timeline);
|
||||
@ -522,11 +525,11 @@ public class SkeletonBinary {
|
||||
for (int i = 0; i < eventCount; i++) {
|
||||
float time = input.readFloat();
|
||||
EventData eventData = skeletonData.events.get(input.readInt(true));
|
||||
Event event = new Event(eventData);
|
||||
Event event = new Event(time, eventData);
|
||||
event.intValue = input.readInt(false);
|
||||
event.floatValue = input.readFloat();
|
||||
event.stringValue = input.readBoolean() ? input.readString() : eventData.stringValue;
|
||||
timeline.setFrame(i, time, event);
|
||||
timeline.setFrame(i, event);
|
||||
}
|
||||
timelines.add(timeline);
|
||||
duration = Math.max(duration, timeline.getFrames()[eventCount - 1]);
|
||||
|
||||
@ -116,6 +116,8 @@ public class SkeletonJson {
|
||||
boneData.rotation = boneMap.getFloat("rotation", 0);
|
||||
boneData.scaleX = boneMap.getFloat("scaleX", 1);
|
||||
boneData.scaleY = boneMap.getFloat("scaleY", 1);
|
||||
boneData.inheritScale = boneMap.getBoolean("inheritScale", true);
|
||||
boneData.inheritRotation = boneMap.getBoolean("inheritRotation", true);
|
||||
|
||||
String color = boneMap.getString("color", null);
|
||||
if (color != null) boneData.getColor().set(Color.valueOf(color));
|
||||
@ -504,11 +506,11 @@ public class SkeletonJson {
|
||||
for (JsonValue eventMap = eventsMap.child; eventMap != null; eventMap = eventMap.next) {
|
||||
EventData eventData = skeletonData.findEvent(eventMap.getString("name"));
|
||||
if (eventData == null) throw new SerializationException("Event not found: " + eventMap.getString("name"));
|
||||
Event event = new Event(eventData);
|
||||
Event event = new Event(eventMap.getFloat("time"), eventData);
|
||||
event.intValue = eventMap.getInt("int", eventData.getInt());
|
||||
event.floatValue = eventMap.getFloat("float", eventData.getFloat());
|
||||
event.stringValue = eventMap.getString("string", eventData.getString());
|
||||
timeline.setFrame(frameIndex++, eventMap.getFloat("time"), event);
|
||||
timeline.setFrame(frameIndex++, event);
|
||||
}
|
||||
timelines.add(timeline);
|
||||
duration = Math.max(duration, timeline.getFrames()[timeline.getFrameCount() - 1]);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user