def get_ssys(conn, name): '''Get the named star system from an open database.''' ssys = SSystem() ssys.name = name cur = conn.cursor() # Get the basic system data. cur.execute('''SELECT SSysID, SSysPosX, SSysPosY, SSysRadius, SSysStars , SSysInterference, SSysNebulaDensity, SSysNebulaVolatility FROM SSystems WHERE SSysName = ?''', (name,)) row = cur.fetchone() if row is None: # Nothing but a name! return ssys else: ssys_id = row['SSysID'] ssys.pos.x, ssys.pos.y = row['SSysPosX'], row['SSysPosY'] ssys.radius, ssys.stars = row['SSysRadius'], row['SSysStars'] ssys.interference = row['SSysInterference'] ssys.nebula.density = row['SSysNebulaDensity'] ssys.nebula.volatility = row['SSysNebulaDensity'] _get_ssys_extras(conn, ssys, ssys_id) return ssys
def get_ssystems(conn): '''Get all star systems from an open database.''' ssystems = [] cur = conn.cursor() cur.execute('''SELECT SSysID, SSysPosX, SSysPosY, SSysRadius, SSysStars , SSysInterference, SSysNebulaDensity, SSysNebulaVolatility FROM SSystems''') for row in cur: ssys = SSystem() ssys.pos.x, ssys.pos.y = row['SSysPosX'], row['SSysPosY'] ssys.radius, ssys.stars = row['SSysRadius'], row['SSysStars'] ssys.interference = row['SSysInterference'] ssys.nebula.density = row['SSysNebulaDensity'] ssys.nebula.volatility = row['SSysNebulaDensity'] ssys_id = row['SSysID'] _get_ssys_extras(conn, ssys, ssys_id) ssystems.append(ssys) return ssystems
def main(): '''Generate an SVG map and print it to standard output. The data files are assumed to be in ./dat/ssys/, relative to the current path, so this should be run from the root of the Naev source directory. BR change : runs from naevroot/utils/starmap so data is in ../../dat/ssys ''' sys.stderr.write("Begin\n") # Local variables naevRoot = '../..' logging.basicConfig(level=logging.DEBUG) ssystems = [] assets = [] sys.stderr.write("\tLoading stellar systems\n") for ssysfile in datafiles('SSystems', naevRoot): # Parse each XML file into a SSystem object. try: ssystems.append(SSystem(ssysfile)) except: print("Choked on '{}'".format(ssysfile), file=sys.stderr) raise sys.stderr.write("\t\t" + str(len(ssystems)) + " systems loaded\n") sys.stderr.write("\tLoading assets\n") for assetfile in datafiles('Assets', naevRoot): # Parse each XML file into a Asset object. try: assets.append(Asset(assetfile)) except: print("Choked on '{}'".format(assetfile), file=sys.stderr) raise sys.stderr.write("\t\t" + str(len(assets)) + " assets loaded\n") sys.stderr.write("\tBuilding map\n") makemap(ssystems, assets) sys.stderr.write("Normal end\n")