OSDN Git Service

バージョンを1.9b33に更新
[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 final class SlotItemShortNameTransformer: ValueTransformer {
12     
13     private static var slotItemShortName: [Int: String] = {
14         
15         guard let url = Bundle.main.url(forResource: "SlotItemShortName", withExtension: "plist"),
16             let dict = NSDictionary(contentsOf: url) as? [String: String] else {
17                 
18                 fatalError("Can not load SlotItemShortName.plist")
19         }
20         
21         return dict.reduce(into: [Int: String]()) {
22             
23             guard let k = Int($1.0) else { return }
24             
25             $0[k] = $1.1
26         }
27     }()
28     
29     override class func transformedValueClass() -> AnyClass {
30         
31         return NSString.self
32     }
33     
34     override func transformedValue(_ value: Any?) -> Any? {
35         
36         guard let id = value as? Int, id != 0, id != -1 else { return nil }
37         
38         guard let item = ServerDataStore.default.slotItem(by: id) else { return nil }
39         
40         let itemId = item.master_slotItem.id
41         
42         return SlotItemShortNameTransformer.slotItemShortName[itemId] ?? item.name
43     }
44 }