Mercurial > atc
changeset 56:a793c2b15c71 server
server: load a specified map from fs
author | Josef "Jeff" Sipek <jeffpc@josefsipek.net> |
---|---|
date | Sun, 03 Jun 2007 01:18:28 -0400 |
parents | 4a1b3c4f8ca5 |
children | 35999e551d7a |
files | atcgame/maps.py atcgame/server.py |
diffstat | 2 files changed, 49 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/atcgame/maps.py Sun Jun 03 00:59:56 2007 -0400 +++ b/atcgame/maps.py Sun Jun 03 01:18:28 2007 -0400 @@ -19,14 +19,15 @@ import config import beacon -def get_map_info(file): +def get_map_info(file, name): fd = open(file, 'r') s = fd.read() fd.close() s = s.split("\n") - return Map( float(s[0]), # centerx + return Map( name, # map name + float(s[0]), # centerx float(s[1]), # centery float(s[2]), # mperpix float(s[3]), # atcx @@ -54,7 +55,8 @@ "output": float(line[5])}) class Map: - def __init__(self, centerx, centery, mperpix, atcx, atcy): + def __init__(self, name, centerx, centery, mperpix, atcx, atcy): + self.name = name self.centerx = centerx self.centery = centery self.mperpix = mperpix @@ -77,31 +79,37 @@ while self.navs.__len__(): self.navs.pop() -MAPS = [] +def getmap(name): + maps_dir = os.listdir(config.maps_dir()) -maps_dir = os.listdir(config.maps_dir()) + MAP = None + + for map_dir in maps_dir: + if map_dir != name: + continue -for map_dir in maps_dir: - files = os.listdir(config.maps_dir() + "/" + map_dir) - - if (files.count("map.info") == 0): - print "Missing " + config.maps_dir() + "/" + map_dir + "/map.info" - sys.exit(1) - - if (files.count("map.png") == 0): - print "Missing " + config.maps_dir() + "/" + map_dir + "/map.png" - sys.exit(1) - - if (files.count("navaid.info") == 0): - print "Missing " + config.maps_dir() + "/" + map_dir + "/navaid.info" - sys.exit(1) - - map_info = get_map_info(config.maps_dir() + "/" + map_dir + "/map.info") - get_navaids(config.maps_dir() + "/" + map_dir + "/navaid.info", map_info) - - map_info.image = "maps/" + map_dir + "/map.png" - - MAPS.append(map_info) - print "Parsed and added '" + map_dir + "' map (" + str(map_info.ninfo.__len__()) + " navaids)" - -print "Added " + str(MAPS.__len__()) + " maps" + files = os.listdir(config.maps_dir() + "/" + map_dir) + + if (files.count("map.info") == 0): + print "Missing " + config.maps_dir() + "/" + map_dir + "/map.info" + sys.exit(1) + + if (files.count("map.png") == 0): + print "Missing " + config.maps_dir() + "/" + map_dir + "/map.png" + sys.exit(1) + + if (files.count("navaid.info") == 0): + print "Missing " + config.maps_dir() + "/" + map_dir + "/navaid.info" + sys.exit(1) + + map_info = get_map_info(config.maps_dir() + "/" + map_dir + "/map.info", map_dir) + get_navaids(config.maps_dir() + "/" + map_dir + "/navaid.info", map_info) + + map_info.image = "maps/" + map_dir + "/map.png" + print "Parsed and added '" + map_dir + "' map (" + str(map_info.ninfo.__len__()) + " navaids)" + + MAP = map_info + + if not MAP: raise ValueError + + return MAP
--- a/atcgame/server.py Sun Jun 03 00:59:56 2007 -0400 +++ b/atcgame/server.py Sun Jun 03 01:18:28 2007 -0400 @@ -22,6 +22,7 @@ import config import utils + import maps except ImportError, err: print "Couldn't load module %s" % (err) sys.exit() @@ -64,9 +65,17 @@ class ATCServer: def __init__(self, mapname): - self.map = mapname + # Find the map + self.map = maps.getmap(mapname) + self.map.bootstrap_navs() + + # List of all planes in the world + self.planes = [] + + def __run(self): + for p in self.planes: + p.update() def zero(self): - self.i += 1 - return self.i + return 0