OSDN Git Service

洋上補給の補強増設用のショートネームをつけた
[kcd/KCD.git] / KCD / ServerDataStoreAccessor.swift
1 //
2 //  ServerDataStoreAccessor.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/10/25.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 extension ServerDataStore {
10     
11     func airBases() -> [AirBase] {
12         
13         guard let airbase = try? objects(of: AirBase.entity) else { return [] }
14         
15         return airbase
16     }
17     
18     func airBase(area: Int, base: Int) -> AirBase? {
19         
20         let p = NSPredicate.empty
21             .and(NSPredicate(#keyPath(AirBase.area_id), equal: area))
22             .and(NSPredicate(#keyPath(AirBase.rid), equal: base))
23         
24         guard let airBases = try? objects(of: AirBase.entity, predicate: p) else { return nil }
25         
26         return airBases.first
27     }
28     
29     func createAirBasePlaneInfo() -> AirBasePlaneInfo? {
30         
31         return insertNewObject(for: AirBasePlaneInfo.entity)
32     }
33     
34     func basic() -> Basic? {
35         
36         guard let basics = try? objects(of: Basic.entity) else { return nil }
37         
38         return basics.first
39     }
40     
41     func createBasic() -> Basic? {
42         
43         return insertNewObject(for: Basic.entity)
44     }
45     
46     func decksSortedById() -> [Deck] {
47         
48         let sortDec = NSSortDescriptor(key: #keyPath(Deck.id), ascending: true)
49         
50         guard let decks = try? objects(of: Deck.entity, sortDescriptors: [sortDec]) else { return [] }
51         
52         return decks
53     }
54     
55     func deck(by id: Int) -> Deck? {
56         
57         let p = NSPredicate(#keyPath(Deck.id), equal: id)
58         
59         guard let decks = try? objects(of: Deck.entity, predicate: p) else { return nil }
60         
61         return decks.first
62     }
63     
64     func kenzoDock(by dockId: Int) -> KenzoDock? {
65         
66         let dockPredicate = NSPredicate(#keyPath(KenzoDock.id), equal: dockId)
67         
68         guard let kenzoDocks = try? objects(of: KenzoDock.entity, predicate: dockPredicate) else { return nil }
69         
70         return kenzoDocks.first
71     }
72     
73     func mapArea(by id: Int) -> MasterMapArea? {
74         
75         let predicate = NSPredicate(#keyPath(MasterMapArea.id), equal: id)
76         guard let mapAreas = try? objects(of: MasterMapArea.entity, predicate: predicate) else { return nil }
77         
78         return mapAreas.first
79     }
80     
81     func mapInfo(area: Int, no: Int) -> MasterMapInfo? {
82         
83         let predicate = NSPredicate.empty
84             .and(NSPredicate(#keyPath(MasterMapInfo.maparea_id), equal: area))
85             .and(NSPredicate(#keyPath(MasterMapInfo.no), equal: no))
86         
87         guard let mapInfos = try? objects(of: MasterMapInfo.entity, predicate: predicate) else { return nil }
88         
89         return mapInfos.first
90     }
91     
92     func masterMission(by id: Int) -> MasterMission? {
93         
94         let p = NSPredicate(#keyPath(MasterMission.id), equal: id)
95         
96         guard let missions = try? objects(of: MasterMission.entity, predicate: p) else { return nil }
97         
98         return missions.first
99     }
100     
101     func masterShips() -> [MasterShip] {
102         
103         guard let ships = try? objects(of: MasterShip.entity) else { return [] }
104         
105         return ships
106     }
107     
108     func sortedMasterShipsById() -> [MasterShip] {
109         
110         let sortDesc = NSSortDescriptor(key: #keyPath(MasterShip.id), ascending: true)
111         
112         guard let ships = try? objects(of: MasterShip.entity, sortDescriptors: [sortDesc]) else { return [] }
113         
114         return ships
115     }
116     
117     func masterShip(by id: Int) -> MasterShip? {
118         
119         let p = NSPredicate(#keyPath(MasterShip.id), equal: id)
120         
121         guard let ships = try? objects(of: MasterShip.entity, predicate: p) else { return nil }
122         
123         return ships.first
124     }
125     
126     func sortedMasterSlotItemsById() -> [MasterSlotItem] {
127         
128         let sortDesc = NSSortDescriptor(key: #keyPath(MasterSlotItem.id), ascending: true)
129         
130         guard let masterSlotItems = try? objects(of: MasterSlotItem.entity, sortDescriptors: [sortDesc]) else { return [] }
131         
132         return masterSlotItems
133     }
134     
135     func masterSlotItems() -> [MasterSlotItem] {
136         
137         guard let masterSlotItems = try? objects(of: MasterSlotItem.entity) else { return [] }
138         
139         return masterSlotItems
140     }
141     
142     func masterSlotItem(by id: Int) -> MasterSlotItem? {
143         
144         let p = NSPredicate(#keyPath(MasterSlotItem.id), equal: id)
145         
146         guard let masterSlotItems = try? objects(of: MasterSlotItem.entity, predicate: p) else { return nil }
147         
148         return masterSlotItems.first
149     }
150     
151     func masterSlotItemEquipType(by id: Int) -> MasterSlotItemEquipType? {
152         
153         let predicate = NSPredicate(#keyPath(MasterSlotItemEquipType.id), equal: id)
154         
155         guard let types = try? objects(of: MasterSlotItemEquipType.entity, predicate: predicate) else { return nil }
156         
157         return types.first
158     }
159     
160     func masterSTypes() -> [MasterSType] {
161         
162         guard let masterSTypes = try? objects(of: MasterSType.entity) else { return [] }
163         
164         return masterSTypes
165     }
166     
167     func sortedMasterSTypesById() -> [MasterSType] {
168         
169         let sortDesc = NSSortDescriptor(key: #keyPath(MasterSType.id), ascending: true)
170         
171         guard let masterSTypes = try? objects(of: MasterSType.entity, sortDescriptors: [sortDesc]) else { return [] }
172         
173         return masterSTypes
174     }
175     
176     func material() -> Material? {
177         
178         guard let materials = try? objects(of: Material.entity) else { return nil }
179         
180         return materials.first
181     }
182     
183     func createMaterial() -> Material? {
184         
185         return insertNewObject(for: Material.entity)
186     }
187     
188     func nyukyoDock(by id: Int) -> NyukyoDock? {
189         
190         let p = NSPredicate(#keyPath(NyukyoDock.id), equal: id)
191         
192         guard let ndocks = try? objects(of: NyukyoDock.entity, predicate: p) else { return nil }
193         
194         return ndocks.first
195     }
196     
197     func ships(byDeckId deckId: Int) -> [Ship] {
198         
199         let predicate = NSPredicate(#keyPath(Deck.id), equal: deckId)
200         
201         guard let decks = try? objects(of: Deck.entity, predicate: predicate) else { return [] }
202         guard let deck = decks.first else { return [] }
203         
204         return deck[0..<Deck.maxShipCount]
205     }
206     
207     func ship(by shipId: Int) -> Ship? {
208         
209         if shipId < 1 { return nil }
210         
211         let predicate = NSPredicate(#keyPath(Ship.id), equal: shipId)
212         
213         guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return nil }
214         
215         return ships.first
216     }
217     
218     func ships(by shipId: Int) -> [Ship] {
219         
220         let predicate = NSPredicate(#keyPath(Ship.id), equal: shipId)
221         
222         guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return [] }
223         
224         return ships
225     }
226     
227     func ships(exclude shipIds: [Int]) -> [Ship] {
228         
229         let predicate = NSPredicate.not(NSPredicate(#keyPath(Ship.id), valuesIn: shipIds))
230         
231         guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return [] }
232         
233         return ships
234     }
235     
236     func shipsInFleet() -> [Ship] {
237         
238         let predicate = NSPredicate(#keyPath(Ship.fleet), notEqual: 0)
239         
240         guard let ships = try? objects(of: Ship.entity, predicate: predicate) else { return [] }
241         
242         return ships
243     }
244     
245     func createShip() -> Ship? {
246         
247         return insertNewObject(for: Ship.entity)
248     }
249     
250     func masterSlotItemID(by slotItemId: Int) -> Int {
251         
252         if slotItemId < 1 { return 0 }
253         
254         let predicate = NSPredicate(#keyPath(SlotItem.id), equal: slotItemId)
255         
256         guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else { return 0 }
257         guard let slotItem = slotItems.first else { return 0 }
258         
259         return slotItem.master_slotItem.id
260     }
261     
262     func slotItem(by itemId: Int) -> SlotItem? {
263         
264         let p = NSPredicate(#keyPath(SlotItem.id), equal: itemId)
265         
266         guard let slotItems = try? objects(of: SlotItem.entity, predicate: p) else { return nil }
267         
268         return slotItems.first
269     }
270     
271     func sortedSlotItemsById() -> [SlotItem] {
272         
273         let sortDesc = NSSortDescriptor(key: #keyPath(SlotItem.id), ascending: true)
274         
275         guard let slotItems = try? objects(of: SlotItem.entity, sortDescriptors: [sortDesc]) else { return [] }
276         
277         return slotItems
278     }
279     
280     func slotItems() -> [SlotItem] {
281         
282         guard let slotItems = try? objects(of: SlotItem.entity) else { return [] }
283         
284         return slotItems
285     }
286     
287     func slotItems(in itemIds: [Int]) -> [SlotItem] {
288         
289         let predicate = NSPredicate(#keyPath(SlotItem.id), valuesIn: itemIds)
290         
291         guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else { return [] }
292         
293         return slotItems
294     }
295     
296     func slotItems(exclude itemIds: [Int]) -> [SlotItem] {
297         
298         let predicate = NSPredicate.not(NSPredicate(#keyPath(SlotItem.id), valuesIn: itemIds))
299         
300         guard let slotItems = try? objects(of: SlotItem.entity, predicate: predicate) else { return [] }
301         
302         return slotItems
303     }
304     
305     func createSlotItem() -> SlotItem? {
306         
307         return insertNewObject(for: SlotItem.entity)
308     }
309     
310     func quests() -> [Quest] {
311         
312         guard let quests = try? objects(of: Quest.entity) else { return [] }
313         
314         return quests
315     }
316     
317     func quest(by no: Int) -> Quest? {
318         
319         let p = NSPredicate(#keyPath(Quest.no), equal: no)
320         
321         guard let quests = try? objects(of: Quest.entity, predicate: p) else { return nil }
322         
323         return quests.first
324     }
325     
326     func quests(in range: CountableClosedRange<Int>) -> [Quest] {
327         
328         let p = NSPredicate(#keyPath(Quest.no), valuesIn: range.map {$0})
329         
330         guard let quests = try? objects(of: Quest.entity, predicate: p) else { return [] }
331         
332         return quests
333     }
334     
335     func sortedQuestByNo() -> [Quest] {
336         
337         let sortDesc = NSSortDescriptor(key: #keyPath(Quest.no), ascending: true)
338         
339         guard let quests = try? objects(of: Quest.entity, sortDescriptors: [sortDesc]) else { return [] }
340         
341         return quests
342     }
343     
344     func createQuest() -> Quest? {
345         
346         return insertNewObject(for: Quest.entity)
347     }
348 }