OSDN Git Service

改修工廠メニューを更新
[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 {
24                 
25                 return
26             }
27             
28             $0[k] = $1.1
29         }
30     }()
31     
32     override class func transformedValueClass() -> AnyClass {
33         
34         return NSString.self
35     }
36     
37     override func transformedValue(_ value: Any?) -> Any? {
38         
39         guard let id = value as? Int, id != 0, id != -1 else {
40             
41             return nil
42         }
43         
44         guard let item = ServerDataStore.default.slotItem(by: id) else {
45             
46             return nil
47         }
48         
49         let itemId = item.master_slotItem.id
50         
51         return SlotItemShortNameTransformer.slotItemShortName[itemId] ?? item.name
52     }
53 }