OSDN Git Service

staticプロパティをインスタンスプロパティに変更
[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 import Doutaku
10
11 extension ServerDataStore {
12     
13     func airBases() -> [AirBase] {
14         
15         guard let airbase = try? objects(of: AirBase.self) else {
16             
17             return []
18         }
19         
20         return airbase
21     }
22     
23     func airBase(area: Int, base: Int) -> AirBase? {
24         
25         let predicate = Predicate(\AirBase.area_id, equalTo: area)
26             .and(Predicate(\AirBase.rid, equalTo: base))
27         
28         guard let airBases = try? objects(of: AirBase.self, predicate: predicate) else {
29             
30             return nil
31         }
32         
33         return airBases.first
34     }
35     
36     func createAirBasePlaneInfo() -> AirBasePlaneInfo? {
37         
38         return insertNewObject(for: AirBasePlaneInfo.self)
39     }
40     
41     func basic() -> Basic? {
42         
43         guard let basics = try? objects(of: Basic.self) else {
44             
45             return nil
46         }
47         
48         return basics.first
49     }
50     
51     func createBasic() -> Basic? {
52         
53         return insertNewObject(for: Basic.self)
54     }
55     
56     func decksSortedById() -> [Deck] {
57         
58         let sortDecs = SortDescriptors(keyPath: \Deck.id, ascending: true)
59         
60         guard let decks = try? objects(of: Deck.self, sortDescriptors: sortDecs) else {
61             
62             return []
63         }
64         
65         return decks
66     }
67     
68     func deck(by id: Int) -> Deck? {
69         
70         let predicate = Predicate(\Deck.id, equalTo: id)
71         
72         guard let decks = try? objects(of: Deck.self, predicate: predicate) else {
73             
74             return nil
75         }
76         
77         return decks.first
78     }
79     
80     func kenzoDock(by dockId: Int) -> KenzoDock? {
81         
82         let predicate = Predicate(\KenzoDock.id, equalTo: dockId)
83         
84         guard let kenzoDocks = try? objects(of: KenzoDock.self, predicate: predicate) else {
85             
86             return nil
87         }
88         
89         return kenzoDocks.first
90     }
91     
92     func mapArea(by id: Int) -> MasterMapArea? {
93         
94         let predicate = Predicate(\MasterMapArea.id, equalTo: id)
95         
96         guard let mapAreas = try? objects(of: MasterMapArea.self, predicate: predicate) else {
97             
98             return nil
99         }
100         
101         return mapAreas.first
102     }
103     
104     func mapInfo(area: Int, no: Int) -> MasterMapInfo? {
105         
106         let predicate = Predicate(\MasterMapInfo.maparea_id, equalTo: area)
107             .and(Predicate(\MasterMapInfo.no, equalTo: no))
108         
109         guard let mapInfos = try? objects(of: MasterMapInfo.self, predicate: predicate) else {
110             
111             return nil
112         }
113         
114         return mapInfos.first
115     }
116     
117     func masterMission(by id: Int) -> MasterMission? {
118         
119         let predicate = Predicate(\MasterMission.id, equalTo: id)
120         
121         guard let missions = try? objects(of: MasterMission.self, predicate: predicate) else {
122             
123             return nil
124         }
125         
126         return missions.first
127     }
128     
129     func masterShips() -> [MasterShip] {
130         
131         guard let ships = try? objects(of: MasterShip.self) else {
132             
133             return []
134         }
135         
136         return ships
137     }
138     
139     func sortedMasterShipsById() -> [MasterShip] {
140         
141         let sortDescs = SortDescriptors(keyPath: \MasterShip.id, ascending: true)
142         
143         guard let ships = try? objects(of: MasterShip.self, sortDescriptors: sortDescs) else {
144             
145             return []
146         }
147         
148         return ships
149     }
150     
151     func masterShip(by id: Int) -> MasterShip? {
152         
153         let predicate = Predicate(\MasterShip.id, equalTo: id)
154         
155         guard let ships = try? objects(of: MasterShip.self, predicate: predicate) else {
156             
157             return nil
158         }
159         
160         return ships.first
161     }
162     
163     func sortedMasterSlotItemsById() -> [MasterSlotItem] {
164         
165         let sortDescs = SortDescriptors(keyPath: \MasterSlotItem.id, ascending: true)
166         
167         guard let masterSlotItems = try? objects(of: MasterSlotItem.self, sortDescriptors: sortDescs) else {
168             
169             return []
170         }
171         
172         return masterSlotItems
173     }
174     
175     func masterSlotItems() -> [MasterSlotItem] {
176         
177         guard let masterSlotItems = try? objects(of: MasterSlotItem.self) else {
178             
179             return []
180         }
181         
182         return masterSlotItems
183     }
184     
185     func masterSlotItem(by id: Int) -> MasterSlotItem? {
186         
187         let predicate = Predicate(\MasterSlotItem.id, equalTo: id)
188         
189         guard let masterSlotItems = try? objects(of: MasterSlotItem.self, predicate: predicate) else {
190             
191             return nil
192         }
193         
194         return masterSlotItems.first
195     }
196     
197     func masterSlotItemEquipType(by id: Int) -> MasterSlotItemEquipType? {
198         
199         let predicate = Predicate(\MasterSlotItemEquipType.id, equalTo: id)
200         
201         guard let types = try? objects(of: MasterSlotItemEquipType.self, predicate: predicate) else {
202             
203             return nil
204         }
205         
206         return types.first
207     }
208     
209     func masterSTypes() -> [MasterSType] {
210         
211         guard let masterSTypes = try? objects(of: MasterSType.self) else {
212             
213             return []
214         }
215         
216         return masterSTypes
217     }
218     
219     func sortedMasterSTypesById() -> [MasterSType] {
220         
221         let sortDescs = SortDescriptors(keyPath: \MasterSType.id, ascending: true)
222         
223         guard let masterSTypes = try? objects(of: MasterSType.self, sortDescriptors: sortDescs) else {
224             
225             return []
226         }
227         
228         return masterSTypes
229     }
230     
231     func material() -> Material? {
232         
233         guard let materials = try? objects(of: Material.self) else {
234             
235             return nil
236         }
237         
238         return materials.first
239     }
240     
241     func createMaterial() -> Material? {
242         
243         return insertNewObject(for: Material.self)
244     }
245     
246     func nyukyoDock(by id: Int) -> NyukyoDock? {
247         
248         let predicate = Predicate(\NyukyoDock.id, equalTo: id)
249         
250         guard let ndocks = try? objects(of: NyukyoDock.self, predicate: predicate) else {
251             
252             return nil
253         }
254         
255         return ndocks.first
256     }
257     
258     func ships(byDeckId deckId: Int) -> [Ship] {
259         
260         let predicate = Predicate(\Deck.id, equalTo: deckId)
261         
262         guard let decks = try? objects(of: Deck.self, predicate: predicate) else {
263             
264             return []
265         }
266         
267         guard let deck = decks.first else {
268             
269             return []
270         }
271         
272         return deck[0..<Deck.maxShipCount]
273     }
274     
275     func ship(by shipId: Int) -> Ship? {
276         
277         if shipId < 1 {
278             
279             return nil
280         }
281         
282         let predicate = Predicate(\Ship.id, equalTo: shipId)
283         
284         guard let ships = try? objects(of: Ship.self, predicate: predicate) else {
285             
286             return nil
287         }
288         
289         return ships.first
290     }
291     
292     func ships(by shipId: Int) -> [Ship] {
293         
294         let predicate = Predicate(\Ship.id, equalTo: shipId)
295         
296         guard let ships = try? objects(of: Ship.self, predicate: predicate) else {
297             
298             return []
299         }
300         
301         return ships
302     }
303     
304     func ships(exclude shipIds: [Int]) -> [Ship] {
305         
306         let predicate = Predicate(\Ship.id, in: shipIds).negate()
307         
308         guard let ships = try? objects(of: Ship.self, predicate: predicate) else {
309             
310             return []
311         }
312         
313         return ships
314     }
315     
316     func shipsInFleet() -> [Ship] {
317         
318         let predicate = Predicate(\Ship.fleet, notEqualTo: 0)
319         
320         guard let ships = try? objects(of: Ship.self, predicate: predicate) else {
321             
322             return []
323         }
324         
325         return ships
326     }
327     
328     func createShip() -> Ship? {
329         
330         return insertNewObject(for: Ship.self)
331     }
332     
333     func masterSlotItemID(by slotItemId: Int) -> Int {
334         
335         if slotItemId < 1 {
336             
337             return 0
338         }
339         
340         let predicate = Predicate(\SlotItem.id, equalTo: slotItemId)
341         
342         guard let slotItems = try? objects(of: SlotItem.self, predicate: predicate) else {
343             
344             return 0
345         }
346         guard let slotItem = slotItems.first else {
347             
348             return 0
349         }
350         
351         return slotItem.master_slotItem.id
352     }
353     
354     func slotItem(by itemId: Int) -> SlotItem? {
355         
356         let predicate = Predicate(\SlotItem.id, equalTo: itemId)
357         
358         guard let slotItems = try? objects(of: SlotItem.self, predicate: predicate) else {
359             
360             return nil
361         }
362         
363         return slotItems.first
364     }
365     
366     func sortedSlotItemsById() -> [SlotItem] {
367         
368         let sortDescs = SortDescriptors(keyPath: \SlotItem.id, ascending: true)
369         
370         guard let slotItems = try? objects(of: SlotItem.self, sortDescriptors: sortDescs) else {
371             
372             return []
373         }
374         
375         return slotItems
376     }
377     
378     func slotItems() -> [SlotItem] {
379         
380         guard let slotItems = try? objects(of: SlotItem.self) else {
381             
382             return []
383         }
384         
385         return slotItems
386     }
387     
388     func slotItems(in itemIds: [Int]) -> [SlotItem] {
389         
390         let predicate = Predicate(\SlotItem.id, in: itemIds)
391         
392         guard let slotItems = try? objects(of: SlotItem.self, predicate: predicate) else {
393             
394             return []
395         }
396         
397         return slotItems
398     }
399     
400     func slotItems(exclude itemIds: [Int]) -> [SlotItem] {
401         
402         let predicate = Predicate(\SlotItem.id, in: itemIds).negate()
403         
404         guard let slotItems = try? objects(of: SlotItem.self, predicate: predicate) else {
405             
406             return []
407         }
408         
409         return slotItems
410     }
411     
412     func createSlotItem() -> SlotItem? {
413         
414         return insertNewObject(for: SlotItem.self)
415     }
416     
417     func quests() -> [Quest] {
418         
419         guard let quests = try? objects(of: Quest.self) else {
420             
421             return []
422         }
423         
424         return quests
425     }
426     
427     func quest(by no: Int) -> Quest? {
428         
429         let predicate = Predicate(\Quest.no, equalTo: no)
430         
431         guard let quests = try? objects(of: Quest.self, predicate: predicate) else {
432             
433             return nil
434         }
435         
436         return quests.first
437     }
438     
439     func quests(in range: CountableClosedRange<Int>) -> [Quest] {
440         
441         let predicate = Predicate(\Quest.no, in: range.map { $0 })
442         
443         guard let quests = try? objects(of: Quest.self, predicate: predicate) else {
444             
445             return []
446         }
447         
448         return quests
449     }
450     
451     func sortedQuestByNo() -> [Quest] {
452         
453         let sortDescs = SortDescriptors(keyPath: \Quest.no, ascending: true)
454         
455         guard let quests = try? objects(of: Quest.self, sortDescriptors: sortDescs) else {
456             
457             return []
458         }
459         
460         return quests
461     }
462     
463     func createQuest() -> Quest? {
464         
465         return insertNewObject(for: Quest.self)
466     }
467 }