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)
|
|
}
|
|
}
|
|
}
|