forked from sagnik/Project_Velocity
33 lines
1.1 KiB
Swift
33 lines
1.1 KiB
Swift
import Foundation
|
|
|
|
enum InventoryModeAvailability {
|
|
static let dollhouseAssetCandidates: [(name: String, ext: String)] = [
|
|
("Building", "usdz"),
|
|
("Building", "scn"),
|
|
]
|
|
|
|
static func hasShippedDollhouseAsset(in bundle: Bundle = .main) -> Bool {
|
|
dollhouseAssetCandidates.contains { candidate in
|
|
bundle.url(forResource: candidate.name, withExtension: candidate.ext) != nil
|
|
}
|
|
}
|
|
|
|
static func productionVisibleModes(hasDollhouseAsset: Bool) -> [InventoryStore.Mode] {
|
|
[.sunseeker, .dreamWeaver]
|
|
}
|
|
|
|
static func sanitizedProductionSelection(
|
|
_ candidate: InventoryStore.Mode,
|
|
hasDollhouseAsset: Bool
|
|
) -> InventoryStore.Mode {
|
|
productionVisibleModes(hasDollhouseAsset: hasDollhouseAsset).contains(candidate) ? candidate : .sunseeker
|
|
}
|
|
|
|
static func modeSummaryText(hasDollhouseAsset: Bool) -> String {
|
|
let base = productionVisibleModes(hasDollhouseAsset: hasDollhouseAsset).map(\.rawValue)
|
|
return hasDollhouseAsset
|
|
? (base + ["Map-to-Dollhouse"]).joined(separator: " · ")
|
|
: base.joined(separator: " · ")
|
|
}
|
|
}
|