def activateMod(engine, modName): modPath = _getModPath(engine) m = os.path.join(modPath, modName) t = os.path.join(m, "theme.ini") if os.path.isdir(m): engine.resource.addDataPath(m) if os.path.isfile(t): theme = Config.load(t) Theme.open(theme)
def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) self.e = GameEngine(config) self.e.loadImgDrawing(self, "svg", "mfhlogo.png") while not self.svg: self.e.run() glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
def testLoading(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) e = GameEngine(config) infoFile = e.resource.fileName("tutorials", "bangbang", "song.ini") guitarFile = e.resource.fileName("tutorials", "bangbang", "guitar.ogg") songFile = e.resource.fileName("tutorials", "bangbang", "song.ogg") noteFile = e.resource.fileName("tutorials", "bangbang", "notes.mid") song = Song(e, infoFile, guitarFile, songFile, None, noteFile) assert int(song.bpm) == 120
def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) self.e = GameEngine(config) self.e.loadImgDrawing(self, "svg", "mfhlogo.png") while not self.svg: self.e.run() glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
def testSaving(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) e = GameEngine(config) # Make a temp copy tmp = "songtest_tmp" files = ["song.ini", "guitar.ogg", "song.ogg", "notes.mid"] try: os.mkdir(tmp) for f in files: shutil.copy(e.resource.fileName("tutorials", "bangbang", f), tmp) infoFile = os.path.join(tmp, "song.ini") guitarFile = os.path.join(tmp, "guitar.ogg") songFile = os.path.join(tmp, "song.ogg") noteFile = os.path.join(tmp, "notes.mid") song = Song(e, infoFile, guitarFile, songFile, None, noteFile) events1 = song.track[0].getAllEvents() song.save() song = Song(e, infoFile, guitarFile, songFile, None, noteFile) events2 = song.track[0].getAllEvents() notes1 = [(time, event) for time, event in events1 if isinstance(event, Note)] notes2 = [(time, event) for time, event in events2 if isinstance(event, Note)] for i, event in enumerate(zip(notes1, notes2)): t1, n1 = event[0] t2, n2 = event[1] if "-v" in sys.argv: print "%8d. %.3f + %.3f\t%2d\t %.3f + %.3f\t%2d" % ( i, t1, n1.length, n1.number, t2, n2.length, n2.number) # Allow 2ms of rounding error assert abs(t1 - t2) < 2 assert abs(n1.length - n2.length) < 2 assert n1.number == n2.number finally: # Load another song to free the copy pygame.mixer.music.load( e.resource.fileName("tutorials", "bangbang", "guitar.ogg")) shutil.rmtree(tmp)
def savePlayers(): for pref in _playerDB.execute('SELECT * FROM `players` WHERE `changed` = 1').fetchall(): try: c = Config.load(VFS.resolveWrite(_makePlayerIniName(str(pref[0]))), type = 2) c.set("player","leftymode",int(pref[1])) c.set("player","drumflip",int(pref[2])) c.set("player","auto_kick",int(pref[3])) c.set("player","assist_mode",int(pref[4])) c.set("player","two_chord_max",int(pref[5])) c.set("player","necktype",int(pref[6])) c.set("player","neck",str(pref[7])) c.set("player","part",int(pref[8])) c.set("player","difficulty",int(pref[9])) c.set("player","name",str(pref[10])) c.set("player","controller",int(pref[11])) del c _playerDB.execute('UPDATE `players` SET `changed` = 0 WHERE `name` = ?', [pref[0]]) except: c = VFS.open(_makePlayerIniName(str(pref[0])), "w") c.close() c = Config.load(VFS.resolveWrite(_makePlayerIniName(str(pref[0]))), type = 2) c.set("player","leftymode",int(pref[1])) c.set("player","drumflip",int(pref[2])) c.set("player","auto_kick",int(pref[3])) c.set("player","assist_mode",int(pref[4])) c.set("player","two_chord_max",int(pref[5])) c.set("player","necktype",int(pref[6])) c.set("player","neck",str(pref[7])) c.set("player","part",int(pref[8])) c.set("player","difficulty",int(pref[9])) c.set("player","name",str(pref[10])) c.set("player","controller",int(pref[11])) del c _playerDB.execute('UPDATE `players` SET `changed` = 0 WHERE `name` = ?', [pref[0]]) _playerDB.execute('UPDATE `players` SET `loaded` = 0') _playerDB.commit()
def info(verbose): """ show the running status of LHC """ config = Config.load() running = config.proxy.running() print('Proxy:') print(' Mode: %s' % config.mode) print(' Status: %s' % ('Running' if running else 'Stopped')) print(' CA Cert: %s' % config.proxy.ca_status()) print(' HTTP Port: %s' % config.http_port) print(' HTTPS Port: %s' % config.https_port) print(' SSL: %s' % config.ssl) print() print('Hosts:') print(' Status: %s' % ('Activated' if config.hosts_activated() else 'Deactivated')) print(' Count: %s' % len(config.hosts)) if running: print(' IP: %s' % config.proxy.get_ip()) print(' CachePath: %s' % config.cache_path) print() if verbose: print('Defaults:') print(' Extensions: %s' % config.extensions) print(' CacheSizeLimit: %s' % config.cache_size_limit) print(' CacheExpire: %s' % config.cache_expire) print(' CacheKey: %s' % config.cache_key) print(' DnsResolver: %s' % config.dns_resolver) print() print('Consts:') print(' CONF_PATH: %s' % CONF_PATH) print(' CONF_HOSTS_PATH: %s' % CONF_HOSTS_PATH) print(' CONF_FILE_PATH: %s' % CONF_FILE_PATH) print(' NGINX_CONF_FILE_PATH: %s' % NGINX_CONF_FILE_PATH) print(' MAC_ALIAS_IP: %s' % MAC_ALIAS_IP) print(' NGINX_DOCKER_IMAGE: %s' % NGINX_DOCKER_IMAGE) print(' PROXY_DOCKER_NAME: %s' % PROXY_CONTAINER_NAME) print() print('Built-in extensions:') for k, es in COMMON_EXTENSIONS.items(): print(' %s: %s' % (k, warp_join(',', es, newline='\n' + ' ' * (len(k) + 6)))) print()
def testSaving(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) e = GameEngine(config) # Make a temp copy tmp = "songtest_tmp" files = ["song.ini", "guitar.ogg", "song.ogg", "notes.mid"] try: os.mkdir(tmp) for f in files: shutil.copy(e.resource.fileName("tutorials", "bangbang", f), tmp) infoFile = os.path.join(tmp, "song.ini") guitarFile = os.path.join(tmp, "guitar.ogg") songFile = os.path.join(tmp, "song.ogg") noteFile = os.path.join(tmp, "notes.mid") song = Song(e, infoFile, guitarFile, songFile, None, noteFile) events1 = song.track[0].getAllEvents() song.save() song = Song(e, infoFile, guitarFile, songFile, None, noteFile) events2 = song.track[0].getAllEvents() notes1 = [(time, event) for time, event in events1 if isinstance(event, Note)] notes2 = [(time, event) for time, event in events2 if isinstance(event, Note)] for i, event in enumerate(zip(notes1, notes2)): t1, n1 = event[0] t2, n2 = event[1] if "-v" in sys.argv: print "%8d. %.3f + %.3f\t%2d\t %.3f + %.3f\t%2d" % (i, t1, n1.length, n1.number, t2, n2.length, n2.number) # Allow 2ms of rounding error assert abs(t1 - t2) < 2 assert abs(n1.length - n2.length) < 2 assert n1.number == n2.number finally: # Load another song to free the copy pygame.mixer.music.load(e.resource.fileName("tutorials", "bangbang", "guitar.ogg")) shutil.rmtree(tmp)
def loadPlayers(): global playername, playerpref, playerstat playername = [] playerpref = [] playerstat = [] allplayers = VFS.listdir(playerpath) for name in allplayers: if name == "default.ini": continue if name.lower().endswith(".ini") and len(name) > 4: playername.append(name[0:len(name)-4]) pref = _playerDB.execute('SELECT * FROM `players` WHERE `name` = ?', [playername[-1]]).fetchone() try: if len(pref) == 14: playerpref.append((pref[1], pref[2], pref[3], pref[4], pref[5], pref[6], pref[7], pref[8], pref[9], pref[10])) except TypeError: try: c = Config.load(VFS.resolveRead(_makePlayerIniName(name[:-4])), type = 2) lefty = c.get("player","leftymode") drumf = c.get("player","drumflip") autok = c.get("player","auto_kick") assist = c.get("player","assist_mode") twoch = c.get("player","two_chord_max") neck = c.get("player","neck") neckt = c.get("player","necktype") part = c.get("player","part") diff = c.get("player","difficulty") upname = c.get("player","name") control= c.get("player","controller") del c _playerDB.execute('INSERT INTO `players` VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0, 1)', [playername[-1], lefty, drumf, autok, assist, twoch, neckt, neck, part, diff, upname, control]) playerpref.append((lefty, drumf, autok, assist, twoch, neckt, neck, part, diff, upname)) except IOError: _playerDB.execute('INSERT INTO `players` VALUES (?, 0, 0, 0, 0, 0, 0, ``, 0, 2, ``, 0, 0, 1)', [playername[-1]]) playerpref.append((0, 0, 0, 0, 0, 0, '', 0, 2, '', 0)) _playerDB.execute('UPDATE `players` SET `loaded` = 1 WHERE `name` = ?', [playername[-1]]) _playerDB.commit() return 1
def testNetworking(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) e1 = GameEngine(config) e1.startServer() session1 = e1.connect("localhost") session2 = e1.connect("localhost") while not session1.isConnected() or not session2.isConnected(): e1.run() session1.world.createPlayer("mario") session2.world.createPlayer("luigi") for i in range(10): e1.run() assert len(e1.server.world.players) == 2 assert len(session1.world.players) == 2 assert len(session2.world.players) == 2 session3 = e1.connect("localhost") for i in range(10): e1.run() assert len(session3.world.players) == 2 session1.disconnect() for i in range(10): e1.run() assert len(e1.server.world.players) == 1 assert len(session2.world.players) == 1 e1.quit()
def testNetworking(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) e1 = GameEngine(config) e1.startServer() session1 = e1.connect("localhost") session2 = e1.connect("localhost") while not session1.isConnected() or not session2.isConnected(): e1.run() session1.world.createPlayer("mario") session2.world.createPlayer("luigi") for i in range(10): e1.run() assert len(e1.server.world.players) == 2 assert len(session1.world.players) == 2 assert len(session2.world.players) == 2 session3 = e1.connect("localhost") for i in range(10): e1.run() assert len(session3.world.players) == 2 session1.disconnect() for i in range(10): e1.run() assert len(e1.server.world.players) == 1 assert len(session2.world.players) == 1 e1.quit()
def __init__(self, config = None): Log.debug("GameEngine class init (GameEngine.py)...") self.mainMenu = None #placeholder for main menu object - to prevent reinstantiation self.currentScene = None self.versionString = version #stump: other version stuff moved to allow full version string to be retrieved without instantiating GameEngine self.uploadVersion = "%s-4.0" % Version.PROGRAM_NAME #akedrou - the version passed to the upload site. self.dataPath = Version.dataPath() Log.debug(self.versionString + " starting up...") Log.debug("Python version: " + sys.version.split(' ')[0]) Log.debug("Pygame version: " + str(pygame.version.ver) ) Log.debug("PyOpenGL version: " + OpenGL.__version__) Log.debug("Numpy version: " + np.__version__) Log.debug("PIL version: " + Image.VERSION) Log.debug("sys.argv: " + repr(sys.argv)) Log.debug("os.name: " + os.name) Log.debug("sys.platform: " + sys.platform) if os.name == 'nt': import win32api Log.debug("win32api.GetVersionEx(1): " + repr(win32api.GetVersionEx(1))) elif os.name == 'posix': Log.debug("os.uname(): " + repr(os.uname())) """ Constructor. @param config: L{Config} instance for settings """ self.tutorialFolder = "tutorials" if not config: config = Config.load() self.config = config fps = self.config.get("video", "fps") self.tasks = [] self.frameTasks = [] self.fps = fps self.currentTask = None self.paused = [] self.running = True self.clock = pygame.time.Clock() self.title = self.versionString self.restartRequested = False # evilynux - Check if theme icon exists first, then fallback on FoFiX icon. themename = self.config.get("coffee", "themename") themeicon = os.path.join(Version.dataPath(), "themes", themename, "icon.png") fofixicon = os.path.join(Version.dataPath(), "fofix_icon.png") icon = None if os.path.exists(themeicon): icon = themeicon elif os.path.exists(fofixicon): icon = fofixicon self.video = Video(self.title, icon) if self.config.get("video", "disable_screensaver"): self.video.disableScreensaver() self.audio = Audio() self.frames = 0 self.fpsEstimate = 0 self.priority = self.config.get("engine", "highpriority") self.show_fps = self.config.get("video", "show_fps") self.advSettings = self.config.get("game", "adv_settings") self.restartRequired = False self.quicksetRestart = False self.quicksetPerf = self.config.get("quickset", "performance") self.scrollRate = self.config.get("game", "scroll_rate") self.scrollDelay = self.config.get("game", "scroll_delay") Log.debug("Initializing audio.") frequency = self.config.get("audio", "frequency") bits = self.config.get("audio", "bits") stereo = self.config.get("audio", "stereo") bufferSize = self.config.get("audio", "buffersize") self.audio.open(frequency = frequency, bits = bits, stereo = stereo, bufferSize = bufferSize) self.cmdPlay = 0 self.cmdMode = None self.cmdDiff = None self.cmdPart = None self.gameStarted = False self.world = None self.audioSpeedFactor = 1.0 Log.debug("Initializing video.") #myfingershurt: ensuring windowed mode starts up in center of the screen instead of cascading positions: os.environ['SDL_VIDEO_WINDOW_POS'] = 'center' width, height = [int(s) for s in self.config.get("video", "resolution").split("x")] fullscreen = self.config.get("video", "fullscreen") multisamples = self.config.get("video", "multisamples") self.video.setMode((width, height), fullscreen = fullscreen, multisamples = multisamples) Log.debug("OpenGL version: " + glGetString(GL_VERSION)) Log.debug("OpenGL vendor: " + glGetString(GL_VENDOR)) Log.debug("OpenGL renderer: " + glGetString(GL_RENDERER)) Log.debug("OpenGL extensions: " + ' '.join(sorted(glGetString(GL_EXTENSIONS).split()))) if self.video.default: self.config.set("video", "fullscreen", False) self.config.set("video", "resolution", "800x600") if self.config.get("video", "shader_use"): shaders.set(os.path.join(Version.dataPath(), "shaders")) # Enable the high priority timer if configured if self.priority: Log.debug("Enabling high priority timer.") self.fps = 0 # High priority # evilynux - This was generating an error on the first pass (at least under # GNU/Linux) as the Viewport was not set yet. try: viewport = glGetIntegerv(GL_VIEWPORT) except: viewport = [0, 0, width, height] h = viewport[3] - viewport[1] w = viewport[2] - viewport[0] geometry = (0, 0, w, h) self.svg = SvgContext(geometry) glViewport(int(viewport[0]), int(viewport[1]), int(viewport[2]), int(viewport[3])) self.startupMessages = self.video.error self.input = Input() self.view = View(self, geometry) self.resizeScreen(w, h) self.resource = Resource(Version.dataPath()) self.mainloop = self.loading self.menuMusic = False self.setlistMsg = None # Load game modifications Mod.init(self) self.addTask(self.input, synchronized = False) self.addTask(self.view, synchronized = False) self.addTask(self.resource, synchronized = False) self.data = Data(self.resource, self.svg) ##MFH: Animated stage folder selection option #<themename>\Stages still contains the backgrounds for when stage rotation is off, and practice.png #subfolders under Stages\ will each be treated as a separate animated stage set self.stageFolders = [] currentTheme = themename stagespath = os.path.join(Version.dataPath(), "themes", currentTheme, "backgrounds") themepath = os.path.join(Version.dataPath(), "themes", currentTheme) if os.path.exists(stagespath): self.stageFolders = [] allFolders = os.listdir(stagespath) #this also includes all the stage files - so check to see if there is at least one .png file inside each folder to be sure it's an animated stage folder for name in allFolders: aniStageFolderListing = [] thisIsAnAnimatedStageFolder = False try: aniStageFolderListing = os.listdir(os.path.join(stagespath,name)) except Exception: thisIsAnAnimatedStageFolder = False for aniFile in aniStageFolderListing: if os.path.splitext(aniFile)[1] == ".png" or os.path.splitext(aniFile)[1] == ".jpg" or os.path.splitext(aniFile)[1] == ".jpeg": #we've found at least one .png file here, chances are this is a valid animated stage folder thisIsAnAnimatedStageFolder = True if thisIsAnAnimatedStageFolder: self.stageFolders.append(name) i = len(self.stageFolders) if i > 0: #only set default to first animated subfolder if one exists - otherwise use Normal! defaultAniStage = str(self.stageFolders[0]) else: defaultAniStage = "Normal" Log.debug("Default animated stage for " + currentTheme + " theme = " + defaultAniStage) aniStageOptions = dict([(str(self.stageFolders[n]),self.stageFolders[n]) for n in range(0, i)]) aniStageOptions.update({"Normal":_("Slideshow")}) if i > 1: #only add Random setting if more than one animated stage exists aniStageOptions.update({"Random":_("Random")}) Config.define("game", "animated_stage_folder", str, defaultAniStage, text = _("Animated Stage"), options = aniStageOptions ) #MFH: here, need to track and check a new ini entry for last theme - so when theme changes we can re-default animated stage to first found lastTheme = self.config.get("game","last_theme") if lastTheme == "" or lastTheme != currentTheme: #MFH - no last theme, and theme just changed: self.config.set("game","animated_stage_folder",defaultAniStage) #force defaultAniStage self.config.set("game","last_theme",currentTheme) selectedAnimatedStage = self.config.get("game", "animated_stage_folder") if selectedAnimatedStage != "Normal" and selectedAnimatedStage != "Random": if not os.path.exists(os.path.join(stagespath,selectedAnimatedStage)): Log.warn("Selected animated stage folder " + selectedAnimatedStage + " does not exist, forcing Normal.") self.config.set("game","animated_stage_folder","Normal") #MFH: force "Standard" currently selected animated stage folder is invalid else: Config.define("game", "animated_stage_folder", str, "None", text = _("Animated Stage"), options = ["None",_("None")]) Log.warn("No stages\ folder found, forcing None setting for Animated Stage.") self.config.set("game","animated_stage_folder", "None") #MFH: force "None" when Stages folder can't be found try: fp, pathname, description = imp.find_module("CustomTheme",[themepath]) theme = imp.load_module("CustomTheme", fp, pathname, description) self.theme = theme.CustomTheme(themepath, themename) except ImportError: self.theme = Theme(themepath, themename) self.addTask(self.theme) self.input.addKeyListener(FullScreenSwitcher(self), priority = True) self.input.addSystemEventListener(SystemEventHandler(self)) self.debugLayer = None self.startupLayer = None self.loadingScreenShown = False self.graphicMenuShown = False Log.debug("Ready.")
def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) self.e = GameEngine(config)
def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) self.e = GameEngine(config)
def setUp(self): Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) # Resource expects game_priority to be an integer, # Config won't know unless we define it as such. Config.define("performance", "game_priority", int, 2) self.e = GameEngine()
def __init__(self): self.logClassInits = Config.get("game", "log_class_inits") if self.logClassInits == 1: Log.debug("Controls class init (Player.py)...") self.controls = [] self.controls.append(Config.get("game", "control0")) self.controls.append(Config.get("game", "control1")) self.controls.append(Config.get("game", "control2")) self.controls.append(Config.get("game", "control3")) self.config = [] self.controlList = [] self.maxplayers = 0 self.guitars = 0 self.drums = 0 self.mics = 0 self.overlap = [] self.p2Nav = Config.get("game", "p2_menu_nav") self.drumNav = Config.get("game", "drum_navigation") self.keyCheckerMode = Config.get("game","key_checker_mode") if VFS.isfile(_makeControllerIniName(self.controls[0])): self.config.append(Config.load(VFS.resolveRead(_makeControllerIniName(self.controls[0])), type = 1)) if VFS.isfile(_makeControllerIniName(self.controls[1])) and self.controls[1] != "None": self.config.append(Config.load(VFS.resolveRead(_makeControllerIniName(self.controls[1])), type = 1)) else: self.config.append(None) Config.set("game", "control1", None) self.controls[1] = "None" if VFS.isfile(_makeControllerIniName(self.controls[2])) and self.controls[2] != "None": self.config.append(Config.load(VFS.resolveRead(_makeControllerIniName(self.controls[2])), type = 1)) else: self.config.append(None) Config.set("game", "control2", None) self.controls[2] = "None" if VFS.isfile(_makeControllerIniName(self.controls[3])) and self.controls[3] != "None": self.config.append(Config.load(VFS.resolveRead(_makeControllerIniName(self.controls[3])), type = 1)) else: self.config.append(None) Config.set("game", "control3", None) self.controls[3] = "None" else: confM = None if Microphone.supported: confM = Config.load(VFS.resolveRead(_makeControllerIniName("defaultm")), type = 1) self.config.append(Config.load(VFS.resolveRead(_makeControllerIniName("defaultg")), type = 1)) self.config.append(Config.load(VFS.resolveRead(_makeControllerIniName("defaultd")), type = 1)) self.config.append(confM) self.config.append(None) Config.set("game", "control0", "defaultg") Config.set("game", "control1", "defaultd") self.controls = ["defaultg", "defaultd"] if confM is not None: Config.set("game", "control2", "defaultm") self.controls.append("defaultm") else: Config.set("game", "control2", None) self.controls.append("None") Config.set("game", "control3", None) self.controls.append("None") self.type = [] self.analogKill = [] self.analogSP = [] self.analogSPThresh = [] self.analogSPSense = [] self.analogDrum = [] #FIXME: Analog Drum self.analogSlide = [] self.analogFX = [] #FIXME: Analog FX self.twoChord = [] self.micDevice = [] #stump self.micTapSensitivity = [] self.micPassthroughVolume = [] self.flags = 0 for i in self.config: if i: type = i.get("controller", "type") if type == 5: self.mics += 1 elif type > 1: self.guitars += 1 else: self.drums += 1 self.type.append(type) self.analogKill.append(i.get("controller", "analog_kill")) self.analogSP.append(i.get("controller", "analog_sp")) self.analogSPThresh.append(i.get("controller", "analog_sp_threshold")) self.analogSPSense.append(i.get("controller", "analog_sp_sensitivity")) self.analogDrum.append(i.get("controller", "analog_drum")) #FIXME: Analog Drum self.analogSlide.append(i.get("controller", "analog_slide")) self.analogFX.append(i.get("controller", "analog_fx")) #FIXME: Analog FX self.micDevice.append(i.get("controller", "mic_device")) #stump self.micTapSensitivity.append(i.get("controller", "mic_tap_sensitivity")) self.micPassthroughVolume.append(i.get("controller", "mic_passthrough_volume")) self.twoChord.append(i.get("controller", "two_chord_max")) self.controlList.append(i.get("controller", "name")) else: self.type.append(None) self.analogKill.append(None) self.analogSP.append(None) self.analogFX.append(None) #FIXME: Analog FX self.twoChord.append(None) def keycode(name, config): if not config: return "None" k = config.get("controller", name) if k == "None": return "None" try: return int(k) except: return getattr(pygame, k) self.controlMapping = {} global menuUp, menuDown, menuNext, menuPrev, menuYes, menuNo global drum1s, drum2s, drum3s, drum4s, drum5s, bassdrums global key1s, key2s, key3s, key4s, key5s, keysolos, action1s, action2s, kills menuUp = [] menuDown = [] menuNext = [] menuPrev = [] menuYes = [] menuNo = [] drum1s = [] drum2s = [] drum3s = [] drum4s = [] drum5s = [] bassdrums = [] key1s = [] key2s = [] key3s = [] key4s = [] key5s = [] keysolos = [] action1s = [] action2s = [] kills = [] for i, config in enumerate(self.config): if self.type[i] in DRUMTYPES: #drum set drum1s.extend([CONTROLS[i][DRUM1], CONTROLS[i][DRUM1A]]) drum2s.extend([CONTROLS[i][DRUM2], CONTROLS[i][DRUM2A]]) drum3s.extend([CONTROLS[i][DRUM3], CONTROLS[i][DRUM3A]]) drum4s.extend([CONTROLS[i][DRUM4], CONTROLS[i][DRUM4A]]) drum5s.extend([CONTROLS[i][DRUM5], CONTROLS[i][DRUM5A]]) bassdrums.extend([CONTROLS[i][DRUMBASS], CONTROLS[i][DRUMBASSA]]) if self.p2Nav == 1 or (self.p2Nav == 0 and i == 0): if self.drumNav: menuUp.extend([CONTROLS[i][DRUM2], CONTROLS[i][DRUM2A]]) if self.type[i] == 3: menuDown.extend([CONTROLS[i][DRUM4], CONTROLS[i][DRUM4A]]) else: menuDown.extend([CONTROLS[i][DRUM3], CONTROLS[i][DRUM3A]]) menuYes.extend([CONTROLS[i][DRUM5], CONTROLS[i][DRUM5A]]) menuNo.extend([CONTROLS[i][DRUM1], CONTROLS[i][DRUM1A]]) menuYes.append(CONTROLS[i][START]) menuNo.append(CONTROLS[i][CANCEL]) menuUp.append(CONTROLS[i][UP]) menuDown.append(CONTROLS[i][DOWN]) menuNext.append(CONTROLS[i][RIGHT]) menuPrev.append(CONTROLS[i][LEFT]) elif self.type[i] in MICTYPES: #stump: it's a mic if self.p2Nav == 1 or (self.p2Nav == 0 and i == 0): menuUp.append(CONTROLS[i][UP]) menuDown.append(CONTROLS[i][DOWN]) menuNext.append(CONTROLS[i][RIGHT]) menuPrev.append(CONTROLS[i][LEFT]) menuYes.append(CONTROLS[i][START]) menuNo.append(CONTROLS[i][CANCEL]) elif self.type[i] in GUITARTYPES: if self.type[i] == 0: key1s.extend([CONTROLS[i][KEY1], CONTROLS[i][KEY1A]]) else: key1s.extend([CONTROLS[i][KEY1]]) key2s.extend([CONTROLS[i][KEY2], CONTROLS[i][KEY2A]]) key3s.extend([CONTROLS[i][KEY3], CONTROLS[i][KEY3A]]) key4s.extend([CONTROLS[i][KEY4], CONTROLS[i][KEY4A]]) key5s.extend([CONTROLS[i][KEY5], CONTROLS[i][KEY5A]]) keysolos.extend([CONTROLS[i][KEY1A], CONTROLS[i][KEY2A], CONTROLS[i][KEY3A], CONTROLS[i][KEY4A], CONTROLS[i][KEY5A]]) action1s.extend([CONTROLS[i][ACTION1]]) action2s.extend([CONTROLS[i][ACTION2]]) kills.extend([CONTROLS[i][KILL]]) if self.p2Nav == 1 or (self.p2Nav == 0 and i == 0): menuUp.extend([CONTROLS[i][ACTION1], CONTROLS[i][UP]]) menuDown.extend([CONTROLS[i][ACTION2], CONTROLS[i][DOWN]]) menuNext.extend([CONTROLS[i][RIGHT], CONTROLS[i][KEY4], CONTROLS[i][KEY4A]]) menuPrev.extend([CONTROLS[i][LEFT], CONTROLS[i][KEY3], CONTROLS[i][KEY3A]]) menuYes.extend([CONTROLS[i][KEY1], CONTROLS[i][KEY1A], CONTROLS[i][START]]) menuNo.extend([CONTROLS[i][KEY2], CONTROLS[i][KEY2A], CONTROLS[i][CANCEL]]) if self.type[i] == 3: controlMapping = { #akedrou - drums do not need special declarations! keycode("key_left", config): CONTROLS[i][LEFT], keycode("key_right", config): CONTROLS[i][RIGHT], keycode("key_up", config): CONTROLS[i][UP], keycode("key_down", config): CONTROLS[i][DOWN], keycode("key_star", config): CONTROLS[i][STAR], keycode("key_cancel", config): CONTROLS[i][CANCEL], keycode("key_1a", config): CONTROLS[i][DRUM5A], #order is important. This minimizes key conflicts. keycode("key_2a", config): CONTROLS[i][DRUM1A], keycode("key_3a", config): CONTROLS[i][DRUM2A], keycode("key_4a", config): CONTROLS[i][DRUM3A], keycode("key_5a", config): CONTROLS[i][DRUM4A], keycode("key_action2", config): CONTROLS[i][DRUMBASSA], keycode("key_1", config): CONTROLS[i][DRUM5], keycode("key_2", config): CONTROLS[i][DRUM1], keycode("key_3", config): CONTROLS[i][DRUM2], keycode("key_4", config): CONTROLS[i][DRUM3], keycode("key_5", config): CONTROLS[i][DRUM4], keycode("key_action1", config): CONTROLS[i][DRUMBASS], keycode("key_start", config): CONTROLS[i][START], } elif self.type[i] == 2: controlMapping = { #akedrou - drums do not need special declarations! keycode("key_left", config): CONTROLS[i][LEFT], keycode("key_right", config): CONTROLS[i][RIGHT], keycode("key_up", config): CONTROLS[i][UP], keycode("key_down", config): CONTROLS[i][DOWN], keycode("key_star", config): CONTROLS[i][STAR], keycode("key_cancel", config): CONTROLS[i][CANCEL], keycode("key_1a", config): CONTROLS[i][DRUM5A], #order is important. This minimizes key conflicts. keycode("key_2a", config): CONTROLS[i][DRUM1A], keycode("key_3a", config): CONTROLS[i][DRUM2A], keycode("key_4a", config): CONTROLS[i][DRUM3A], keycode("key_action2", config): CONTROLS[i][DRUMBASSA], keycode("key_1", config): CONTROLS[i][DRUM5], keycode("key_2", config): CONTROLS[i][DRUM1], keycode("key_3", config): CONTROLS[i][DRUM2], keycode("key_4", config): CONTROLS[i][DRUM3], keycode("key_action1", config): CONTROLS[i][DRUMBASS], keycode("key_start", config): CONTROLS[i][START], } elif self.type[i] > -1: controlMapping = { #akedrou - drums do not need special declarations! keycode("key_left", config): CONTROLS[i][LEFT], keycode("key_right", config): CONTROLS[i][RIGHT], keycode("key_up", config): CONTROLS[i][UP], keycode("key_down", config): CONTROLS[i][DOWN], keycode("key_cancel", config): CONTROLS[i][CANCEL], keycode("key_star", config): CONTROLS[i][STAR], keycode("key_kill", config): CONTROLS[i][KILL], keycode("key_1a", config): CONTROLS[i][KEY1A], #order is important. This minimizes key conflicts. keycode("key_2a", config): CONTROLS[i][KEY2A], keycode("key_3a", config): CONTROLS[i][KEY3A], keycode("key_4a", config): CONTROLS[i][KEY4A], keycode("key_5a", config): CONTROLS[i][KEY5A], keycode("key_1", config): CONTROLS[i][KEY1], keycode("key_2", config): CONTROLS[i][KEY2], keycode("key_3", config): CONTROLS[i][KEY3], keycode("key_4", config): CONTROLS[i][KEY4], keycode("key_5", config): CONTROLS[i][KEY5], keycode("key_action2", config): CONTROLS[i][ACTION2], keycode("key_action1", config): CONTROLS[i][ACTION1], keycode("key_start", config): CONTROLS[i][START], } else: controlMapping = {} controlMapping = self.checkMapping(controlMapping, i) self.controlMapping.update(controlMapping) self.reverseControlMapping = dict((value, key) for key, value in self.controlMapping.iteritems() ) # Multiple key support self.heldKeys = {}
def setUp(self): Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) # Resource expects game_priority to be an integer, # Config won't know unless we define it as such. Config.define("performance", "game_priority", int, 2) self.e = GameEngine()
logfile = 'windowopener.log' if not cmdline.logfile else cmdline.logfile if cmdline.debug: logging.basicConfig(filename=logfile, level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s') else: logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') if not has_console: logging.info('Running from pythonw, capturing all STDOUT/STDERR to log') config = Config() config.load() pm = config.getProgramManager() def get_action(): if cmdline.program != 'yes': abort(403) elif not config.getToken(): abort(404) if request.method == 'GET': active = pm.getActiveProgram() ret = { 'programs': pm.getPrograms(), 'active': active.name if active else None
def list_commands(self, ctx): return self.commands CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help']) @click.group(cls=OrderedGroup, context_settings=CONTEXT_SETTINGS) def main(): """ LHC (Local HTTP Cache), cache static files to your local machine """ config = Config.load() @main.command() @click.option('-v', '--verbose', is_flag=True, default=False, help='verbose info') @handle_error def info(verbose): """ show the running status of LHC """ config = Config.load() running = config.proxy.running()
from configuration import Config filepath=None try: filepath = Config.find() except IOError: # Allow failure pass else: Config.load(filepath) del filepath from data_loader import DataLoader,Batcher #from deepq import * #from speech import * #from seq2seq import * from .autoenc import Autoenc, AutoencFwd from .memnet import MemNet, MemNetFwd from .alexnet import AlexNet, AlexNetFwd from .vgg import VGG, VGGFwd from .residual import Residual, ResidualFwd
import Version from util import Log import gettext import os import glob from util.Unicode import unicodify Config.define("game", "language", str, "") def getAvailableLanguages(): return [os.path.basename(l).capitalize().replace(".mo", "").replace("_", " ") for l in glob.glob(os.path.join(Version.dataPath(), "translations", "*.mo"))] def dummyTranslator(string): return unicodify(string) language = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini").get("game", "language") _ = dummyTranslator if language: try: trFile = os.path.join(Version.dataPath(), "translations", "%s.mo" % language.lower().replace(" ", "_")) catalog = gettext.GNUTranslations(open(trFile, "rb")) def translate(m): return catalog.ugettext(m) _ = translate except Exception, x: Log.warn("Unable to select language '%s': %s" % (language, x)) language = None Config.set("game", "language", "") # Define the config key again now that we have some options for it
if opt in ["--part", "-p"]: part = arg if opt in ["--diff", "-d", "-l"]: difficulty = arg #evilynux - Multiplayer and mode selection support if opt in ["--mode", "-m"]: mode = int(arg) if opt in ["--nbrplayers", "-n"]: nbrplayers = int(arg) # Load the configuration file. if configFile is not None: if configFile.lower() == "reset": fileName = os.path.join(VFS.getWritableResourcePath(), Version.PROGRAM_UNIXSTYLE_NAME + ".ini") os.remove(fileName) config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) else: config = Config.load(configFile, setAsDefault = True) else: config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) #Lysdestic - Allow support for manipulating fullscreen via CLI if fullscreen is not None: Config.set("video", "fullscreen", fullscreen) #Lysdestic - Change resolution from CLI if resolution is not None: Config.set("video", "resolution", resolution) #Lysdestic - Alter theme from CLI if theme is not None:
Config.define("game", "language", str, "") def getAvailableLanguages(): return [ os.path.basename(l).capitalize().replace(".mo", "").replace("_", " ") for l in glob.glob( os.path.join(Version.dataPath(), "translations", "*.mo")) ] def dummyTranslator(string): return unicodify(string) language = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini").get( "game", "language") _ = dummyTranslator if language: try: trFile = os.path.join(Version.dataPath(), "translations", "%s.mo" % language.lower().replace(" ", "_")) catalog = gettext.GNUTranslations(open(trFile, "rb")) def translate(m): return catalog.ugettext(m) _ = translate except Exception, x: Log.warn("Unable to select language '%s': %s" % (language, x)) language = None