diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..8f0eeee Binary files /dev/null and b/.DS_Store differ diff --git a/ScreenMazer.xcodeproj/project.pbxproj b/ScreenMazer.xcodeproj/project.pbxproj index 9b4e124..b9aa925 100755 --- a/ScreenMazer.xcodeproj/project.pbxproj +++ b/ScreenMazer.xcodeproj/project.pbxproj @@ -189,7 +189,7 @@ }; A89B9C562120F47F00CE35AC = { CreatedOnToolsVersion = 9.2; - DevelopmentTeam = K2WR3HLA57; + DevelopmentTeam = Y3FG22HM56; ProvisioningStyle = Automatic; }; }; @@ -445,13 +445,13 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = K2WR3HLA57; + DEVELOPMENT_TEAM = Y3FG22HM56; ENABLE_HARDENED_RUNTIME = YES; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = TestApp/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; - PRODUCT_BUNDLE_IDENTIFIER = com.alexbeals.TestApp; + PRODUCT_BUNDLE_IDENTIFIER = com.JackDarnell.screenMazer2; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -478,13 +478,13 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = K2WR3HLA57; + DEVELOPMENT_TEAM = Y3FG22HM56; ENABLE_HARDENED_RUNTIME = YES; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = TestApp/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; - PRODUCT_BUNDLE_IDENTIFIER = com.alexbeals.TestApp; + PRODUCT_BUNDLE_IDENTIFIER = com.JackDarnell.screenMazer2; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 4.0; }; diff --git a/ScreenMazer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ScreenMazer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ScreenMazer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ScreenMazer.xcodeproj/project.xcworkspace/xcuserdata/jackdarnell.xcuserdatad/UserInterfaceState.xcuserstate b/ScreenMazer.xcodeproj/project.xcworkspace/xcuserdata/jackdarnell.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..025a54e Binary files /dev/null and b/ScreenMazer.xcodeproj/project.xcworkspace/xcuserdata/jackdarnell.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/ScreenMazer.xcodeproj/xcuserdata/jackdarnell.xcuserdatad/xcschemes/xcschememanagement.plist b/ScreenMazer.xcodeproj/xcuserdata/jackdarnell.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..9d5ac08 --- /dev/null +++ b/ScreenMazer.xcodeproj/xcuserdata/jackdarnell.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + ScreenMazer.xcscheme_^#shared#^_ + + orderHint + 0 + + TestApp.xcscheme_^#shared#^_ + + orderHint + 1 + + + + diff --git a/ScreenMazer/ConfigureSheet.xib b/ScreenMazer/ConfigureSheet.xib index 6dffcfd..ebc7f1b 100755 --- a/ScreenMazer/ConfigureSheet.xib +++ b/ScreenMazer/ConfigureSheet.xib @@ -1,8 +1,7 @@ - + - - + @@ -22,17 +21,17 @@ - + - + - + - + @@ -43,7 +42,7 @@ - + @@ -54,7 +53,7 @@ - + @@ -65,7 +64,7 @@ - + @@ -76,14 +75,14 @@ - + - + @@ -91,7 +90,7 @@ - + @@ -102,14 +101,14 @@ - + - + @@ -117,7 +116,7 @@ - + @@ -127,7 +126,7 @@ - + @@ -138,7 +137,7 @@ - + @@ -149,7 +148,7 @@ - + @@ -159,7 +158,7 @@ - + @@ -180,7 +179,7 @@ - + @@ -214,7 +213,7 @@ - + diff --git a/ScreenMazer/DefaultsManager.swift b/ScreenMazer/DefaultsManager.swift index 1058efb..1cc8100 100644 --- a/ScreenMazer/DefaultsManager.swift +++ b/ScreenMazer/DefaultsManager.swift @@ -9,13 +9,13 @@ import ScreenSaver class DefaultsManager { - var defaults: UserDefaults - + var defaults: ScreenSaverDefaults + init() { let identifier = Bundle(for: DefaultsManager.self).bundleIdentifier defaults = ScreenSaverDefaults.init(forModuleWithName: identifier!)! } - + var color: NSColor { set(newColor) { setAttribute(newColor, key: "color") @@ -24,7 +24,7 @@ class DefaultsManager { return getColor() ?? .gray } } - + var solveColor: NSColor { set(newColor) { setAttribute(newColor, key: "solveColor") @@ -33,7 +33,7 @@ class DefaultsManager { return getSolveColor() ?? .white } } - + var duration: Int { set(newDuration) { setAttribute(newDuration, key: "duration") @@ -42,7 +42,7 @@ class DefaultsManager { return getDuration() ?? 30 } } - + var solveDuration: Int { set(newDuration) { setAttribute(newDuration, key: "solveDuration") @@ -51,7 +51,7 @@ class DefaultsManager { return getSolveDuration() ?? 10 } } - + var mazeSize: Double { set(newSize) { setAttribute(newSize, key: "mazeSize") @@ -60,7 +60,7 @@ class DefaultsManager { return getMazeSize() ?? 7.0 } } - + var clockSize: Int { set(newSize) { setAttribute(newSize, key: "clockSize") @@ -69,7 +69,7 @@ class DefaultsManager { return getClockSize() ?? 1 } } - + var hourClock: Bool { set(newClock) { setAttribute(newClock, key: "hourClock") @@ -78,7 +78,7 @@ class DefaultsManager { return getHourClock() ?? false } } - + var solve: Bool { set(newSolve) { setAttribute(newSolve, key: "solve") @@ -87,64 +87,79 @@ class DefaultsManager { return getSolve() ?? true } } - + + // func setAttribute(_ attribute: Any, key: String) { + // //defaults.set(NSKeyedArchiver.archivedData(withRootObject: attribute), forKey: key) + // defaults.set(NSKeyedArchiver.archivedData(withRootObject: attribute, requiringSecureCoding: false), forKey: key) + // defaults.synchronize() + // } func setAttribute(_ attribute: Any, key: String) { - defaults.set(NSKeyedArchiver.archivedData(withRootObject: attribute), forKey: key) - defaults.synchronize() + if let data = try? NSKeyedArchiver.archivedData(withRootObject: attribute, requiringSecureCoding: false) { + defaults.set(data, forKey: key) + defaults.synchronize() + } } - + func getColor() -> NSColor? { - if let info = defaults.object(forKey: "color") as? Data { - return NSKeyedUnarchiver.unarchiveObject(with: info) as? NSColor + if let info = defaults.data(forKey: "color"), + let color = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSColor.self, from: info) { + return color } return nil } - + func getSolveColor() -> NSColor? { - if let info = defaults.object(forKey: "solveColor") as? Data { - return NSKeyedUnarchiver.unarchiveObject(with: info) as? NSColor + if let info = defaults.data(forKey: "solveColor"), + let color = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSColor.self, from: info) { + return color } return nil } - + func getDuration() -> Int? { - if let info = defaults.object(forKey: "duration") as? Data { - return NSKeyedUnarchiver.unarchiveObject(with: info) as? Int + if let info = defaults.data(forKey: "duration"), + let duration = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSNumber.self, from: info) as? Int { + return duration } return nil } - + func getSolveDuration() -> Int? { - if let info = defaults.object(forKey: "solveDuration") as? Data { - return NSKeyedUnarchiver.unarchiveObject(with: info) as? Int + if let info = defaults.data(forKey: "solveDuration"), + let duration = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSNumber.self, from: info) as? Int { + return duration } return nil } - + func getMazeSize() -> Double? { - if let info = defaults.object(forKey: "mazeSize") as? Data { - return NSKeyedUnarchiver.unarchiveObject(with: info) as? Double + if let info = defaults.data(forKey: "mazeSize"), + let mazeSize = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSNumber.self, from: info) as? Double { + return mazeSize } return nil } - + func getClockSize() -> Int? { - if let info = defaults.object(forKey: "clockSize") as? Data { - return NSKeyedUnarchiver.unarchiveObject(with: info) as? Int + if let info = defaults.data(forKey: "clockSize"), + let clockSize = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSNumber.self, from: info) as? Int { + return clockSize } return nil } - + func getHourClock() -> Bool? { - if let info = defaults.object(forKey: "hourClock") as? Data { - return NSKeyedUnarchiver.unarchiveObject(with: info) as? Bool + if let info = defaults.data(forKey: "hourClock"), + let hourClock = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSNumber.self, from: info) as? Bool { + return hourClock } return nil } - + func getSolve() -> Bool? { - if let info = defaults.object(forKey: "solve") as? Data { - return NSKeyedUnarchiver.unarchiveObject(with: info) as? Bool + if let info = defaults.data(forKey: "solve"), + let solve = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSNumber.self, from: info) as? Bool { + return solve } return nil } diff --git a/ScreenMazer/MazeScene.swift b/ScreenMazer/MazeScene.swift index 61333ae..16abbf4 100644 --- a/ScreenMazer/MazeScene.swift +++ b/ScreenMazer/MazeScene.swift @@ -56,10 +56,7 @@ class MazeScene: SKScene { squares = [] squareSize = CGFloat(DefaultsManager().mazeSize) if (isPreview) { - squareSize = squareSize / 4 - if (squareSize < 1) { - squareSize = 1 - } + squareSize = 1 } duration = DefaultsManager().duration diff --git a/TestApp/Base.lproj/Main.storyboard b/TestApp/Base.lproj/Main.storyboard index 1684d08..4bb6498 100644 --- a/TestApp/Base.lproj/Main.storyboard +++ b/TestApp/Base.lproj/Main.storyboard @@ -1,7 +1,8 @@ - - + + - + + @@ -618,7 +619,7 @@ - + @@ -673,7 +674,7 @@ - + @@ -683,12 +684,12 @@ - + - + @@ -703,7 +704,7 @@ - +