Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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")