修复浮点数转换问题
This commit is contained in:
@@ -1257,17 +1257,17 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
JsonObject skeleton = root["skeleton"].AsObject();
|
JsonObject skeleton = root["skeleton"].AsObject();
|
||||||
writer.WriteLong(long.Parse(Convert.ToHexString(Convert.FromBase64String(skeleton["hash"] + "=")), NumberStyles.HexNumber));
|
writer.WriteLong(long.Parse(Convert.ToHexString(Convert.FromBase64String(skeleton["hash"] + "=")), NumberStyles.HexNumber));
|
||||||
writer.WriteString((string)skeleton["spine"]);
|
writer.WriteString((string)skeleton["spine"]);
|
||||||
if (skeleton["x"] is JsonValue x) writer.WriteFloat((float)x); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(skeleton["x"] ?? 0f));
|
||||||
if (skeleton["y"] is JsonValue y) writer.WriteFloat((float)y); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(skeleton["y"] ?? 0f));
|
||||||
if (skeleton["width"] is JsonValue width) writer.WriteFloat((float)width); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(skeleton["width"] ?? 0f));
|
||||||
if (skeleton["height"] is JsonValue height) writer.WriteFloat((float)height); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(skeleton["height"] ?? 0f));
|
||||||
if (skeleton["referenceScale"] is JsonValue referenceScale) writer.WriteFloat((float)referenceScale); else writer.WriteFloat(100);
|
writer.WriteFloat((float)(skeleton["referenceScale"] ?? 100f));
|
||||||
writer.WriteBoolean(nonessential);
|
writer.WriteBoolean(nonessential);
|
||||||
if (nonessential)
|
if (nonessential)
|
||||||
{
|
{
|
||||||
if (skeleton["fps"] is JsonValue fps) writer.WriteFloat((float)fps); else writer.WriteFloat(30);
|
writer.WriteFloat((float)(skeleton["fps"] ?? 30f));
|
||||||
if (skeleton["images"] is JsonValue images) writer.WriteString((string)images); else writer.WriteString(null);
|
writer.WriteString((string)skeleton["images"]);
|
||||||
if (skeleton["audio"] is JsonValue audio) writer.WriteString((string)audio); else writer.WriteString(null);
|
writer.WriteString((string)skeleton["audio"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1293,16 +1293,16 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
var name = (string)data["name"];
|
var name = (string)data["name"];
|
||||||
writer.WriteString(name);
|
writer.WriteString(name);
|
||||||
if (i > 0) writer.WriteVarInt(bone2idx[(string)data["parent"]]);
|
if (i > 0) writer.WriteVarInt(bone2idx[(string)data["parent"]]);
|
||||||
if (data["rotation"] is JsonValue rotation) writer.WriteFloat((float)rotation); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["rotation"] ?? 0f));
|
||||||
if (data["x"] is JsonValue x) writer.WriteFloat((float)x); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["x"] ?? 0f));
|
||||||
if (data["y"] is JsonValue y) writer.WriteFloat((float)y); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["y"] ?? 0f));
|
||||||
if (data["scaleX"] is JsonValue scaleX) writer.WriteFloat((float)scaleX); else writer.WriteFloat(1);
|
writer.WriteFloat((float)(data["scaleX"] ?? 1f));
|
||||||
if (data["scaleY"] is JsonValue scaleY) writer.WriteFloat((float)scaleY); else writer.WriteFloat(1);
|
writer.WriteFloat((float)(data["scaleY"] ?? 1f));
|
||||||
if (data["shearX"] is JsonValue shearX) writer.WriteFloat((float)shearX); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["shearX"] ?? 0f));
|
||||||
if (data["shearY"] is JsonValue shearY) writer.WriteFloat((float)shearY); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["shearY"] ?? 0f));
|
||||||
if (data["length"] is JsonValue length) writer.WriteFloat((float)length); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["length"] ?? 0f));
|
||||||
if (data["inherit"] is JsonValue inherit) writer.WriteVarInt((int)Enum.Parse<Inherit>((string)inherit, true)); else writer.WriteVarInt((int)Inherit.Normal);
|
writer.WriteVarInt((int)Enum.Parse<Inherit>((string)(data["inherit"] ?? "normal"), true));
|
||||||
if (data["skin"] is JsonValue skin) writer.WriteBoolean((bool)skin); else writer.WriteBoolean(false);
|
writer.WriteBoolean((bool)(data["skin"] ?? false));
|
||||||
if (nonessential)
|
if (nonessential)
|
||||||
{
|
{
|
||||||
writer.WriteInt(0);
|
writer.WriteInt(0);
|
||||||
@@ -1328,10 +1328,10 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
var name = (string)data["name"];
|
var name = (string)data["name"];
|
||||||
writer.WriteString(name);
|
writer.WriteString(name);
|
||||||
writer.WriteVarInt(bone2idx[(string)data["bone"]]);
|
writer.WriteVarInt(bone2idx[(string)data["bone"]]);
|
||||||
if (data["color"] is JsonValue color) writer.WriteInt(int.Parse((string)color, NumberStyles.HexNumber)); else writer.WriteInt(-1); // 默认值是全 255
|
writer.WriteInt(int.Parse((string)(data["color"] ?? "ffffffff"), NumberStyles.HexNumber));
|
||||||
if (data["dark"] is JsonValue dark) writer.WriteInt(int.Parse((string)dark, NumberStyles.HexNumber)); else writer.WriteInt(-1);
|
writer.WriteInt(int.Parse((string)(data["dark"] ?? "ffffff"), NumberStyles.HexNumber));
|
||||||
if (data["attachment"] is JsonValue attachment) writer.WriteStringRef((string)attachment); else writer.WriteStringRef(null);
|
writer.WriteStringRef((string)data["attachment"]);
|
||||||
if (data["blend"] is JsonValue blend) writer.WriteVarInt((int)Enum.Parse<BlendMode>((string)blend, true)); else writer.WriteVarInt((int)BlendMode.Normal);
|
writer.WriteVarInt((int)Enum.Parse<BlendMode>((string)(data["blend"] ?? "normal"), true));
|
||||||
if (nonessential) writer.WriteBoolean(false);
|
if (nonessential) writer.WriteBoolean(false);
|
||||||
slot2idx[name] = i;
|
slot2idx[name] = i;
|
||||||
}
|
}
|
||||||
@@ -1351,7 +1351,7 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
JsonObject data = ik[i].AsObject();
|
JsonObject data = ik[i].AsObject();
|
||||||
var name = (string)data["name"];
|
var name = (string)data["name"];
|
||||||
writer.WriteString(name);
|
writer.WriteString(name);
|
||||||
if (data["order"] is JsonValue order) writer.WriteVarInt((int)order); else writer.WriteVarInt(0);
|
writer.WriteVarInt((int)(data["order"] ?? 0));
|
||||||
if (data["bones"] is JsonArray bones) WriteNames(bone2idx, bones); else writer.WriteVarInt(0);
|
if (data["bones"] is JsonArray bones) WriteNames(bone2idx, bones); else writer.WriteVarInt(0);
|
||||||
writer.WriteVarInt(bone2idx[(string)data["target"]]);
|
writer.WriteVarInt(bone2idx[(string)data["target"]]);
|
||||||
|
|
||||||
@@ -1384,7 +1384,7 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
JsonObject data = transform[i].AsObject();
|
JsonObject data = transform[i].AsObject();
|
||||||
var name = (string)data["name"];
|
var name = (string)data["name"];
|
||||||
writer.WriteString(name);
|
writer.WriteString(name);
|
||||||
if (data["order"] is JsonValue order) writer.WriteVarInt((int)order); else writer.WriteVarInt(0);
|
writer.WriteVarInt((int)(data["order"] ?? 0));
|
||||||
if (data["bones"] is JsonArray bones) WriteNames(bone2idx, bones); else writer.WriteVarInt(0);
|
if (data["bones"] is JsonArray bones) WriteNames(bone2idx, bones); else writer.WriteVarInt(0);
|
||||||
writer.WriteVarInt(bone2idx[(string)data["target"]]);
|
writer.WriteVarInt(bone2idx[(string)data["target"]]);
|
||||||
|
|
||||||
@@ -1438,8 +1438,8 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
JsonObject data = path[i].AsObject();
|
JsonObject data = path[i].AsObject();
|
||||||
var name = (string)data["name"];
|
var name = (string)data["name"];
|
||||||
writer.WriteString(name);
|
writer.WriteString(name);
|
||||||
if (data["order"] is JsonValue order) writer.WriteVarInt((int)order); else writer.WriteVarInt(0);
|
writer.WriteVarInt((int)(data["order"] ?? 0));
|
||||||
if (data["skin"] is JsonValue skin) writer.WriteBoolean((bool)skin); else writer.WriteBoolean(false);
|
writer.WriteBoolean((bool)(data["skin"] ?? false));
|
||||||
if (data["bones"] is JsonArray bones) WriteNames(bone2idx, bones); else writer.WriteVarInt(0);
|
if (data["bones"] is JsonArray bones) WriteNames(bone2idx, bones); else writer.WriteVarInt(0);
|
||||||
writer.WriteVarInt(slot2idx[(string)data["target"]]);
|
writer.WriteVarInt(slot2idx[(string)data["target"]]);
|
||||||
|
|
||||||
@@ -1454,11 +1454,11 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
writer.WriteByte((byte)flags);
|
writer.WriteByte((byte)flags);
|
||||||
if ((flags & 128) != 0) writer.WriteFloat((float)data["rotation"]);
|
if ((flags & 128) != 0) writer.WriteFloat((float)data["rotation"]);
|
||||||
|
|
||||||
if (data["position"] is JsonValue position) writer.WriteFloat((float)position); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["position"] ?? 0f));
|
||||||
if (data["spacing"] is JsonValue spacing) writer.WriteFloat((float)spacing); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["spacing"] ?? 0f));
|
||||||
if (data["mixRotate"] is JsonValue mixRotate) writer.WriteFloat((float)mixRotate); else writer.WriteFloat(1);
|
writer.WriteFloat((float)(data["mixRotate"] ?? 1f));
|
||||||
if (data["mixX"] is JsonValue mixX) writer.WriteFloat((float)mixX); else writer.WriteFloat(1);
|
writer.WriteFloat((float)(data["mixX"] ?? 1f));
|
||||||
if (data["mixY"] is JsonValue mixY) writer.WriteFloat((float)mixY); else if (data["mixX"] is JsonValue mixX2) writer.WriteFloat((float)mixX2); else writer.WriteFloat(1);
|
writer.WriteFloat((float)(data["mixY"] ?? data["mixX"] ?? 1f));
|
||||||
path2idx[name] = i;
|
path2idx[name] = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1477,8 +1477,8 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
JsonObject data = physics[i].AsObject();
|
JsonObject data = physics[i].AsObject();
|
||||||
var name = (string)data["name"];
|
var name = (string)data["name"];
|
||||||
writer.WriteString(name);
|
writer.WriteString(name);
|
||||||
if (data["order"] is JsonValue order) writer.WriteVarInt((int)order); else writer.WriteVarInt(0);
|
writer.WriteVarInt((int)(data["order"] ?? 0));
|
||||||
if (data["bone"] is JsonValue bone) writer.WriteVarInt(bone2idx[(string)bone]); else writer.WriteVarInt(0);
|
writer.WriteVarInt(bone2idx[(string)data["bone"]]);
|
||||||
|
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
if (data["skin"] is JsonValue skin && (bool)skin) flags |= 1;
|
if (data["skin"] is JsonValue skin && (bool)skin) flags |= 1;
|
||||||
@@ -1496,13 +1496,13 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
if ((flags & 16) != 0) writer.WriteFloat((float)data["scaleX"]);
|
if ((flags & 16) != 0) writer.WriteFloat((float)data["scaleX"]);
|
||||||
if ((flags & 32) != 0) writer.WriteFloat((float)data["shearX"]);
|
if ((flags & 32) != 0) writer.WriteFloat((float)data["shearX"]);
|
||||||
if ((flags & 64) != 0) writer.WriteFloat((float)data["limit"]);
|
if ((flags & 64) != 0) writer.WriteFloat((float)data["limit"]);
|
||||||
if (data["fps"] is JsonValue fps) writer.WriteByte((byte)(int)fps); else writer.WriteByte(60);
|
writer.WriteByte((byte)(int)(data["fps"] ?? 60));
|
||||||
if (data["inertia"] is JsonValue inertia) writer.WriteFloat((float)inertia); else writer.WriteFloat(1);
|
writer.WriteFloat((float)(data["inertia"] ?? 1f));
|
||||||
if (data["strength"] is JsonValue strength) writer.WriteFloat((float)strength); else writer.WriteFloat(100);
|
writer.WriteFloat((float)(data["strength"] ?? 100f));
|
||||||
if (data["damping"] is JsonValue damping) writer.WriteFloat((float)damping); else writer.WriteFloat(1);
|
writer.WriteFloat((float)(data["damping"] ?? 1f));
|
||||||
if ((flags & 128) != 0) writer.WriteFloat(1f / (float)data["mass"]);
|
if ((flags & 128) != 0) writer.WriteFloat(1f / (float)data["mass"]);
|
||||||
if (data["wind"] is JsonValue wind) writer.WriteFloat((float)wind); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["wind"] ?? 0f));
|
||||||
if (data["gravity"] is JsonValue gravity) writer.WriteFloat((float)gravity); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(data["gravity"] ?? 0f));
|
||||||
|
|
||||||
flags = 0;
|
flags = 0;
|
||||||
if (data["inertiaGlobal"] is JsonValue inertiaGlobal && (bool)inertiaGlobal) flags |= 1;
|
if (data["inertiaGlobal"] is JsonValue inertiaGlobal && (bool)inertiaGlobal) flags |= 1;
|
||||||
@@ -1655,15 +1655,15 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
if ((flags & 32) != 0) writer.WriteInt(int.Parse((string)attachment["color"], NumberStyles.HexNumber));
|
if ((flags & 32) != 0) writer.WriteInt(int.Parse((string)attachment["color"], NumberStyles.HexNumber));
|
||||||
if ((flags & 64) != 0) WriteSequence(attachment["sequence"].AsObject());
|
if ((flags & 64) != 0) WriteSequence(attachment["sequence"].AsObject());
|
||||||
if ((flags & 128) != 0) writer.WriteFloat((float)attachment["rotation"]);
|
if ((flags & 128) != 0) writer.WriteFloat((float)attachment["rotation"]);
|
||||||
if (attachment["x"] is JsonValue x1) writer.WriteFloat((float)x1); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(attachment["x"] ?? 0f));
|
||||||
if (attachment["y"] is JsonValue y1) writer.WriteFloat((float)y1); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(attachment["y"] ?? 0f));
|
||||||
if (attachment["scaleX"] is JsonValue scaleX) writer.WriteFloat((float)scaleX); else writer.WriteFloat(1);
|
writer.WriteFloat((float)(attachment["scaleX"] ?? 1f));
|
||||||
if (attachment["scaleY"] is JsonValue scaleY) writer.WriteFloat((float)scaleY); else writer.WriteFloat(1);
|
writer.WriteFloat((float)(attachment["scaleY"] ?? 1f));
|
||||||
if (attachment["width"] is JsonValue width) writer.WriteFloat((float)width); else writer.WriteFloat(32);
|
writer.WriteFloat((float)(attachment["width"] ?? 32f));
|
||||||
if (attachment["height"] is JsonValue height) writer.WriteFloat((float)height); else writer.WriteFloat(32);
|
writer.WriteFloat((float)(attachment["height"] ?? 32f));
|
||||||
break;
|
break;
|
||||||
case AttachmentType.Boundingbox:
|
case AttachmentType.Boundingbox:
|
||||||
if (attachment["vertexCount"] is JsonValue _vc1) vertexCount = (int)_vc1; else vertexCount = 0;
|
vertexCount = (int)(attachment["vertexCount"] ?? 0);
|
||||||
writer.WriteVarInt(vertexCount);
|
writer.WriteVarInt(vertexCount);
|
||||||
WriteVertices(attachment["vertices"].AsArray(), vertexCount, (flags & 16) != 0);
|
WriteVertices(attachment["vertices"].AsArray(), vertexCount, (flags & 16) != 0);
|
||||||
if (nonessential) writer.WriteInt(0);
|
if (nonessential) writer.WriteInt(0);
|
||||||
@@ -1672,7 +1672,7 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
if ((flags & 16) != 0) writer.WriteStringRef((string)attachment["path"]);
|
if ((flags & 16) != 0) writer.WriteStringRef((string)attachment["path"]);
|
||||||
if ((flags & 32) != 0) writer.WriteInt(int.Parse((string)attachment["color"], NumberStyles.HexNumber));
|
if ((flags & 32) != 0) writer.WriteInt(int.Parse((string)attachment["color"], NumberStyles.HexNumber));
|
||||||
if ((flags & 64) != 0) WriteSequence(attachment["sequence"].AsObject());
|
if ((flags & 64) != 0) WriteSequence(attachment["sequence"].AsObject());
|
||||||
if (attachment["hull"] is JsonValue hull) writer.WriteVarInt((int)hull); else writer.WriteVarInt(0);
|
writer.WriteVarInt((int)(attachment["hull"] ?? 0));
|
||||||
vertexCount = attachment["uvs"].AsArray().Count >> 1;
|
vertexCount = attachment["uvs"].AsArray().Count >> 1;
|
||||||
writer.WriteVarInt(vertexCount);
|
writer.WriteVarInt(vertexCount);
|
||||||
WriteVertices(attachment["vertices"].AsArray(), vertexCount, (flags & 128) != 0);
|
WriteVertices(attachment["vertices"].AsArray(), vertexCount, (flags & 128) != 0);
|
||||||
@@ -1685,38 +1685,38 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
writer.WriteVarInt(edges.Count);
|
writer.WriteVarInt(edges.Count);
|
||||||
WriteShortArray(edges, edges.Count);
|
WriteShortArray(edges, edges.Count);
|
||||||
}
|
}
|
||||||
if (attachment["width"] is JsonArray _width) writer.WriteFloat((float)_width); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(attachment["width"] ?? 0f));
|
||||||
if (attachment["height"] is JsonArray _height) writer.WriteFloat((float)_height); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(attachment["height"] ?? 0f));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AttachmentType.Linkedmesh:
|
case AttachmentType.Linkedmesh:
|
||||||
if ((flags & 16) != 0) writer.WriteStringRef((string)attachment["path"]);
|
if ((flags & 16) != 0) writer.WriteStringRef((string)attachment["path"]);
|
||||||
if ((flags & 32) != 0) writer.WriteInt(int.Parse((string)attachment["color"], NumberStyles.HexNumber));
|
if ((flags & 32) != 0) writer.WriteInt(int.Parse((string)attachment["color"], NumberStyles.HexNumber));
|
||||||
if ((flags & 64) != 0) WriteSequence(attachment["sequence"].AsObject());
|
if ((flags & 64) != 0) WriteSequence(attachment["sequence"].AsObject());
|
||||||
if (attachment["skin"] is JsonArray skin) writer.WriteVarInt(skin2idx[(string)skin]); else writer.WriteVarInt(0);
|
if (attachment["skin"] is JsonValue skin) writer.WriteVarInt(skin2idx[(string)attachment["skin"]]); else writer.WriteVarInt(0); // XXX: 此处很抽象, json 里允许 skin 为 null, 但是二进制里一定是读取一个有效索引
|
||||||
if (attachment["parent"] is JsonValue parent) writer.WriteStringRef((string)parent); else writer.WriteStringRef(null);
|
if (attachment["parent"] is JsonValue parent) writer.WriteStringRef((string)parent); else writer.WriteStringRef(null);
|
||||||
if (nonessential)
|
if (nonessential)
|
||||||
{
|
{
|
||||||
if (attachment["width"] is JsonArray _width) writer.WriteFloat((float)_width); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(attachment["width"] ?? 0f));
|
||||||
if (attachment["height"] is JsonArray _height) writer.WriteFloat((float)_height); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(attachment["height"] ?? 0f));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AttachmentType.Path:
|
case AttachmentType.Path:
|
||||||
if (attachment["vertexCount"] is JsonValue _vc2) vertexCount = (int)_vc2; else vertexCount = 0;
|
vertexCount = (int)(attachment["vertexCount"] ?? 0);
|
||||||
writer.WriteVarInt(vertexCount);
|
writer.WriteVarInt(vertexCount);
|
||||||
WriteVertices(attachment["vertices"].AsArray(), vertexCount, (flags & 64) != 0);
|
WriteVertices(attachment["vertices"].AsArray(), vertexCount, (flags & 64) != 0);
|
||||||
WriteFloatArray(attachment["lengths"].AsArray(), vertexCount * 2 / 6);
|
WriteFloatArray(attachment["lengths"].AsArray(), vertexCount * 2 / 6);
|
||||||
if (nonessential) writer.WriteInt(0);
|
if (nonessential) writer.WriteInt(0);
|
||||||
break;
|
break;
|
||||||
case AttachmentType.Point:
|
case AttachmentType.Point:
|
||||||
if (attachment["rotation"] is JsonArray rotation) writer.WriteFloat((float)rotation); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(attachment["rotation"] ?? 0f));
|
||||||
if (attachment["x"] is JsonArray x2) writer.WriteFloat((float)x2); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(attachment["x"] ?? 0f));
|
||||||
if (attachment["y"] is JsonArray y2) writer.WriteFloat((float)y2); else writer.WriteFloat(0);
|
writer.WriteFloat((float)(attachment["y"] ?? 0f));
|
||||||
if (nonessential) writer.WriteInt(0);
|
if (nonessential) writer.WriteInt(0);
|
||||||
break;
|
break;
|
||||||
case AttachmentType.Clipping:
|
case AttachmentType.Clipping:
|
||||||
writer.WriteVarInt(slot2idx[(string)attachment["end"]]);
|
writer.WriteVarInt(slot2idx[(string)attachment["end"]]);
|
||||||
if (attachment["vertexCount"] is JsonValue _vc3) vertexCount = (int)_vc3; else vertexCount = 0;
|
vertexCount = (int)(attachment["vertexCount"] ?? 0);
|
||||||
writer.WriteVarInt(vertexCount);
|
writer.WriteVarInt(vertexCount);
|
||||||
WriteVertices(attachment["vertices"].AsArray(), vertexCount, (flags & 16) != 0);
|
WriteVertices(attachment["vertices"].AsArray(), vertexCount, (flags & 16) != 0);
|
||||||
if (nonessential) writer.WriteInt(0);
|
if (nonessential) writer.WriteInt(0);
|
||||||
@@ -1729,9 +1729,9 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
private void WriteSequence(JsonObject sequence)
|
private void WriteSequence(JsonObject sequence)
|
||||||
{
|
{
|
||||||
writer.WriteVarInt((int)sequence["count"]);
|
writer.WriteVarInt((int)sequence["count"]);
|
||||||
if (sequence["start"] is JsonValue start) writer.WriteVarInt((int)start); else writer.WriteVarInt(1);
|
writer.WriteVarInt((int)(sequence["start"] ?? 1));
|
||||||
if (sequence["digits"] is JsonValue digits) writer.WriteVarInt((int)digits); else writer.WriteVarInt(0);
|
writer.WriteVarInt((int)(sequence["digits"] ?? 0));
|
||||||
if (sequence["setup"] is JsonValue setup) writer.WriteVarInt((int)setup); else writer.WriteVarInt(0);
|
writer.WriteVarInt((int)(sequence["setup"] ?? 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WriteEvents()
|
private void WriteEvents()
|
||||||
@@ -1906,7 +1906,6 @@ namespace SpineViewer.Spine.Implementations.SkeletonConverter
|
|||||||
frame = frames[0].AsObject();
|
frame = frames[0].AsObject();
|
||||||
writer.WriteFloat((float)(frame["time"] ?? 0f));
|
writer.WriteFloat((float)(frame["time"] ?? 0f));
|
||||||
writer.Write((byte)((float)(frame["value"] ?? 1f) * 255));
|
writer.Write((byte)((float)(frame["value"] ?? 1f) * 255));
|
||||||
if (frame.TryGetPropertyValue("value", out var value)) writer.WriteFloat((float)value); else writer.WriteFloat(1);
|
|
||||||
for (int i = 1; i < frames.Count; i++)
|
for (int i = 1; i < frames.Count; i++)
|
||||||
{
|
{
|
||||||
frame = frames[i].AsObject();
|
frame = frames[i].AsObject();
|
||||||
|
|||||||
Reference in New Issue
Block a user