48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
| //
 | |
| //  ImageFileParser.swift
 | |
| //  
 | |
| //
 | |
| //  Created by Thibaut Schmitt on 24/01/2022.
 | |
| //
 | |
| 
 | |
| import Foundation
 | |
| 
 | |
| class ImageFileParser {
 | |
|     
 | |
|     static func parse(_ inputFile: String, platform: PlatormTag) -> [ImageToGen] {
 | |
|         let inputFileContent = try! String(contentsOfFile: inputFile, encoding: .utf8)
 | |
|         let stringsByLines = inputFileContent.components(separatedBy: .newlines)
 | |
|         
 | |
|         var imagesToGenerate = [ImageToGen]()
 | |
|         
 | |
|         // Parse file
 | |
|         stringsByLines.forEach {
 | |
|             guard $0.removeLeadingTrailingWhitespace().isEmpty == false, $0.first != "#" else {
 | |
|                 return
 | |
|             }
 | |
|             
 | |
|             let splittedLine = $0.split(separator: " ")
 | |
|             
 | |
|             let width: Int = {
 | |
|                 if splittedLine[2] == "?" {
 | |
|                     return -1
 | |
|                 }
 | |
|                 return Int(splittedLine[2])!
 | |
|             }()
 | |
|             let height: Int = {
 | |
|                 if splittedLine[3] == "?" {
 | |
|                     return -1
 | |
|                 }
 | |
|                 return Int(splittedLine[3])!
 | |
|             }()
 | |
|             
 | |
|             let image = ImageToGen(name: String(splittedLine[1]), tags: String(splittedLine[0]), width: width, height: height)
 | |
|             imagesToGenerate.append(image)
 | |
|         }
 | |
|         
 | |
|         return imagesToGenerate.filter {
 | |
|             $0.tags.contains(platform.rawValue)
 | |
|         }
 | |
|     }
 | |
| }
 |