Explorar o código

Merge remote-tracking branch 'origin/master'

NathanSweet %!s(int64=12) %!d(string=hai) anos
pai
achega
56ec15c0f4
Modificáronse 2 ficheiros con 16 adicións e 3 borrados
  1. 12 3
      spine-lua/Bone.lua
  2. 4 0
      spine-lua/SkeletonJson.lua

+ 12 - 3
spine-lua/Bone.lua

@@ -38,9 +38,18 @@ function Bone.new (data, parent)
 		if parent then
 		if parent then
 			self.worldX = self.x * parent.m00 + self.y * parent.m01 + parent.worldX
 			self.worldX = self.x * parent.m00 + self.y * parent.m01 + parent.worldX
 			self.worldY = self.x * parent.m10 + self.y * parent.m11 + parent.worldY
 			self.worldY = self.x * parent.m10 + self.y * parent.m11 + parent.worldY
-			self.worldScaleX = parent.worldScaleX * self.scaleX
-			self.worldScaleY = parent.worldScaleY * self.scaleY
-			self.worldRotation = parent.worldRotation + self.rotation
+      if (self.data.inheritScale) then
+          self.worldScaleX = parent.worldScaleX * self.scaleX
+          self.worldScaleY = parent.worldScaleY * self.scaleY
+      else
+          self.worldScaleX = self.scaleX
+          self.worldScaleY = self.scaleY
+      end
+      if (self.data.inheritRotation) then
+          self.worldRotation = parent.worldRotation + self.rotation
+      else
+          self.worldRotation = self.rotation
+      end
 		else
 		else
 			if flipX then
 			if flipX then
 				self.worldX = -self.x
 				self.worldX = -self.x

+ 4 - 0
spine-lua/SkeletonJson.lua

@@ -75,6 +75,10 @@ function SkeletonJson.new (attachmentLoader)
 			boneData.rotation = (boneMap["rotation"] or 0)
 			boneData.rotation = (boneMap["rotation"] or 0)
 			boneData.scaleX = (boneMap["scaleX"] or 1)
 			boneData.scaleX = (boneMap["scaleX"] or 1)
 			boneData.scaleY = (boneMap["scaleY"] or 1)
 			boneData.scaleY = (boneMap["scaleY"] or 1)
+			-- typical 'value or default' will not work here, as in practice the possible values are 'false' or nil,
+			-- both of which evaluate to false and the default value is true
+      if boneMap["inheritScale"] == false then boneData.inheritScale = false else boneData.inheritScale = true end
+      if boneMap["inheritRotation"] == false then boneData.inheritRotation = false else boneData.inheritRotation = true end			
 			table.insert(skeletonData.bones, boneData)
 			table.insert(skeletonData.bones, boneData)
 		end
 		end