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