diff --git a/.swiftlint.yml b/.swiftlint.yml index 3891e83..ec780f8 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -4,4 +4,7 @@ excluded: # paths to ignore during linting. Takes precedence over `included`. line_length: - 150 # warning - - 200 # error \ No newline at end of file + - 200 # error + +cyclomatic_complexity: + ignores_case_statements: true \ No newline at end of file diff --git a/Life Saver Screensaver/Configuration/ConfigureSheet.xib b/Life Saver Screensaver/Configuration/ConfigureSheet.xib index 6f938a7..3c8a390 100644 --- a/Life Saver Screensaver/Configuration/ConfigureSheet.xib +++ b/Life Saver Screensaver/Configuration/ConfigureSheet.xib @@ -13,6 +13,7 @@ + @@ -23,10 +24,10 @@ - + - + - + @@ -51,7 +52,7 @@ DQ - + @@ -119,7 +120,7 @@ DQ - + @@ -133,7 +134,7 @@ DQ - + @@ -155,7 +156,7 @@ DQ - + @@ -163,7 +164,7 @@ DQ - + @@ -236,11 +237,19 @@ DQ + + + + + + + + - + - + @@ -248,7 +257,7 @@ DQ - + @@ -264,12 +273,31 @@ DQ + + + + + + + + + + @@ -284,24 +312,29 @@ DQ + + + + + - + @@ -312,7 +345,7 @@ DQ - + @@ -322,7 +355,7 @@ DQ - + diff --git a/Life Saver Screensaver/Configuration/ConfigureSheetController.swift b/Life Saver Screensaver/Configuration/ConfigureSheetController.swift index 5ddce93..4e52e99 100644 --- a/Life Saver Screensaver/Configuration/ConfigureSheetController.swift +++ b/Life Saver Screensaver/Configuration/ConfigureSheetController.swift @@ -5,6 +5,9 @@ // Created by Brad Root on 5/21/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import Cocoa import SpriteKit @@ -14,7 +17,7 @@ final class ConfigureSheetController: NSObject { // MARK: - Presets - fileprivate let presets: [LifeSettings] = lifePresets + fileprivate let presets: [LifePreset] = lifePresets // MARK: - Config Actions and Outlets @@ -24,14 +27,38 @@ final class ConfigureSheetController: NSObject { @IBAction func stylePresetsAction(_ sender: NSSegmentedControl) { switch sender.selectedSegment { case 0: - let simulationSettings = LifeSettings(title: "Simulation", appearanceMode: nil, squareSize: .small, animationSpeed: .fast, color1: nil, color2: nil, color3: nil) - setupFields(with: simulationSettings) + let simulationSettings = LifePreset( + title: "Simulation", + appearanceMode: nil, + squareSize: .small, + animationSpeed: .fast, + color1: nil, + color2: nil, + color3: nil + ) + loadPreset(simulationSettings) case 2: - let abstractSettings = LifeSettings(title: "Abstract", appearanceMode: nil, squareSize: .large, animationSpeed: .slow, color1: nil, color2: nil, color3: nil) - setupFields(with: abstractSettings) + let abstractSettings = LifePreset( + title: "Abstract", + appearanceMode: nil, + squareSize: .large, + animationSpeed: .slow, + color1: nil, + color2: nil, + color3: nil + ) + loadPreset(abstractSettings) default: - let defaultSettings = LifeSettings(title: "Defaults", appearanceMode: nil, squareSize: .medium, animationSpeed: .normal, color1: nil, color2: nil, color3: nil) - setupFields(with: defaultSettings) + let defaultSettings = LifePreset( + title: "Defaults", + appearanceMode: nil, + squareSize: .medium, + animationSpeed: .normal, + color1: nil, + color2: nil, + color3: nil + ) + loadPreset(defaultSettings) } } @@ -40,7 +67,7 @@ final class ConfigureSheetController: NSObject { guard let title = sender.titleOfSelectedItem else { return } let soughtPreset = presets.filter { $0.title == title }.first if let preset = soughtPreset { - setupFields(with: preset) + loadPreset(preset) } } @@ -98,6 +125,12 @@ final class ConfigureSheetController: NSObject { updateColorPresetsControl() } + @IBOutlet var randomColorPresetCheck: NSButton! + @IBAction func randomColorPresetAction(_ sender: NSButtonCell) { + manager.setRandomColorPreset(sender.state == .on ? true : false) + updateColorPresetsControl() + } + @IBAction func twitterAction(_: NSButton) { URLType.twitter.open() } @@ -126,10 +159,13 @@ final class ConfigureSheetController: NSObject { let myBundle = Bundle(for: ConfigureSheetController.self) myBundle.loadNibNamed("ConfigureSheet", owner: self, topLevelObjects: nil) - setupFields() + randomColorPresetCheck.toolTip = "Enable this to have a random color preset selected each time the screensaver loads." + + loadPresets() + loadSettings() } - fileprivate func setupFields() { + fileprivate func loadSettings() { switch manager.appearanceMode { case .dark: appearanceControl.selectedSegment = 0 @@ -163,12 +199,13 @@ final class ConfigureSheetController: NSObject { color2Well.color = manager.color2 color3Well.color = manager.color3 - setupPresets() + randomColorPresetCheck.state = manager.randomColorPreset ? .on : .off + updateStylePresetsControl() updateColorPresetsControl() } - fileprivate func setupPresets() { + fileprivate func loadPresets() { presetsButton.removeAllItems() var presetTitles: [String] = [] for preset in presets { @@ -192,56 +229,16 @@ final class ConfigureSheetController: NSObject { fileprivate func updateColorPresetsControl() { let filteredPresets = presets.filter { $0.color1 == manager.color1 && $0.color2 == manager.color2 && $0.color3 == manager.color3 } presetsButton.selectItem(withTitle: filteredPresets.first?.title ?? "Custom") - } - fileprivate func setupFields(with preset: LifeSettings) { - if let appearanceMode = preset.appearanceMode { - switch appearanceMode { - case .dark: - appearanceControl.selectedSegment = 0 - case .light: - appearanceControl.selectedSegment = 1 - } - manager.setAppearanceMode(appearanceMode) - } - if let squareSize = preset.squareSize { - switch squareSize { - case .small: - squareSizeControl.selectedSegment = 0 - case .medium: - squareSizeControl.selectedSegment = 1 - case .large: - squareSizeControl.selectedSegment = 2 - case .superSmall: - squareSizeControl.selectedSegment = 0 - case .verySmall: - squareSizeControl.selectedSegment = 0 - } - manager.setSquareSize(squareSize) - } + presetsButton.isEnabled = !manager.randomColorPreset + color1Well.isEnabled = !manager.randomColorPreset + color2Well.isEnabled = !manager.randomColorPreset + color3Well.isEnabled = !manager.randomColorPreset + appearanceControl.isEnabled = !manager.randomColorPreset + } - if let animationSpeed = preset.animationSpeed { - switch animationSpeed { - case .normal: - animationSpeedControl.selectedSegment = 1 - case .fast: - animationSpeedControl.selectedSegment = 0 - case .slow: - animationSpeedControl.selectedSegment = 2 - } - manager.setAnimationSpeed(animationSpeed) - } - if let color1 = preset.color1 { - color1Well.color = color1 - manager.setColor(color1, for: .color1) - } - if let color2 = preset.color2 { - color2Well.color = color2 - manager.setColor(color2, for: .color2) - } - if let color3 = preset.color3 { - color3Well.color = color3 - manager.setColor(color3, for: .color3) - } + fileprivate func loadPreset(_ preset: LifePreset) { + manager.configure(with: preset) + loadSettings() } } diff --git a/Life Saver Screensaver/LifeDatabase.swift b/Life Saver Screensaver/LifeDatabase.swift index 2c4977e..bc63766 100644 --- a/Life Saver Screensaver/LifeDatabase.swift +++ b/Life Saver Screensaver/LifeDatabase.swift @@ -5,6 +5,9 @@ // Created by Brad Root on 5/21/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import ScreenSaver import SpriteKit @@ -18,6 +21,7 @@ struct LifeDatabase { static let color1 = "color1" static let color2 = "color2" static let color3 = "color3" + static let randomColorPreset = "randomColorPreset" } static var standard: ScreenSaverDefaults { @@ -31,7 +35,8 @@ struct LifeDatabase { Key.squareSize: SquareSize.medium.rawValue, Key.color1: archiveData(SKColor.defaultColor1), Key.color2: archiveData(SKColor.defaultColor2), - Key.color3: archiveData(SKColor.defaultColor3)]) + Key.color3: archiveData(SKColor.defaultColor3), + Key.randomColorPreset: false]) return database } @@ -62,6 +67,14 @@ extension ScreenSaverDefaults { set(animationSpeed.rawValue, for: LifeDatabase.Key.animationSpeed) } + var randomColorPreset: Bool { + return bool(forKey: LifeDatabase.Key.randomColorPreset) + } + + func set(randomColorPreset: Bool) { + set(randomColorPreset, for: LifeDatabase.Key.randomColorPreset) + } + func getColor(_ color: Colors) -> SKColor { switch color { case .color1: diff --git a/Life Saver Screensaver/LifeScreenSaverView.swift b/Life Saver Screensaver/LifeScreenSaverView.swift index 3437dc4..2681fe8 100644 --- a/Life Saver Screensaver/LifeScreenSaverView.swift +++ b/Life Saver Screensaver/LifeScreenSaverView.swift @@ -5,6 +5,9 @@ // Created by Bradley Root on 5/18/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import Foundation import ScreenSaver @@ -50,10 +53,15 @@ final class LifeScreenSaverView: ScreenSaverView { self.spriteView = spriteView addSubview(spriteView) + if manager.randomColorPreset, let preset = lifePresets.randomElement() { + manager.configure(with: preset) + } + scene.appearanceMode = manager.appearanceMode scene.squareSize = manager.squareSize scene.animationSpeed = manager.animationSpeed scene.aliveColors = [manager.color1, manager.color2, manager.color3] + scene.isUserInteractionEnabled = false spriteView.presentScene(scene) diff --git a/Life Saver Screensaver/LifeManager.swift b/Life Saver Shared/LifeManager.swift similarity index 58% rename from Life Saver Screensaver/LifeManager.swift rename to Life Saver Shared/LifeManager.swift index b86c527..a06e1d8 100644 --- a/Life Saver Screensaver/LifeManager.swift +++ b/Life Saver Shared/LifeManager.swift @@ -5,6 +5,9 @@ // Created by Brad Root on 5/21/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import Foundation import ScreenSaver @@ -17,6 +20,7 @@ final class LifeManager { private(set) var color1: SKColor private(set) var color2: SKColor private(set) var color3: SKColor + private(set) var randomColorPreset: Bool init() { appearanceMode = LifeDatabase.standard.appearanceMode @@ -25,6 +29,38 @@ final class LifeManager { color1 = LifeDatabase.standard.getColor(.color1) color2 = LifeDatabase.standard.getColor(.color2) color3 = LifeDatabase.standard.getColor(.color3) + randomColorPreset = LifeDatabase.standard.randomColorPreset + } + + func configure(with preset: LifePreset) { + if let appearanceMode = preset.appearanceMode { + setAppearanceMode(appearanceMode) + } + + if let squareSize = preset.squareSize { + setSquareSize(squareSize) + } + + if let animationSpeed = preset.animationSpeed { + setAnimationSpeed(animationSpeed) + } + + if let color1 = preset.color1 { + setColor(color1, for: .color1) + } + + if let color2 = preset.color2 { + setColor(color2, for: .color2) + } + + if let color3 = preset.color3 { + setColor(color3, for: .color3) + } + } + + func setRandomColorPreset(_ randomColorPreset: Bool) { + self.randomColorPreset = randomColorPreset + LifeDatabase.standard.set(randomColorPreset: randomColorPreset) } func setAppearanceMode(_ appearanceMode: Appearance) { diff --git a/Life Saver Shared/LifeNode.swift b/Life Saver Shared/LifeNode.swift index aa7ed70..4487d59 100644 --- a/Life Saver Shared/LifeNode.swift +++ b/Life Saver Shared/LifeNode.swift @@ -5,6 +5,9 @@ // Created by Brad Root on 5/23/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import SpriteKit @@ -15,12 +18,14 @@ class LifeNode: SKSpriteNode { var alive: Bool var timeInState: Int = 0 var aliveColor: SKColor + var deadColor: SKColor var neighbors: [LifeNode] = [] init(relativePosition: CGPoint, alive: Bool, color: SKColor, size: CGSize) { self.relativePosition = relativePosition self.alive = alive aliveColor = color + deadColor = color super.init(texture: squareTexture, color: aliveColor, size: size) anchorPoint = CGPoint(x: 0, y: 0) colorBlendFactor = 1 @@ -54,10 +59,13 @@ class LifeNode: SKSpriteNode { if !alive { timeInState += 1 - if timeInState >= 50 { + if timeInState == 30 { + removeAllActions() let fadeAction = SKAction.fadeAlpha(to: 0, duration: duration) - fadeAction.timingMode = .easeIn - run(fadeAction) + let colorAction = SKAction.colorize(with: deadColor, colorBlendFactor: 1, duration: duration) + let actionGroup = SKAction.group([fadeAction, colorAction]) + actionGroup.timingMode = .easeIn + run(actionGroup) } return diff --git a/Life Saver Shared/LifeSettings.swift b/Life Saver Shared/LifePreset.swift similarity index 93% rename from Life Saver Shared/LifeSettings.swift rename to Life Saver Shared/LifePreset.swift index 9915b7b..db032b4 100644 --- a/Life Saver Shared/LifeSettings.swift +++ b/Life Saver Shared/LifePreset.swift @@ -1,14 +1,17 @@ // -// LifeSettings.swift +// LifePreset.swift // Life Saver Screensaver // // Created by Brad Root on 5/23/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import SpriteKit -struct LifeSettings { +struct LifePreset { let title: String let appearanceMode: Appearance? let squareSize: SquareSize? @@ -50,7 +53,7 @@ extension SKColor { } let lifePresets = [ - LifeSettings( + LifePreset( title: "Santa Fe", appearanceMode: .dark, squareSize: nil, @@ -59,7 +62,7 @@ let lifePresets = [ color2: SKColor.defaultColor2, color3: SKColor.defaultColor3 ), - LifeSettings( + LifePreset( title: "Braineater", appearanceMode: .dark, squareSize: nil, @@ -68,7 +71,7 @@ let lifePresets = [ color2: SKColor(red: 13 / 255.0, green: 17 / 255.0, blue: 108 / 255.0, alpha: 1.00), color3: SKColor(red: 12 / 255.0, green: 67 / 255.0, blue: 108 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Reign In Blood", appearanceMode: .dark, squareSize: nil, @@ -77,7 +80,7 @@ let lifePresets = [ color2: SKColor(red: 95 / 255.0, green: 7 / 255.0, blue: 0 / 255.0, alpha: 1.00), color3: SKColor(red: 55 / 255.0, green: 55 / 255.0, blue: 55 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Swamp Girl", appearanceMode: .dark, squareSize: nil, @@ -86,7 +89,7 @@ let lifePresets = [ color2: SKColor(red: 174 / 255.0, green: 129 / 255.0, blue: 255 / 255.0, alpha: 1.00), color3: SKColor(red: 6 / 255.0, green: 66 / 255.0, blue: 110 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "This Is America", appearanceMode: .dark, squareSize: nil, @@ -95,7 +98,7 @@ let lifePresets = [ color2: SKColor(red: 39 / 255.0, green: 65 / 255.0, blue: 110 / 255.0, alpha: 1.00), color3: SKColor(red: 212 / 255.0, green: 205 / 255.0, blue: 196 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "The Noun Project", appearanceMode: .dark, squareSize: nil, @@ -104,7 +107,7 @@ let lifePresets = [ color2: SKColor(red: 255 / 255.0, green: 255 / 255.0, blue: 255 / 255.0, alpha: 1.00), color3: SKColor(red: 255 / 255.0, green: 255 / 255.0, blue: 255 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Lingo", appearanceMode: .light, squareSize: nil, @@ -113,7 +116,7 @@ let lifePresets = [ color2: SKColor(red: 88 / 255.0, green: 137 / 255.0, blue: 251 / 255.0, alpha: 1.00), color3: SKColor(red: 38 / 255.0, green: 205 / 255.0, blue: 105 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Deuteranopia", appearanceMode: .dark, squareSize: nil, @@ -122,7 +125,7 @@ let lifePresets = [ color2: SKColor(red: 88 / 255.0, green: 123 / 255.0, blue: 127 / 255.0, alpha: 1.00), color3: SKColor(red: 255 / 255.0, green: 173 / 255.0, blue: 105 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Retro Pastel", appearanceMode: .light, squareSize: nil, @@ -131,7 +134,7 @@ let lifePresets = [ color2: SKColor(red: 244 / 255.0, green: 243 / 255.0, blue: 216 / 255.0, alpha: 1.00), color3: SKColor(red: 175 / 255.0, green: 211 / 255.0, blue: 213 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Better Days", appearanceMode: .dark, squareSize: nil, @@ -140,7 +143,7 @@ let lifePresets = [ color2: SKColor(red: 205 / 255.0, green: 170 / 255.0, blue: 37 / 255.0, alpha: 1.00), color3: SKColor(red: 114 / 255.0, green: 100 / 255.0, blue: 87 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Bubblegum", appearanceMode: .light, squareSize: nil, @@ -149,7 +152,7 @@ let lifePresets = [ color2: SKColor(red: 255 / 255.0, green: 203 / 255.0, blue: 213 / 255.0, alpha: 1.00), color3: SKColor(red: 191 / 255.0, green: 178 / 255.0, blue: 95 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Teenage Chapstick", appearanceMode: .dark, squareSize: nil, @@ -158,7 +161,7 @@ let lifePresets = [ color2: SKColor(red: 44 / 255.0, green: 80 / 255.0, blue: 80 / 255.0, alpha: 1.00), color3: SKColor(red: 156 / 255.0, green: 154 / 255.0, blue: 23 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Georgia", appearanceMode: .light, squareSize: nil, @@ -167,7 +170,7 @@ let lifePresets = [ color2: SKColor(red: 16 / 255.0, green: 103 / 255.0, blue: 110 / 255.0, alpha: 1.00), color3: SKColor(red: 247 / 255.0, green: 172 / 255.0, blue: 153 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Boysenberry", appearanceMode: .dark, squareSize: nil, @@ -176,7 +179,7 @@ let lifePresets = [ color2: SKColor(red: 56 / 255.0, green: 66 / 255.0, blue: 109 / 255.0, alpha: 1.00), color3: SKColor(red: 160 / 255.0, green: 121 / 255.0, blue: 72 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Tal Véz", appearanceMode: .dark, squareSize: nil, @@ -185,7 +188,7 @@ let lifePresets = [ color2: SKColor(red: 247 / 255.0, green: 201 / 255.0, blue: 177 / 255.0, alpha: 1.00), color3: SKColor(red: 176 / 255.0, green: 197 / 255.0, blue: 223 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Deep Forest", appearanceMode: .dark, squareSize: nil, @@ -194,7 +197,7 @@ let lifePresets = [ color2: SKColor(red: 55 / 255.0, green: 60 / 255.0, blue: 13 / 255.0, alpha: 1.00), color3: SKColor(red: 10 / 255.0, green: 44 / 255.0, blue: 24 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Bite Me", appearanceMode: .dark, squareSize: nil, @@ -203,7 +206,7 @@ let lifePresets = [ color2: SKColor(red: 241 / 255.0, green: 188 / 255.0, blue: 151 / 255.0, alpha: 1.00), color3: SKColor(red: 252 / 255.0, green: 53 / 255.0, blue: 113 / 255.0, alpha: 1.00) ), - LifeSettings( + LifePreset( title: "Custom", appearanceMode: nil, squareSize: nil, @@ -211,5 +214,5 @@ let lifePresets = [ color1: nil, color2: nil, color3: nil - ), + ) ] diff --git a/Life Saver Shared/LifeScene.swift b/Life Saver Shared/LifeScene.swift index 8462a81..0033629 100644 --- a/Life Saver Shared/LifeScene.swift +++ b/Life Saver Shared/LifeScene.swift @@ -5,17 +5,20 @@ // Created by Bradley Root on 5/18/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import GameplayKit import SpriteKit -class LifeScene: SKScene { +final class LifeScene: SKScene { // MARK: - Settings var aliveColors: [SKColor] = [ SKColor.defaultColor1, SKColor.defaultColor2, - SKColor.defaultColor3, + SKColor.defaultColor3 ] var appearanceColor: SKColor = .black @@ -56,6 +59,24 @@ class LifeScene: SKScene { override func didMove(to _: SKView) { backgroundColor = appearanceColor scaleMode = .fill + + switch squareSize { + case .large: + lengthSquares = 7 + heightSquares = 4 + case .small: + lengthSquares = 32 + heightSquares = 18 + case .verySmall: + lengthSquares = 64 + heightSquares = 36 + case .superSmall: + lengthSquares = 128 + heightSquares = 74 + default: + break + } + createLife() } @@ -75,60 +96,44 @@ class LifeScene: SKScene { private var livingNodeHistory: [Int] = [] private var lengthSquares: CGFloat = 16 private var heightSquares: CGFloat = 9 - private var matrix: ToroidalMatrix = ToroidalMatrix(rows: 0, columns: 0, defaultValue: LifeNode(relativePosition: .zero, alive: false, color: .black, size: .zero)) + private var matrix: ToroidalMatrix = ToroidalMatrix( + rows: 0, + columns: 0, + defaultValue: LifeNode( + relativePosition: .zero, + alive: false, + color: .black, + size: .zero + ) + ) fileprivate func createLife() { - switch squareSize { - case .large: - lengthSquares = 7 - heightSquares = 4 - case .small: - lengthSquares = 32 - heightSquares = 18 - case .verySmall: - lengthSquares = 64 - heightSquares = 36 - case .superSmall: - lengthSquares = 128 - heightSquares = 74 - default: - break - } - - matrix = ToroidalMatrix(rows: Int(lengthSquares), columns: Int(heightSquares), defaultValue: LifeNode(relativePosition: .zero, alive: false, color: .black, size: .zero)) + matrix = ToroidalMatrix( + rows: Int(lengthSquares), + columns: Int(heightSquares), + defaultValue: LifeNode( + relativePosition: .zero, + alive: false, + color: .black, + size: .zero + ) + ) let totalSquares: CGFloat = lengthSquares * heightSquares let squareWidth: CGFloat = size.width / lengthSquares let squareHeight: CGFloat = size.height / heightSquares // Create Nodes - var createdSquares: CGFloat = 0 var nextXValue: Int = 0 var nextYValue: Int = 0 var nextXPosition: CGFloat = 0 var nextYPosition: CGFloat = 0 - while createdSquares < totalSquares { - let squarePosition = CGPoint(x: nextXPosition, y: nextYPosition) - let squareRelativePosition = CGPoint(x: nextXValue, y: nextYValue) + for _ in 1 ... Int(totalSquares) { + let actualPosition = CGPoint(x: nextXPosition, y: nextYPosition) + let relativePosition = CGPoint(x: nextXValue, y: nextYValue) let squareSize = CGSize(width: squareWidth, height: squareHeight) - let newSquare = LifeNode( - relativePosition: squareRelativePosition, - alive: false, - color: appearanceColor, - size: squareSize - ) - addChild(newSquare) - newSquare.position = squarePosition - - if newSquare.alive { - aliveNodes.append(newSquare) - newSquare.color = aliveColors.randomElement()! - } - allNodes.append(newSquare) - matrix[Int(squareRelativePosition.x), Int(squareRelativePosition.y)] = newSquare - - createdSquares += 1 + createLifeSquare(relativePosition, squareSize, actualPosition) if nextXValue == Int(lengthSquares) - 1 { nextXValue = 0 @@ -143,19 +148,41 @@ class LifeScene: SKScene { // Pre-fetch Neighbors for node in allNodes { - var neighbors: [LifeNode] = [] - neighbors.append(matrix[Int(node.relativePosition.x - 1), Int(node.relativePosition.y)]) - neighbors.append(matrix[Int(node.relativePosition.x + 1), Int(node.relativePosition.y)]) - neighbors.append(matrix[Int(node.relativePosition.x), Int(node.relativePosition.y + 1)]) - neighbors.append(matrix[Int(node.relativePosition.x), Int(node.relativePosition.y - 1)]) - neighbors.append(matrix[Int(node.relativePosition.x + 1), Int(node.relativePosition.y + 1)]) - neighbors.append(matrix[Int(node.relativePosition.x - 1), Int(node.relativePosition.y - 1)]) - neighbors.append(matrix[Int(node.relativePosition.x - 1), Int(node.relativePosition.y + 1)]) - neighbors.append(matrix[Int(node.relativePosition.x + 1), Int(node.relativePosition.y - 1)]) - node.neighbors = neighbors + createNeighbors(node) } } + fileprivate func createLifeSquare(_ relativePosition: CGPoint, _ squareSize: CGSize, _ actualPosition: CGPoint) { + let newSquare = LifeNode( + relativePosition: relativePosition, + alive: false, + color: appearanceColor, + size: squareSize + ) + addChild(newSquare) + newSquare.position = actualPosition + + if newSquare.alive { + aliveNodes.append(newSquare) + newSquare.color = aliveColors.randomElement()! + } + allNodes.append(newSquare) + matrix[Int(relativePosition.x), Int(relativePosition.y)] = newSquare + } + + fileprivate func createNeighbors(_ node: LifeNode) { + var neighbors: [LifeNode] = [] + neighbors.append(matrix[Int(node.relativePosition.x - 1), Int(node.relativePosition.y)]) + neighbors.append(matrix[Int(node.relativePosition.x + 1), Int(node.relativePosition.y)]) + neighbors.append(matrix[Int(node.relativePosition.x), Int(node.relativePosition.y + 1)]) + neighbors.append(matrix[Int(node.relativePosition.x), Int(node.relativePosition.y - 1)]) + neighbors.append(matrix[Int(node.relativePosition.x + 1), Int(node.relativePosition.y + 1)]) + neighbors.append(matrix[Int(node.relativePosition.x - 1), Int(node.relativePosition.y - 1)]) + neighbors.append(matrix[Int(node.relativePosition.x - 1), Int(node.relativePosition.y + 1)]) + neighbors.append(matrix[Int(node.relativePosition.x + 1), Int(node.relativePosition.y - 1)]) + node.neighbors = neighbors + } + fileprivate func updateLife() { var dyingNodes: [LifeNode] = [] var livingNodes: [LifeNode] = [] diff --git a/Life Saver Shared/Utilities/FileGrabber.swift b/Life Saver Shared/Utilities/FileGrabber.swift index d1670af..55f63f3 100644 --- a/Life Saver Shared/Utilities/FileGrabber.swift +++ b/Life Saver Shared/Utilities/FileGrabber.swift @@ -5,6 +5,9 @@ // Created by Brad Root on 5/21/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import SpriteKit diff --git a/Life Saver Shared/Utilities/ToroidalMatrix.swift b/Life Saver Shared/Utilities/ToroidalMatrix.swift index 36235ec..4901595 100644 --- a/Life Saver Shared/Utilities/ToroidalMatrix.swift +++ b/Life Saver Shared/Utilities/ToroidalMatrix.swift @@ -23,8 +23,8 @@ struct ToroidalMatrix { subscript(row: Int, column: Int) -> T { get { - let safeRow = 0 ... rows-1 ~= row ? row : row > rows-1 ? 0 : row < 0 ? rows-1 : -1 - let safeColumn = 0 ... columns-1 ~= column ? column : column > columns-1 ? 0 : column < 0 ? columns-1 : -1 + let safeRow = 0 ... rows - 1 ~= row ? row : row > rows - 1 ? 0 : row < 0 ? rows - 1 : -1 + let safeColumn = 0 ... columns - 1 ~= column ? column : column > columns - 1 ? 0 : column < 0 ? columns - 1 : -1 assert(indexIsValid(row: safeRow, column: safeColumn), "Index out of range") return grid[(safeRow * columns) + safeColumn] } diff --git a/Life Saver Shared/Utilities/URLType.swift b/Life Saver Shared/Utilities/URLType.swift index 07035e5..f6caa03 100644 --- a/Life Saver Shared/Utilities/URLType.swift +++ b/Life Saver Shared/Utilities/URLType.swift @@ -5,6 +5,9 @@ // Created by Brad Root on 5/22/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import Cocoa diff --git a/Life Saver macOS/AppDelegate.swift b/Life Saver macOS/AppDelegate.swift index 7ba6881..33a0819 100644 --- a/Life Saver macOS/AppDelegate.swift +++ b/Life Saver macOS/AppDelegate.swift @@ -5,6 +5,9 @@ // Created by Bradley Root on 5/18/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import Cocoa diff --git a/Life Saver macOS/ViewController.swift b/Life Saver macOS/ViewController.swift index 425d885..87a8a86 100644 --- a/Life Saver macOS/ViewController.swift +++ b/Life Saver macOS/ViewController.swift @@ -5,6 +5,9 @@ // Created by Bradley Root on 5/18/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import Cocoa import GameplayKit diff --git a/Life Saver tvOS/AppDelegate.swift b/Life Saver tvOS/AppDelegate.swift index ad9208c..d6b23f9 100644 --- a/Life Saver tvOS/AppDelegate.swift +++ b/Life Saver tvOS/AppDelegate.swift @@ -23,25 +23,13 @@ class AppDelegate: UIResponder, UIApplicationDelegate { return true } - func applicationWillResignActive(_: UIApplication) { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. - } + func applicationWillResignActive(_: UIApplication) {} - func applicationDidEnterBackground(_: UIApplication) { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. - } + func applicationDidEnterBackground(_: UIApplication) {} - func applicationWillEnterForeground(_: UIApplication) { - // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. - } + func applicationWillEnterForeground(_: UIApplication) {} - func applicationDidBecomeActive(_: UIApplication) { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. - } + func applicationDidBecomeActive(_: UIApplication) {} - func applicationWillTerminate(_: UIApplication) { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. - } + func applicationWillTerminate(_: UIApplication) {} } diff --git a/Life Saver tvOS/GameViewController.swift b/Life Saver tvOS/GameViewController.swift index e0bd980..446e631 100644 --- a/Life Saver tvOS/GameViewController.swift +++ b/Life Saver tvOS/GameViewController.swift @@ -5,6 +5,9 @@ // Created by Bradley Root on 5/19/19. // Copyright © 2019 Brad Root. All rights reserved. // +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. import GameplayKit import SpriteKit diff --git a/Life Saver.xcodeproj/project.pbxproj b/Life Saver.xcodeproj/project.pbxproj index 466eb33..7c2d464 100644 --- a/Life Saver.xcodeproj/project.pbxproj +++ b/Life Saver.xcodeproj/project.pbxproj @@ -7,8 +7,10 @@ objects = { /* Begin PBXBuildFile section */ - 4415351E229733C20061434F /* LifeSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4415351D229733C20061434F /* LifeSettings.swift */; }; - 4415351F22973A330061434F /* LifeSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4415351D229733C20061434F /* LifeSettings.swift */; }; + 1D1F135300AE406633FE6FF1 /* Pods_Life_Saver_Screensaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D1F42044D46DFD95C77690FA /* Pods_Life_Saver_Screensaver.framework */; }; + 2715B4B449E6226C927E206C /* Pods_Life_Saver_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41B1EA2B47E3EC2977A0EC76 /* Pods_Life_Saver_macOS.framework */; }; + 4415351E229733C20061434F /* LifePreset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4415351D229733C20061434F /* LifePreset.swift */; }; + 4415351F22973A330061434F /* LifePreset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4415351D229733C20061434F /* LifePreset.swift */; }; 4415352022973A530061434F /* URLType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4437905F22961BA200AC3AFF /* URLType.swift */; }; 4415352222974E220061434F /* LifeNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4415352122974E220061434F /* LifeNode.swift */; }; 4415352322974E220061434F /* LifeNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4415352122974E220061434F /* LifeNode.swift */; }; @@ -33,7 +35,8 @@ B49221742291F6AA00D5DEA4 /* LifeScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4FD88BD229055FB00AE066A /* LifeScene.swift */; }; B49221752294E5C500D5DEA4 /* ConfigureSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4480C7402294CFB800CC2EDC /* ConfigureSheet.xib */; }; B49221762294E71A00D5DEA4 /* ConfigureSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4480C7422294CFF400CC2EDC /* ConfigureSheetController.swift */; }; - B49F59B8229881C700571F05 /* LifeSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4415351D229733C20061434F /* LifeSettings.swift */; }; + B49F59B8229881C700571F05 /* LifePreset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4415351D229733C20061434F /* LifePreset.swift */; }; + B4BF1F2222BEA478007E1095 /* LifeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4480C7152294B60800CC2EDC /* LifeManager.swift */; }; B4FD88A82290553400AE066A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4FD88A72290553400AE066A /* AppDelegate.swift */; }; B4FD88B02290553400AE066A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4FD88AF2290553400AE066A /* ViewController.swift */; }; B4FD88B22290553600AE066A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B4FD88B12290553600AE066A /* Assets.xcassets */; }; @@ -41,10 +44,13 @@ B4FD88BE229055FB00AE066A /* LifeScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4FD88BD229055FB00AE066A /* LifeScene.swift */; }; B4FD88D02290BA2400AE066A /* LifeScreenSaverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4FD88CF2290BA2400AE066A /* LifeScreenSaverView.swift */; }; B4FD88D32290BAB700AE066A /* LifeScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4FD88BD229055FB00AE066A /* LifeScene.swift */; }; + BDD2445FD5A862ADAD380E48 /* Pods_Life_Saver_tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0F247DB6D6F78817A3F0E8F /* Pods_Life_Saver_tvOS.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 4415351D229733C20061434F /* LifeSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LifeSettings.swift; sourceTree = ""; }; + 1BF1A9B1CA50A4883FA51D8E /* Pods-Life Saver Screensaver.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Life Saver Screensaver.debug.xcconfig"; path = "Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.debug.xcconfig"; sourceTree = ""; }; + 41B1EA2B47E3EC2977A0EC76 /* Pods_Life_Saver_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Life_Saver_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4415351D229733C20061434F /* LifePreset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LifePreset.swift; sourceTree = ""; }; 4415352122974E220061434F /* LifeNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LifeNode.swift; sourceTree = ""; }; 4437905F22961BA200AC3AFF /* URLType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLType.swift; sourceTree = ""; }; 4480C7082294B05200CC2EDC /* FileGrabber.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileGrabber.swift; sourceTree = ""; }; @@ -52,6 +58,9 @@ 4480C7152294B60800CC2EDC /* LifeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LifeManager.swift; sourceTree = ""; }; 4480C7402294CFB800CC2EDC /* ConfigureSheet.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ConfigureSheet.xib; sourceTree = ""; }; 4480C7422294CFF400CC2EDC /* ConfigureSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigureSheetController.swift; sourceTree = ""; }; + 502A6BF15E385B76A6422725 /* Pods-Life Saver tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Life Saver tvOS.release.xcconfig"; path = "Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.release.xcconfig"; sourceTree = ""; }; + 5EE01FF9B77AC381FC307FC3 /* Pods-Life Saver macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Life Saver macOS.release.xcconfig"; path = "Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.release.xcconfig"; sourceTree = ""; }; + 6B6B746C076EE9C58D443E92 /* Pods-Life Saver macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Life Saver macOS.debug.xcconfig"; path = "Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.debug.xcconfig"; sourceTree = ""; }; B45BF8BA22AC33E600D77162 /* ToroidalMatrix.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToroidalMatrix.swift; sourceTree = ""; }; B492215F2291F59C00D5DEA4 /* Life Saver tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Life Saver tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; B49221612291F59D00D5DEA4 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -68,6 +77,10 @@ B4FD88C42290B9DB00AE066A /* Life Saver Screensaver.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Life Saver Screensaver.saver"; sourceTree = BUILT_PRODUCTS_DIR; }; B4FD88CA2290B9DB00AE066A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B4FD88CF2290BA2400AE066A /* LifeScreenSaverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LifeScreenSaverView.swift; sourceTree = ""; }; + C0F247DB6D6F78817A3F0E8F /* Pods_Life_Saver_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Life_Saver_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CED3196A7C6203032FDEBB6F /* Pods-Life Saver Screensaver.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Life Saver Screensaver.release.xcconfig"; path = "Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.release.xcconfig"; sourceTree = ""; }; + D1F42044D46DFD95C77690FA /* Pods_Life_Saver_Screensaver.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Life_Saver_Screensaver.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E829750ED1ADE3B20BC32D52 /* Pods-Life Saver tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Life Saver tvOS.debug.xcconfig"; path = "Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -75,6 +88,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + BDD2445FD5A862ADAD380E48 /* Pods_Life_Saver_tvOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -82,6 +96,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 2715B4B449E6226C927E206C /* Pods_Life_Saver_macOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -89,12 +104,23 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 1D1F135300AE406633FE6FF1 /* Pods_Life_Saver_Screensaver.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 0E788E8E9F042832DC359B27 /* Frameworks */ = { + isa = PBXGroup; + children = ( + D1F42044D46DFD95C77690FA /* Pods_Life_Saver_Screensaver.framework */, + 41B1EA2B47E3EC2977A0EC76 /* Pods_Life_Saver_macOS.framework */, + C0F247DB6D6F78817A3F0E8F /* Pods_Life_Saver_tvOS.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 4415352522974E320061434F /* Utilities */ = { isa = PBXGroup; children = ( @@ -126,6 +152,19 @@ path = "Life Saver macOS"; sourceTree = ""; }; + 58C9C1C400ED8FD965B9FA76 /* Pods */ = { + isa = PBXGroup; + children = ( + 1BF1A9B1CA50A4883FA51D8E /* Pods-Life Saver Screensaver.debug.xcconfig */, + CED3196A7C6203032FDEBB6F /* Pods-Life Saver Screensaver.release.xcconfig */, + 6B6B746C076EE9C58D443E92 /* Pods-Life Saver macOS.debug.xcconfig */, + 5EE01FF9B77AC381FC307FC3 /* Pods-Life Saver macOS.release.xcconfig */, + E829750ED1ADE3B20BC32D52 /* Pods-Life Saver tvOS.debug.xcconfig */, + 502A6BF15E385B76A6422725 /* Pods-Life Saver tvOS.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; B49221602291F59D00D5DEA4 /* Life Saver tvOS */ = { isa = PBXGroup; children = ( @@ -144,6 +183,8 @@ 4480C70C2294B1B300CC2EDC /* Life Saver macOS */, B49221602291F59D00D5DEA4 /* Life Saver tvOS */, B4FD88A52290553400AE066A /* Products */, + 58C9C1C400ED8FD965B9FA76 /* Pods */, + 0E788E8E9F042832DC359B27 /* Frameworks */, ); sourceTree = ""; }; @@ -163,7 +204,8 @@ B4FD88B12290553600AE066A /* Assets.xcassets */, B4FD88BD229055FB00AE066A /* LifeScene.swift */, 4415352122974E220061434F /* LifeNode.swift */, - 4415351D229733C20061434F /* LifeSettings.swift */, + 4415351D229733C20061434F /* LifePreset.swift */, + 4480C7152294B60800CC2EDC /* LifeManager.swift */, 4415352522974E320061434F /* Utilities */, ); path = "Life Saver Shared"; @@ -174,7 +216,6 @@ children = ( 4437905D2296036A00AC3AFF /* Configuration */, B4FD88CF2290BA2400AE066A /* LifeScreenSaverView.swift */, - 4480C7152294B60800CC2EDC /* LifeManager.swift */, 4480C70D2294B4C800CC2EDC /* LifeDatabase.swift */, B4FD88CA2290B9DB00AE066A /* Info.plist */, ); @@ -198,6 +239,7 @@ isa = PBXNativeTarget; buildConfigurationList = B49221732291F5A000D5DEA4 /* Build configuration list for PBXNativeTarget "Life Saver tvOS" */; buildPhases = ( + 075C67AD20E5ECF4F6464D41 /* [CP] Check Pods Manifest.lock */, B492215B2291F59C00D5DEA4 /* Sources */, B492215C2291F59C00D5DEA4 /* Frameworks */, B492215D2291F59C00D5DEA4 /* Resources */, @@ -215,9 +257,11 @@ isa = PBXNativeTarget; buildConfigurationList = B4FD88BA2290553600AE066A /* Build configuration list for PBXNativeTarget "Life Saver macOS" */; buildPhases = ( + 470BAD26309A1CF9F00A13A9 /* [CP] Check Pods Manifest.lock */, B4FD88A02290553400AE066A /* Sources */, B4FD88A12290553400AE066A /* Frameworks */, B4FD88A22290553400AE066A /* Resources */, + 44D747E622BAB99600BB5F52 /* SwiftLint */, ); buildRules = ( ); @@ -232,6 +276,7 @@ isa = PBXNativeTarget; buildConfigurationList = B4FD88CB2290B9DB00AE066A /* Build configuration list for PBXNativeTarget "Life Saver Screensaver" */; buildPhases = ( + DBD9B1CE8DFAA8523A73363F /* [CP] Check Pods Manifest.lock */, B4FD88BF2290B9DB00AE066A /* Headers */, B4FD88C02290B9DB00AE066A /* Sources */, B4FD88C12290B9DB00AE066A /* Frameworks */, @@ -318,6 +363,93 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 075C67AD20E5ECF4F6464D41 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Life Saver tvOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 44D747E622BAB99600BB5F52 /* SwiftLint */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = SwiftLint; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/SwiftLint/swiftlint\"\n"; + }; + 470BAD26309A1CF9F00A13A9 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Life Saver macOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + DBD9B1CE8DFAA8523A73363F /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Life Saver Screensaver-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ B492215B2291F59C00D5DEA4 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -328,8 +460,9 @@ 4480C70B2294B05200CC2EDC /* FileGrabber.swift in Sources */, B492216A2291F59D00D5DEA4 /* GameViewController.swift in Sources */, B45BF8BD22AC33EA00D77162 /* ToroidalMatrix.swift in Sources */, - B49F59B8229881C700571F05 /* LifeSettings.swift in Sources */, + B49F59B8229881C700571F05 /* LifePreset.swift in Sources */, B49221622291F59D00D5DEA4 /* AppDelegate.swift in Sources */, + B4BF1F2222BEA478007E1095 /* LifeManager.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -337,7 +470,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4415351F22973A330061434F /* LifeSettings.swift in Sources */, + 4415351F22973A330061434F /* LifePreset.swift in Sources */, B4FD88BE229055FB00AE066A /* LifeScene.swift in Sources */, 4415352222974E220061434F /* LifeNode.swift in Sources */, 4480C7092294B05200CC2EDC /* FileGrabber.swift in Sources */, @@ -360,7 +493,7 @@ B45BF8BC22AC33E900D77162 /* ToroidalMatrix.swift in Sources */, 4480C70A2294B05200CC2EDC /* FileGrabber.swift in Sources */, 4480C70F2294B4C800CC2EDC /* LifeDatabase.swift in Sources */, - 4415351E229733C20061434F /* LifeSettings.swift in Sources */, + 4415351E229733C20061434F /* LifePreset.swift in Sources */, 4437906022961BA200AC3AFF /* URLType.swift in Sources */, B4FD88D02290BA2400AE066A /* LifeScreenSaverView.swift in Sources */, 4480C7172294B60800CC2EDC /* LifeManager.swift in Sources */, @@ -384,6 +517,7 @@ /* Begin XCBuildConfiguration section */ B49221712291F5A000D5DEA4 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = E829750ED1ADE3B20BC32D52 /* Pods-Life Saver tvOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -406,6 +540,7 @@ }; B49221722291F5A000D5DEA4 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 502A6BF15E385B76A6422725 /* Pods-Life Saver tvOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -544,6 +679,7 @@ }; B4FD88BB2290553600AE066A /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 6B6B746C076EE9C58D443E92 /* Pods-Life Saver macOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = "Life Saver macOS/Life_Saver.entitlements"; @@ -563,6 +699,7 @@ }; B4FD88BC2290553600AE066A /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5EE01FF9B77AC381FC307FC3 /* Pods-Life Saver macOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = "Life Saver macOS/Life_Saver.entitlements"; @@ -582,6 +719,7 @@ }; B4FD88CC2290B9DB00AE066A /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 1BF1A9B1CA50A4883FA51D8E /* Pods-Life Saver Screensaver.debug.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; @@ -604,6 +742,7 @@ }; B4FD88CD2290B9DB00AE066A /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = CED3196A7C6203032FDEBB6F /* Pods-Life Saver Screensaver.release.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; diff --git a/Life Saver.xcworkspace/contents.xcworkspacedata b/Life Saver.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..9bf21db --- /dev/null +++ b/Life Saver.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Life Saver.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Life Saver.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Life Saver.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..d44c099 --- /dev/null +++ b/Podfile @@ -0,0 +1,27 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'Life Saver macOS' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for Life Saver macOS + pod 'SwiftLint' + +end + +target 'Life Saver Screensaver' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for Life Saver Screensaver + +end + +target 'Life Saver tvOS' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for Life Saver tvOS + +end diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..0d01fa0 --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - SwiftLint (0.33.0) + +DEPENDENCIES: + - SwiftLint + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - SwiftLint + +SPEC CHECKSUMS: + SwiftLint: fed9c66336e41fc74dc48a73678380718f0c8b0e + +PODFILE CHECKSUM: 05e9ba66064aab2784708b41bc20d5018f76cf98 + +COCOAPODS: 1.7.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock new file mode 100644 index 0000000..0d01fa0 --- /dev/null +++ b/Pods/Manifest.lock @@ -0,0 +1,16 @@ +PODS: + - SwiftLint (0.33.0) + +DEPENDENCIES: + - SwiftLint + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - SwiftLint + +SPEC CHECKSUMS: + SwiftLint: fed9c66336e41fc74dc48a73678380718f0c8b0e + +PODFILE CHECKSUM: 05e9ba66064aab2784708b41bc20d5018f76cf98 + +COCOAPODS: 1.7.2 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1519acd --- /dev/null +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,858 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXAggregateTarget section */ + 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */ = { + isa = PBXAggregateTarget; + buildConfigurationList = AE7B4FB01588B9E6DF09CB79FC7CE7BD /* Build configuration list for PBXAggregateTarget "SwiftLint" */; + buildPhases = ( + ); + dependencies = ( + ); + name = SwiftLint; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 3E34016F9F40A26CB5C891FA01414757 /* Pods-Life Saver Screensaver-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 227ACFDAB692458B3C5C2FE30904BE36 /* Pods-Life Saver Screensaver-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E9740A4786B95001358F7CAB07A8497 /* Pods-Life Saver macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 83EB07F1EB6533C9F17FD1ADD45D3CD3 /* Pods-Life Saver macOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5289DC2096DE80698C1E2C2CADF18669 /* Pods-Life Saver tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 98B93D8B468377FEE65C459E22FF4B31 /* Pods-Life Saver tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5FDFA3E0D04E135B480F79914577ECD2 /* Pods-Life Saver macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 898FDD7F5B64CD51152E87B8FC309B5A /* Pods-Life Saver macOS-dummy.m */; }; + 890962F54A5674BED7C167D3FDDA5A1B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E0CA16DCF871AB0B0369A82A37F75611 /* Cocoa.framework */; }; + 9B95B993F83537D7EF4EF496236EB3A0 /* Pods-Life Saver Screensaver-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AE1D776CC277BC317038B893FFBC5D58 /* Pods-Life Saver Screensaver-dummy.m */; }; + 9C8E9CB8C8D50D9DD49DC7F1B358FF44 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7947CB8D179191B73CEF516DDAB119C9 /* Foundation.framework */; }; + DA6B684E17B9F34A6D38CD5880DB362D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E0CA16DCF871AB0B0369A82A37F75611 /* Cocoa.framework */; }; + FE62AFB7DED7FE08A00B0058523130C3 /* Pods-Life Saver tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FB040AC5B2C059764AC228131A981D3 /* Pods-Life Saver tvOS-dummy.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 426314B338FDDF07D7EE617E9FDDBAAA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 52B60EC2A583F24ACBB69C113F5488B9; + remoteInfo = SwiftLint; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 227ACFDAB692458B3C5C2FE30904BE36 /* Pods-Life Saver Screensaver-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Life Saver Screensaver-umbrella.h"; sourceTree = ""; }; + 235BB1AC4868E4F8140CC5E8CD3F4BED /* Pods-Life Saver tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Life Saver tvOS-Info.plist"; sourceTree = ""; }; + 398EDD7D103E403B828FB0A1206B755B /* Pods-Life Saver macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Life Saver macOS.release.xcconfig"; sourceTree = ""; }; + 5DCCAF642089E3C23FF0E5CFA4C83495 /* Pods-Life Saver tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Life Saver tvOS.modulemap"; sourceTree = ""; }; + 64B3B6694DF5890FE8886190799FB04C /* Pods-Life Saver macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Life Saver macOS.modulemap"; sourceTree = ""; }; + 71B377333C1E1F09DECDA49F9BFB4168 /* Pods_Life_Saver_Screensaver.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Life_Saver_Screensaver.framework; path = "Pods-Life Saver Screensaver.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7947CB8D179191B73CEF516DDAB119C9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 7FB040AC5B2C059764AC228131A981D3 /* Pods-Life Saver tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Life Saver tvOS-dummy.m"; sourceTree = ""; }; + 83EB07F1EB6533C9F17FD1ADD45D3CD3 /* Pods-Life Saver macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Life Saver macOS-umbrella.h"; sourceTree = ""; }; + 86531140D306D1BDAA17260C139A4019 /* Pods-Life Saver Screensaver-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Life Saver Screensaver-acknowledgements.markdown"; sourceTree = ""; }; + 898FDD7F5B64CD51152E87B8FC309B5A /* Pods-Life Saver macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Life Saver macOS-dummy.m"; sourceTree = ""; }; + 89F85ACF3D78B39506B75103B4694B36 /* SwiftLint.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftLint.xcconfig; sourceTree = ""; }; + 8AE3097A9255C0EFABB9A4C7C6CD6218 /* Pods-Life Saver macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Life Saver macOS.debug.xcconfig"; sourceTree = ""; }; + 97478B5053B11BFE402559A9B5AEAAE1 /* Pods-Life Saver Screensaver.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Life Saver Screensaver.debug.xcconfig"; sourceTree = ""; }; + 98B93D8B468377FEE65C459E22FF4B31 /* Pods-Life Saver tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Life Saver tvOS-umbrella.h"; sourceTree = ""; }; + 99BCF209D0CE92A27A0CED3104576F11 /* Pods-Life Saver Screensaver-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Life Saver Screensaver-Info.plist"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A1E916F4CBDC28AC8A192CCAB45C7E97 /* Pods-Life Saver macOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Life Saver macOS-acknowledgements.markdown"; sourceTree = ""; }; + A25B30CCF6FD0890925D021A55B62F45 /* Pods-Life Saver Screensaver.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Life Saver Screensaver.modulemap"; sourceTree = ""; }; + A553AF1E60BD851057FF0E3B0ABCE7DF /* Pods-Life Saver tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Life Saver tvOS.release.xcconfig"; sourceTree = ""; }; + AE1D776CC277BC317038B893FFBC5D58 /* Pods-Life Saver Screensaver-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Life Saver Screensaver-dummy.m"; sourceTree = ""; }; + B4F8292AFEEA1E4AF5B2C831DA1304A5 /* Pods_Life_Saver_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Life_Saver_macOS.framework; path = "Pods-Life Saver macOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + C9821C04A095E85A88F88C5BD5B13943 /* Pods-Life Saver tvOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Life Saver tvOS-acknowledgements.markdown"; sourceTree = ""; }; + CB7A5F87FF588BC87951CAEBE289AFE6 /* Pods-Life Saver tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Life Saver tvOS.debug.xcconfig"; sourceTree = ""; }; + D6547326B99848B9BCE3433D35A35CBC /* Pods-Life Saver Screensaver.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Life Saver Screensaver.release.xcconfig"; sourceTree = ""; }; + DA680814EE1A3974396ED3C5C662C14F /* Pods-Life Saver macOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Life Saver macOS-acknowledgements.plist"; sourceTree = ""; }; + E0CA16DCF871AB0B0369A82A37F75611 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + EDA5322E796985147F3B6623EBF237B2 /* Pods-Life Saver macOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Life Saver macOS-Info.plist"; sourceTree = ""; }; + EF698064E14482B1926F41ADA74899E4 /* Pods-Life Saver Screensaver-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Life Saver Screensaver-acknowledgements.plist"; sourceTree = ""; }; + F236E117E5D33A38B3412539598F2B86 /* Pods_Life_Saver_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Life_Saver_tvOS.framework; path = "Pods-Life Saver tvOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + F32E9D51661C2E64B5350B3655E779DB /* Pods-Life Saver tvOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Life Saver tvOS-acknowledgements.plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3215B91004CD8DA0B4D5958FC25A0CC0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9C8E9CB8C8D50D9DD49DC7F1B358FF44 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 32CCE717D1FE50D601173EE887D464EB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 890962F54A5674BED7C167D3FDDA5A1B /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8EEC97E39519700486987F7D51D08B18 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DA6B684E17B9F34A6D38CD5880DB362D /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 10EECC9BD2B97439CAFD54E4BED2B912 /* Products */ = { + isa = PBXGroup; + children = ( + B4F8292AFEEA1E4AF5B2C831DA1304A5 /* Pods_Life_Saver_macOS.framework */, + 71B377333C1E1F09DECDA49F9BFB4168 /* Pods_Life_Saver_Screensaver.framework */, + F236E117E5D33A38B3412539598F2B86 /* Pods_Life_Saver_tvOS.framework */, + ); + name = Products; + sourceTree = ""; + }; + 172CCFCA59784FE90D5E765AC1E22BBE /* Pods-Life Saver macOS */ = { + isa = PBXGroup; + children = ( + 64B3B6694DF5890FE8886190799FB04C /* Pods-Life Saver macOS.modulemap */, + A1E916F4CBDC28AC8A192CCAB45C7E97 /* Pods-Life Saver macOS-acknowledgements.markdown */, + DA680814EE1A3974396ED3C5C662C14F /* Pods-Life Saver macOS-acknowledgements.plist */, + 898FDD7F5B64CD51152E87B8FC309B5A /* Pods-Life Saver macOS-dummy.m */, + EDA5322E796985147F3B6623EBF237B2 /* Pods-Life Saver macOS-Info.plist */, + 83EB07F1EB6533C9F17FD1ADD45D3CD3 /* Pods-Life Saver macOS-umbrella.h */, + 8AE3097A9255C0EFABB9A4C7C6CD6218 /* Pods-Life Saver macOS.debug.xcconfig */, + 398EDD7D103E403B828FB0A1206B755B /* Pods-Life Saver macOS.release.xcconfig */, + ); + name = "Pods-Life Saver macOS"; + path = "Target Support Files/Pods-Life Saver macOS"; + sourceTree = ""; + }; + 182E976C61BDBC8EB5AAE042D85583A1 /* tvOS */ = { + isa = PBXGroup; + children = ( + 7947CB8D179191B73CEF516DDAB119C9 /* Foundation.framework */, + ); + name = tvOS; + sourceTree = ""; + }; + 63A11A520583122BEB0D8B6FF70F7502 /* OS X */ = { + isa = PBXGroup; + children = ( + E0CA16DCF871AB0B0369A82A37F75611 /* Cocoa.framework */, + ); + name = "OS X"; + sourceTree = ""; + }; + 965877409E01FB3D85D85E90E6B30185 /* Pods */ = { + isa = PBXGroup; + children = ( + 9AED61B9A1CFA211C061344F741DBA07 /* SwiftLint */, + ); + name = Pods; + sourceTree = ""; + }; + 9AED61B9A1CFA211C061344F741DBA07 /* SwiftLint */ = { + isa = PBXGroup; + children = ( + EEA599FE5C15138FF0981CCFB01E55AA /* Support Files */, + ); + name = SwiftLint; + path = SwiftLint; + sourceTree = ""; + }; + B8D787C369FB90AF9F92ECA9926A8A7E /* Pods-Life Saver Screensaver */ = { + isa = PBXGroup; + children = ( + A25B30CCF6FD0890925D021A55B62F45 /* Pods-Life Saver Screensaver.modulemap */, + 86531140D306D1BDAA17260C139A4019 /* Pods-Life Saver Screensaver-acknowledgements.markdown */, + EF698064E14482B1926F41ADA74899E4 /* Pods-Life Saver Screensaver-acknowledgements.plist */, + AE1D776CC277BC317038B893FFBC5D58 /* Pods-Life Saver Screensaver-dummy.m */, + 99BCF209D0CE92A27A0CED3104576F11 /* Pods-Life Saver Screensaver-Info.plist */, + 227ACFDAB692458B3C5C2FE30904BE36 /* Pods-Life Saver Screensaver-umbrella.h */, + 97478B5053B11BFE402559A9B5AEAAE1 /* Pods-Life Saver Screensaver.debug.xcconfig */, + D6547326B99848B9BCE3433D35A35CBC /* Pods-Life Saver Screensaver.release.xcconfig */, + ); + name = "Pods-Life Saver Screensaver"; + path = "Target Support Files/Pods-Life Saver Screensaver"; + sourceTree = ""; + }; + BAA71F9B7FECBD98D8DF0BAB10ADB8D4 /* Pods-Life Saver tvOS */ = { + isa = PBXGroup; + children = ( + 5DCCAF642089E3C23FF0E5CFA4C83495 /* Pods-Life Saver tvOS.modulemap */, + C9821C04A095E85A88F88C5BD5B13943 /* Pods-Life Saver tvOS-acknowledgements.markdown */, + F32E9D51661C2E64B5350B3655E779DB /* Pods-Life Saver tvOS-acknowledgements.plist */, + 7FB040AC5B2C059764AC228131A981D3 /* Pods-Life Saver tvOS-dummy.m */, + 235BB1AC4868E4F8140CC5E8CD3F4BED /* Pods-Life Saver tvOS-Info.plist */, + 98B93D8B468377FEE65C459E22FF4B31 /* Pods-Life Saver tvOS-umbrella.h */, + CB7A5F87FF588BC87951CAEBE289AFE6 /* Pods-Life Saver tvOS.debug.xcconfig */, + A553AF1E60BD851057FF0E3B0ABCE7DF /* Pods-Life Saver tvOS.release.xcconfig */, + ); + name = "Pods-Life Saver tvOS"; + path = "Target Support Files/Pods-Life Saver tvOS"; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + E3FDFE173C940A08CDAE8298694FAEAF /* Frameworks */, + 965877409E01FB3D85D85E90E6B30185 /* Pods */, + 10EECC9BD2B97439CAFD54E4BED2B912 /* Products */, + D24EEF9C258FE9F30EA587F7B2B77FD0 /* Targets Support Files */, + ); + sourceTree = ""; + }; + D24EEF9C258FE9F30EA587F7B2B77FD0 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 172CCFCA59784FE90D5E765AC1E22BBE /* Pods-Life Saver macOS */, + B8D787C369FB90AF9F92ECA9926A8A7E /* Pods-Life Saver Screensaver */, + BAA71F9B7FECBD98D8DF0BAB10ADB8D4 /* Pods-Life Saver tvOS */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + E3FDFE173C940A08CDAE8298694FAEAF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 63A11A520583122BEB0D8B6FF70F7502 /* OS X */, + 182E976C61BDBC8EB5AAE042D85583A1 /* tvOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + EEA599FE5C15138FF0981CCFB01E55AA /* Support Files */ = { + isa = PBXGroup; + children = ( + 89F85ACF3D78B39506B75103B4694B36 /* SwiftLint.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SwiftLint"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 3330F198284B2178EE8617E233201D6E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4E9740A4786B95001358F7CAB07A8497 /* Pods-Life Saver macOS-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB78795109526A9F67EBEF947B89D307 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 5289DC2096DE80698C1E2C2CADF18669 /* Pods-Life Saver tvOS-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EF1E9984421B4B2E884C32978AE08E9B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E34016F9F40A26CB5C891FA01414757 /* Pods-Life Saver Screensaver-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0A3EFC96E07575A1DFB4D26A2839C4E7 /* Pods-Life Saver Screensaver */ = { + isa = PBXNativeTarget; + buildConfigurationList = 19D933694B837F87A8F2F7620DA185BD /* Build configuration list for PBXNativeTarget "Pods-Life Saver Screensaver" */; + buildPhases = ( + EF1E9984421B4B2E884C32978AE08E9B /* Headers */, + 99E0E7FB3D92241E6411F0750A4D8D5E /* Sources */, + 8EEC97E39519700486987F7D51D08B18 /* Frameworks */, + 0DBF4969769D9933D5C5CB870DC491C4 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Life Saver Screensaver"; + productName = "Pods-Life Saver Screensaver"; + productReference = 71B377333C1E1F09DECDA49F9BFB4168 /* Pods_Life_Saver_Screensaver.framework */; + productType = "com.apple.product-type.framework"; + }; + 72CE050E7DC4DF0CBFBA9D524ED29015 /* Pods-Life Saver macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D404414FBAF42AB5BE1206C31466991F /* Build configuration list for PBXNativeTarget "Pods-Life Saver macOS" */; + buildPhases = ( + 3330F198284B2178EE8617E233201D6E /* Headers */, + DBFDEF246E170F4FE68B81F35563200F /* Sources */, + 32CCE717D1FE50D601173EE887D464EB /* Frameworks */, + 6980AC8866922177AE6EF49CF3AE3746 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F4A12D59F75D7061A67C055F20E49EAA /* PBXTargetDependency */, + ); + name = "Pods-Life Saver macOS"; + productName = "Pods-Life Saver macOS"; + productReference = B4F8292AFEEA1E4AF5B2C831DA1304A5 /* Pods_Life_Saver_macOS.framework */; + productType = "com.apple.product-type.framework"; + }; + B780427177FAFADAFF435B6CA721B044 /* Pods-Life Saver tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6ED0EE05B280C39AD0FB7946E4D35A7B /* Build configuration list for PBXNativeTarget "Pods-Life Saver tvOS" */; + buildPhases = ( + DB78795109526A9F67EBEF947B89D307 /* Headers */, + ED814CC203B5F3236869AB5CD055F403 /* Sources */, + 3215B91004CD8DA0B4D5958FC25A0CC0 /* Frameworks */, + 9982B7233B751B67B5F0DA5D729311AD /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Life Saver tvOS"; + productName = "Pods-Life Saver tvOS"; + productReference = F236E117E5D33A38B3412539598F2B86 /* Pods_Life_Saver_tvOS.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = 10EECC9BD2B97439CAFD54E4BED2B912 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 72CE050E7DC4DF0CBFBA9D524ED29015 /* Pods-Life Saver macOS */, + 0A3EFC96E07575A1DFB4D26A2839C4E7 /* Pods-Life Saver Screensaver */, + B780427177FAFADAFF435B6CA721B044 /* Pods-Life Saver tvOS */, + 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 0DBF4969769D9933D5C5CB870DC491C4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6980AC8866922177AE6EF49CF3AE3746 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9982B7233B751B67B5F0DA5D729311AD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 99E0E7FB3D92241E6411F0750A4D8D5E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B95B993F83537D7EF4EF496236EB3A0 /* Pods-Life Saver Screensaver-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DBFDEF246E170F4FE68B81F35563200F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5FDFA3E0D04E135B480F79914577ECD2 /* Pods-Life Saver macOS-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ED814CC203B5F3236869AB5CD055F403 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FE62AFB7DED7FE08A00B0058523130C3 /* Pods-Life Saver tvOS-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + F4A12D59F75D7061A67C055F20E49EAA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SwiftLint; + target = 52B60EC2A583F24ACBB69C113F5488B9 /* SwiftLint */; + targetProxy = 426314B338FDDF07D7EE617E9FDDBAAA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 3D5124080488C16600AF9BE4AFF1AE02 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + TVOS_DEPLOYMENT_TARGET = 12.2; + }; + name = Debug; + }; + 58190F6DFD39546710DD9A8C9DA71608 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A553AF1E60BD851057FF0E3B0ABCE7DF /* Pods-Life Saver tvOS.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 12.2; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 8B2757D413B867ECEFDC200DDE84AFD2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89F85ACF3D78B39506B75103B4694B36 /* SwiftLint.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.6; + SDKROOT = macosx; + }; + name = Release; + }; + 8E9F8AB46A8BAEF6FC5EAFC8B6B873E1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + TVOS_DEPLOYMENT_TARGET = 12.2; + }; + name = Release; + }; + A597C6C170B9E89BC75C575EB65A41F0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8AE3097A9255C0EFABB9A4C7C6CD6218 /* Pods-Life Saver macOS.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MODULEMAP_FILE = "Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + CB6172345BEA7ED682297FEF06A238DB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 398EDD7D103E403B828FB0A1206B755B /* Pods-Life Saver macOS.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MODULEMAP_FILE = "Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + CE5E3045F703F531AB7474A8E7DA1587 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D6547326B99848B9BCE3433D35A35CBC /* Pods-Life Saver Screensaver.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MODULEMAP_FILE = "Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DE0B747FF880C428189E5D367CC4FBB7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 97478B5053B11BFE402559A9B5AEAAE1 /* Pods-Life Saver Screensaver.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MODULEMAP_FILE = "Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + EBA0CC105C99CE8BFDA51C62E70EA605 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89F85ACF3D78B39506B75103B4694B36 /* SwiftLint.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.6; + SDKROOT = macosx; + }; + name = Debug; + }; + FABD3A9EF636E2FCF5521BD65E4C01B1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CB7A5F87FF588BC87951CAEBE289AFE6 /* Pods-Life Saver tvOS.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 12.2; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 19D933694B837F87A8F2F7620DA185BD /* Build configuration list for PBXNativeTarget "Pods-Life Saver Screensaver" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DE0B747FF880C428189E5D367CC4FBB7 /* Debug */, + CE5E3045F703F531AB7474A8E7DA1587 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3D5124080488C16600AF9BE4AFF1AE02 /* Debug */, + 8E9F8AB46A8BAEF6FC5EAFC8B6B873E1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6ED0EE05B280C39AD0FB7946E4D35A7B /* Build configuration list for PBXNativeTarget "Pods-Life Saver tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FABD3A9EF636E2FCF5521BD65E4C01B1 /* Debug */, + 58190F6DFD39546710DD9A8C9DA71608 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + AE7B4FB01588B9E6DF09CB79FC7CE7BD /* Build configuration list for PBXAggregateTarget "SwiftLint" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EBA0CC105C99CE8BFDA51C62E70EA605 /* Debug */, + 8B2757D413B867ECEFDC200DDE84AFD2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D404414FBAF42AB5BE1206C31466991F /* Build configuration list for PBXNativeTarget "Pods-Life Saver macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A597C6C170B9E89BC75C575EB65A41F0 /* Debug */, + CB6172345BEA7ED682297FEF06A238DB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/Pods/SwiftLint/LICENSE b/Pods/SwiftLint/LICENSE new file mode 100644 index 0000000..a029e45 --- /dev/null +++ b/Pods/SwiftLint/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Pods/SwiftLint/swiftlint b/Pods/SwiftLint/swiftlint new file mode 100755 index 0000000..e38d628 Binary files /dev/null and b/Pods/SwiftLint/swiftlint differ diff --git a/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-Info.plist b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-acknowledgements.markdown b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-acknowledgements.plist b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-dummy.m b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-dummy.m new file mode 100644 index 0000000..d0f5eff --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Life_Saver_Screensaver : NSObject +@end +@implementation PodsDummy_Pods_Life_Saver_Screensaver +@end diff --git a/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-umbrella.h b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-umbrella.h new file mode 100644 index 0000000..52678c0 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_Life_Saver_ScreensaverVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_Life_Saver_ScreensaverVersionString[]; + diff --git a/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.debug.xcconfig b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.debug.xcconfig new file mode 100644 index 0000000..521bc0e --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.debug.xcconfig @@ -0,0 +1,5 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.modulemap b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.modulemap new file mode 100644 index 0000000..e4823bd --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Life_Saver_Screensaver { + umbrella header "Pods-Life Saver Screensaver-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.release.xcconfig b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.release.xcconfig new file mode 100644 index 0000000..521bc0e --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver Screensaver/Pods-Life Saver Screensaver.release.xcconfig @@ -0,0 +1,5 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-Info.plist b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-acknowledgements.markdown b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-acknowledgements.markdown new file mode 100644 index 0000000..d8c5fed --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-acknowledgements.markdown @@ -0,0 +1,28 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## SwiftLint + +The MIT License (MIT) + +Copyright (c) 2015 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-acknowledgements.plist b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-acknowledgements.plist new file mode 100644 index 0000000..88fb231 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-acknowledgements.plist @@ -0,0 +1,60 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2015 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + SwiftLint + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-dummy.m b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-dummy.m new file mode 100644 index 0000000..43603cb --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Life_Saver_macOS : NSObject +@end +@implementation PodsDummy_Pods_Life_Saver_macOS +@end diff --git a/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-umbrella.h b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-umbrella.h new file mode 100644 index 0000000..8c1f067 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_Life_Saver_macOSVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_Life_Saver_macOSVersionString[]; + diff --git a/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.debug.xcconfig b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.debug.xcconfig new file mode 100644 index 0000000..383464b --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.debug.xcconfig @@ -0,0 +1,6 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.modulemap b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.modulemap new file mode 100644 index 0000000..1a988e1 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Life_Saver_macOS { + umbrella header "Pods-Life Saver macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.release.xcconfig b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.release.xcconfig new file mode 100644 index 0000000..383464b --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver macOS/Pods-Life Saver macOS.release.xcconfig @@ -0,0 +1,6 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-Info.plist b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-acknowledgements.markdown b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-acknowledgements.plist b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-dummy.m b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-dummy.m new file mode 100644 index 0000000..4811414 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Life_Saver_tvOS : NSObject +@end +@implementation PodsDummy_Pods_Life_Saver_tvOS +@end diff --git a/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-umbrella.h b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-umbrella.h new file mode 100644 index 0000000..4536c51 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_Life_Saver_tvOSVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_Life_Saver_tvOSVersionString[]; + diff --git a/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.debug.xcconfig b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.debug.xcconfig new file mode 100644 index 0000000..521bc0e --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.debug.xcconfig @@ -0,0 +1,5 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.modulemap b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.modulemap new file mode 100644 index 0000000..c3ed444 --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Life_Saver_tvOS { + umbrella header "Pods-Life Saver tvOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.release.xcconfig b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.release.xcconfig new file mode 100644 index 0000000..521bc0e --- /dev/null +++ b/Pods/Target Support Files/Pods-Life Saver tvOS/Pods-Life Saver tvOS.release.xcconfig @@ -0,0 +1,5 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/SwiftLint/SwiftLint.xcconfig b/Pods/Target Support Files/SwiftLint/SwiftLint.xcconfig new file mode 100644 index 0000000..707003c --- /dev/null +++ b/Pods/Target Support Files/SwiftLint/SwiftLint.xcconfig @@ -0,0 +1,9 @@ +CODE_SIGN_IDENTITY = +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftLint +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftLint +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES