// // TetrisWindow.swift // Tetris Mac // // Created by Shadowfacts on 4/5/20. // Copyright © 2020 Shadowfacts. All rights reserved. // import Cocoa import TetrisKit import Carbon class TetrisWindow: NSWindow { let gameController = GameController() init() { super.init(contentRect: NSRect(x: 0, y: 0, width: 634, height: 804), styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView], backing: .buffered, defer: false) setFrameAutosaveName("Main Window") contentViewController = TetrisViewController(gameController: gameController) title = "Tetris" } override func keyDown(with event: NSEvent) { switch Int(event.keyCode) { case kVK_LeftArrow: gameController.left() case kVK_RightArrow: gameController.right() case kVK_UpArrow: gameController.rotate(direction: .clockwise) case kVK_DownArrow: gameController.drop() case kVK_Space: gameController.togglePause() default: super.keyDown(with: event) } } override func flagsChanged(with event: NSEvent) { if event.modifierFlags.contains(.control) { gameController.rotate(direction: .counterClockwise) } else if event.modifierFlags.contains(.shift) { gameController.hold() } else { super.flagsChanged(with: event) } } }