GBA001/Delta/Database/Model/Human/GameCollection.swift
Riley Testut 93119b4714 Reorganizes Xcode project structure
Merges “Common” folder into main Delta target folder
2016-12-20 18:24:43 -06:00

65 lines
1.8 KiB
Swift

//
// GameCollection.swift
// Delta
//
// Created by Riley Testut on 11/1/15.
// Copyright © 2015 Riley Testut. All rights reserved.
//
import CoreData
import DeltaCore
import SNESDeltaCore
import GBADeltaCore
@objc(GameCollection)
public class GameCollection: _GameCollection
{
var name: String
{
let gameType = GameType(rawValue: self.identifier)
return gameType.localizedName
}
var shortName: String
{
let gameType = GameType(rawValue: self.identifier)
return gameType.localizedShortName
}
class func gameSystemCollectionForPathExtension(_ pathExtension: String?, inManagedObjectContext managedObjectContext: NSManagedObjectContext) -> GameCollection
{
let identifier: String
let index: Int16
switch pathExtension ?? ""
{
case "smc": fallthrough
case "sfc": fallthrough
case "fig":
identifier = GameType.snes.rawValue
index = 1990
case "gba":
identifier = GameType.gba.rawValue
index = 2001
default:
identifier = GameType.delta.rawValue
index = Int16(INT16_MAX)
}
let predicate = NSPredicate(format: "%K == %@", #keyPath(GameCollection.identifier), identifier)
var gameCollection = GameCollection.instancesWithPredicate(predicate, inManagedObjectContext: managedObjectContext, type: GameCollection.self).first
if gameCollection == nil
{
gameCollection = GameCollection.insertIntoManagedObjectContext(managedObjectContext)
gameCollection?.identifier = identifier
gameCollection?.index = index
}
return gameCollection!
}
}