2
0
Эх сурвалжийг харах

fixed multiple objects in same layer

Nicolas Cannasse 5 жил өмнө
parent
commit
3b7e6b4d7f
1 өөрчлөгдсөн 31 нэмэгдсэн , 29 устгасан
  1. 31 29
      hrt/prefab/l3d/HeightMap.hx

+ 31 - 29
hrt/prefab/l3d/HeightMap.hx

@@ -387,35 +387,37 @@ class HeightMap extends Object3D {
 		var scale = size * tileX / terrainWidth;
 		var localScale = objects.scale * scale;
 		for( layer in xml.node.Objects.node.Layers.nodes.Layer ) {
-			var obj = layer.node.Object;
-			var name = obj.att.MeshAssetFileName;
-			var data = haxe.crypto.Base64.decode(obj.node.Data.innerData);
-			for( i in 0...Std.int(data.length/40) ) {
-				var p = i * 40;
-				var x = data.getFloat(p); p += 4;
-				p += 4; // skip
-				var y = terrainWidth - data.getFloat(p); p += 4;
-
-				x *= scale;
-				y *= scale;
-
-				var scW = data.getFloat(p); p += 4;
-				var scH = data.getFloat(p); p += 4;
-				var rotX = data.getFloat(p); p += 4;
-				var rotY = data.getFloat(p); p += 4;
-				var rotZ = data.getFloat(p); p += 4;
-				p += 4; // ???
-				var tint = data.getInt32(p);
-				tint = tint & 0xFFFFFF;
-				tint = ((tint & 0xFF) << 16) | (tint & 0xFF00) | (tint >> 16);
-				objectsCache.push({
-					obj : name,
-					x : x,
-					y : y,
-					scale : scW * localScale,
-					rot : rotY,
-					tint : tint,
-				});
+			for( obj in layer.nodes.Object ) {
+				var name = obj.att.MeshAssetFileName;
+				var data = haxe.crypto.Base64.decode(obj.node.Data.innerData);
+				for( i in 0...Std.int(data.length/40) ) {
+					var p = i * 40;
+					var x = data.getFloat(p); p += 4;
+					p += 4; // skip
+					var y = terrainWidth - data.getFloat(p); p += 4;
+
+					x *= scale;
+					y *= scale;
+
+					var scW = data.getFloat(p); p += 4;
+					var scH = data.getFloat(p); p += 4;
+					var rotX = data.getFloat(p); p += 4;
+					var rotY = data.getFloat(p); p += 4;
+					var rotZ = data.getFloat(p); p += 4;
+					p += 4; // ???
+					var tint = data.getInt32(p);
+					tint = tint & 0xFFFFFF;
+					tint = ((tint & 0xFF) << 16) | (tint & 0xFF00) | (tint >> 16);
+
+ 					objectsCache.push({
+						obj : name,
+						x : x,
+						y : y,
+						scale : scW * localScale,
+						rot : rotY * Math.PI * 2,
+						tint : tint,
+					});
+				}
 			}
 		}
 	}