|
@@ -29,6 +29,10 @@
|
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*****************************************************************************/
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
+#if (UNITY_5 || UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_WSA || UNITY_WP8 || UNITY_WP8_1)
|
|
|
|
+#define IS_UNITY
|
|
|
|
+#endif
|
|
|
|
+
|
|
using System;
|
|
using System;
|
|
using System.IO;
|
|
using System.IO;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
@@ -53,7 +57,7 @@ namespace Spine {
|
|
Scale = 1;
|
|
Scale = 1;
|
|
}
|
|
}
|
|
|
|
|
|
- #if !(UNITY_5 || UNITY_4 || UNITY_WSA || UNITY_WP8 || UNITY_WP8_1)
|
|
|
|
|
|
+ #if !(IS_UNITY)
|
|
#if WINDOWS_STOREAPP
|
|
#if WINDOWS_STOREAPP
|
|
|
|
|
|
private async Task<SkeletonData> ReadFile(string path) {
|
|
private async Task<SkeletonData> ReadFile(string path) {
|
|
@@ -71,12 +75,12 @@ namespace Spine {
|
|
}
|
|
}
|
|
#else
|
|
#else
|
|
public SkeletonData ReadSkeletonData (String path) {
|
|
public SkeletonData ReadSkeletonData (String path) {
|
|
- #if WINDOWS_PHONE
|
|
|
|
|
|
+ #if WINDOWS_PHONE
|
|
Stream stream = Microsoft.Xna.Framework.TitleContainer.OpenStream(path);
|
|
Stream stream = Microsoft.Xna.Framework.TitleContainer.OpenStream(path);
|
|
using (StreamReader reader = new StreamReader(stream)) {
|
|
using (StreamReader reader = new StreamReader(stream)) {
|
|
- #else
|
|
|
|
|
|
+ #else
|
|
using (StreamReader reader = new StreamReader(path)) {
|
|
using (StreamReader reader = new StreamReader(path)) {
|
|
- #endif // WINDOWS_PHONE
|
|
|
|
|
|
+ #endif // WINDOWS_PHONE
|
|
SkeletonData skeletonData = ReadSkeletonData(reader);
|
|
SkeletonData skeletonData = ReadSkeletonData(reader);
|
|
skeletonData.name = Path.GetFileNameWithoutExtension(path);
|
|
skeletonData.name = Path.GetFileNameWithoutExtension(path);
|
|
return skeletonData;
|
|
return skeletonData;
|
|
@@ -89,6 +93,7 @@ namespace Spine {
|
|
public SkeletonData ReadSkeletonData (TextReader reader) {
|
|
public SkeletonData ReadSkeletonData (TextReader reader) {
|
|
if (reader == null) throw new ArgumentNullException("reader cannot be null.");
|
|
if (reader == null) throw new ArgumentNullException("reader cannot be null.");
|
|
|
|
|
|
|
|
+ var scale = this.Scale;
|
|
var skeletonData = new SkeletonData();
|
|
var skeletonData = new SkeletonData();
|
|
|
|
|
|
var root = Json.Deserialize(reader) as Dictionary<String, Object>;
|
|
var root = Json.Deserialize(reader) as Dictionary<String, Object>;
|
|
@@ -112,9 +117,9 @@ namespace Spine {
|
|
throw new Exception("Parent bone not found: " + boneMap["parent"]);
|
|
throw new Exception("Parent bone not found: " + boneMap["parent"]);
|
|
}
|
|
}
|
|
var boneData = new BoneData((String)boneMap["name"], parent);
|
|
var boneData = new BoneData((String)boneMap["name"], parent);
|
|
- boneData.length = GetFloat(boneMap, "length", 0) * Scale;
|
|
|
|
- boneData.x = GetFloat(boneMap, "x", 0) * Scale;
|
|
|
|
- boneData.y = GetFloat(boneMap, "y", 0) * Scale;
|
|
|
|
|
|
+ boneData.length = GetFloat(boneMap, "length", 0) * scale;
|
|
|
|
+ boneData.x = GetFloat(boneMap, "x", 0) * scale;
|
|
|
|
+ boneData.y = GetFloat(boneMap, "y", 0) * scale;
|
|
boneData.rotation = GetFloat(boneMap, "rotation", 0);
|
|
boneData.rotation = GetFloat(boneMap, "rotation", 0);
|
|
boneData.scaleX = GetFloat(boneMap, "scaleX", 1);
|
|
boneData.scaleX = GetFloat(boneMap, "scaleX", 1);
|
|
boneData.scaleY = GetFloat(boneMap, "scaleY", 1);
|
|
boneData.scaleY = GetFloat(boneMap, "scaleY", 1);
|
|
@@ -244,6 +249,8 @@ namespace Spine {
|
|
if (map.ContainsKey("name"))
|
|
if (map.ContainsKey("name"))
|
|
name = (String)map["name"];
|
|
name = (String)map["name"];
|
|
|
|
|
|
|
|
+ var scale = this.Scale;
|
|
|
|
+
|
|
var type = AttachmentType.region;
|
|
var type = AttachmentType.region;
|
|
if (map.ContainsKey("type")) {
|
|
if (map.ContainsKey("type")) {
|
|
var typeName = (String)map["type"];
|
|
var typeName = (String)map["type"];
|
|
@@ -260,13 +267,13 @@ namespace Spine {
|
|
RegionAttachment region = attachmentLoader.NewRegionAttachment(skin, name, path);
|
|
RegionAttachment region = attachmentLoader.NewRegionAttachment(skin, name, path);
|
|
if (region == null) return null;
|
|
if (region == null) return null;
|
|
region.Path = path;
|
|
region.Path = path;
|
|
- region.x = GetFloat(map, "x", 0) * Scale;
|
|
|
|
- region.y = GetFloat(map, "y", 0) * Scale;
|
|
|
|
|
|
+ region.x = GetFloat(map, "x", 0) * scale;
|
|
|
|
+ region.y = GetFloat(map, "y", 0) * scale;
|
|
region.scaleX = GetFloat(map, "scaleX", 1);
|
|
region.scaleX = GetFloat(map, "scaleX", 1);
|
|
region.scaleY = GetFloat(map, "scaleY", 1);
|
|
region.scaleY = GetFloat(map, "scaleY", 1);
|
|
region.rotation = GetFloat(map, "rotation", 0);
|
|
region.rotation = GetFloat(map, "rotation", 0);
|
|
- region.width = GetFloat(map, "width", 32) * Scale;
|
|
|
|
- region.height = GetFloat(map, "height", 32) * Scale;
|
|
|
|
|
|
+ region.width = GetFloat(map, "width", 32) * scale;
|
|
|
|
+ region.height = GetFloat(map, "height", 32) * scale;
|
|
region.UpdateOffset();
|
|
region.UpdateOffset();
|
|
|
|
|
|
if (map.ContainsKey("color")) {
|
|
if (map.ContainsKey("color")) {
|
|
@@ -283,7 +290,7 @@ namespace Spine {
|
|
if (mesh == null) return null;
|
|
if (mesh == null) return null;
|
|
|
|
|
|
mesh.Path = path;
|
|
mesh.Path = path;
|
|
- mesh.vertices = GetFloatArray(map, "vertices", Scale);
|
|
|
|
|
|
+ mesh.vertices = GetFloatArray(map, "vertices", scale);
|
|
mesh.triangles = GetIntArray(map, "triangles");
|
|
mesh.triangles = GetIntArray(map, "triangles");
|
|
mesh.regionUVs = GetFloatArray(map, "uvs", 1);
|
|
mesh.regionUVs = GetFloatArray(map, "uvs", 1);
|
|
mesh.UpdateUVs();
|
|
mesh.UpdateUVs();
|
|
@@ -298,8 +305,8 @@ namespace Spine {
|
|
|
|
|
|
mesh.HullLength = GetInt(map, "hull", 0) * 2;
|
|
mesh.HullLength = GetInt(map, "hull", 0) * 2;
|
|
if (map.ContainsKey("edges")) mesh.Edges = GetIntArray(map, "edges");
|
|
if (map.ContainsKey("edges")) mesh.Edges = GetIntArray(map, "edges");
|
|
- mesh.Width = GetInt(map, "width", 0) * Scale;
|
|
|
|
- mesh.Height = GetInt(map, "height", 0) * Scale;
|
|
|
|
|
|
+ mesh.Width = GetInt(map, "width", 0) * scale;
|
|
|
|
+ mesh.Height = GetInt(map, "height", 0) * scale;
|
|
|
|
|
|
return mesh;
|
|
return mesh;
|
|
}
|
|
}
|
|
@@ -312,7 +319,6 @@ namespace Spine {
|
|
float[] vertices = GetFloatArray(map, "vertices", 1);
|
|
float[] vertices = GetFloatArray(map, "vertices", 1);
|
|
var weights = new List<float>(uvs.Length * 3 * 3);
|
|
var weights = new List<float>(uvs.Length * 3 * 3);
|
|
var bones = new List<int>(uvs.Length * 3);
|
|
var bones = new List<int>(uvs.Length * 3);
|
|
- float scale = Scale;
|
|
|
|
for (int i = 0, n = vertices.Length; i < n; ) {
|
|
for (int i = 0, n = vertices.Length; i < n; ) {
|
|
int boneCount = (int)vertices[i++];
|
|
int boneCount = (int)vertices[i++];
|
|
bones.Add(boneCount);
|
|
bones.Add(boneCount);
|
|
@@ -340,15 +346,15 @@ namespace Spine {
|
|
|
|
|
|
mesh.HullLength = GetInt(map, "hull", 0) * 2;
|
|
mesh.HullLength = GetInt(map, "hull", 0) * 2;
|
|
if (map.ContainsKey("edges")) mesh.Edges = GetIntArray(map, "edges");
|
|
if (map.ContainsKey("edges")) mesh.Edges = GetIntArray(map, "edges");
|
|
- mesh.Width = GetInt(map, "width", 0) * Scale;
|
|
|
|
- mesh.Height = GetInt(map, "height", 0) * Scale;
|
|
|
|
|
|
+ mesh.Width = GetInt(map, "width", 0) * scale;
|
|
|
|
+ mesh.Height = GetInt(map, "height", 0) * scale;
|
|
|
|
|
|
return mesh;
|
|
return mesh;
|
|
}
|
|
}
|
|
case AttachmentType.boundingbox:
|
|
case AttachmentType.boundingbox:
|
|
BoundingBoxAttachment box = attachmentLoader.NewBoundingBoxAttachment(skin, name);
|
|
BoundingBoxAttachment box = attachmentLoader.NewBoundingBoxAttachment(skin, name);
|
|
if (box == null) return null;
|
|
if (box == null) return null;
|
|
- box.vertices = GetFloatArray(map, "vertices", Scale);
|
|
|
|
|
|
+ box.vertices = GetFloatArray(map, "vertices", scale);
|
|
return box;
|
|
return box;
|
|
}
|
|
}
|
|
return null;
|
|
return null;
|
|
@@ -408,7 +414,7 @@ namespace Spine {
|
|
private void ReadAnimation (String name, Dictionary<String, Object> map, SkeletonData skeletonData) {
|
|
private void ReadAnimation (String name, Dictionary<String, Object> map, SkeletonData skeletonData) {
|
|
var timelines = new ExposedList<Timeline>();
|
|
var timelines = new ExposedList<Timeline>();
|
|
float duration = 0;
|
|
float duration = 0;
|
|
- float scale = Scale;
|
|
|
|
|
|
+ var scale = this.Scale;
|
|
|
|
|
|
if (map.ContainsKey("slots")) {
|
|
if (map.ContainsKey("slots")) {
|
|
foreach (KeyValuePair<String, Object> entry in (Dictionary<String, Object>)map["slots"]) {
|
|
foreach (KeyValuePair<String, Object> entry in (Dictionary<String, Object>)map["slots"]) {
|