public static AssetSpriteData FromTK2D(tk2dSpriteCollectionData sprites, tk2dSpriteDefinition frame, bool separate = false) { if (sprites.materials[0]?.mainTexture == null) { return(new AssetSpriteData { name = separate ? "INCOMPLETE" : (frame.name + "_INCOMPLETE") }); } int texWidth = sprites.materials[0].mainTexture.width; int texHeight = sprites.materials[0].mainTexture.height; return(new AssetSpriteData { name = separate ? null : frame.name, x = separate ? 0 : (int)Math.Floor(texWidth * frame.uvs[0].x), y = separate ? 0 : (int)Math.Floor(texHeight * frame.uvs[0].y), width = (int)Math.Ceiling(texWidth * (frame.uvs[3].x - frame.uvs[0].x)), height = (int)Math.Ceiling(texHeight * (frame.uvs[3].y - frame.uvs[0].y)), flip = frame.uvs[0].x == frame.uvs[1].x ? 1 : 0, attachPoints = sprites.GetAttachPoints(sprites.spriteDefinitions.IndexOf(frame)) ?? new AttachPoint[0] }); }