OSDN Git Service

swiftlint 'line_length'の警告を修正
[kcd/KCD.git] / KCD / SlotItemShortNameTransformer.swift
1 //
2 //  SlotItemShortNameTransformer.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/04.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 class SlotItemShortNameTransformer: ValueTransformer {
12     
13     private static var slotItemShortName: [Int: String] = {
14         guard let url = Bundle.main.url(forResource: "SlotItemShortName", withExtension: "plist"),
15             let dict = NSDictionary(contentsOf: url) as? [String: String]
16             else { fatalError("Can not load SlotItemShortName.plist") }
17         return dict.reduce([Int: String]()) {
18             guard let k = Int($1.0) else { return $0 }
19             var d = $0
20             d[k] = $1.1
21             return d
22         }
23     }()
24     
25     override class func transformedValueClass() -> AnyClass {
26         return NSString.self
27     }
28     override func transformedValue(_ value: Any?) -> Any? {
29         guard let id = value as? Int, id != 0, id != -1 else { return nil }
30         guard let item = ServerDataStore.default.slotItem(byId: id)
31             else { return nil }
32         let itemId = item.master_slotItem.id
33         return SlotItemShortNameTransformer.slotItemShortName[itemId] ?? item.name
34     }
35 }