RegionGenerator
From OpenSimulator
(Difference between revisions)
Line 2: | Line 2: | ||
It generates a square piece of land. | It generates a square piece of land. | ||
+ | You can feed it the from-to X Postion and from - to Y position then it makes the xml files for you. | ||
− | It requires the | + | I have made a .exe version of this program, you can get it from these locations: |
+ | http://www.mediafire.com/?xred9vm0ent | ||
+ | http://4rensics.org/download/?filepath=regiongen.zip | ||
+ | |||
+ | It requires the Cheetah Templating module and python 2.5. | ||
You can get cheetah from http://www.cheetahtemplate.org/ | You can get cheetah from http://www.cheetahtemplate.org/ |
Revision as of 07:45, 13 July 2008
Heres a Region Generator in Python
It generates a square piece of land. You can feed it the from-to X Postion and from - to Y position then it makes the xml files for you.
I have made a .exe version of this program, you can get it from these locations: http://www.mediafire.com/?xred9vm0ent http://4rensics.org/download/?filepath=regiongen.zip
It requires the Cheetah Templating module and python 2.5.
You can get cheetah from http://www.cheetahtemplate.org/
You can get python from http://www.python.org/download/
#!/usr/bin/python from Cheetah.Template import Template import uuid import os import pickle # ---------------------- # START OF CONFIGURATION s = {} # Region Configuration s['regionname'] = "LandsNameHere" # Type the name of your land s['x'] = [2900,3000] # From - To x position s['y'] = [2900,3000] # From - To y position # User Configuration s['firstname'] = "John" # Account firstname s['lastname'] = "Doe" # Account lastname s['useruuid'] = 'your clients uuid goes here' s['password'] = 'mypass' # Account password # Network Configuration s['startport'] = 9000 # Port the regions start on # incrimented by 1 each time s['internalip'] = "123.456.789.123" # Server ip s['externalhost'] = "mydomain.org" # Domain name or ip of server # (accessed externally) # Files are put in here. regionsdir = 'Regions' template = """<Root> <Config sim_UUID="$uuid" sim_name="$regionname" sim_location_x="$x" sim_location_y="$y" internal_ip_address="$s.internalip" internal_ip_port="$port" allow_alternate_ports="false" external_host_name="$s.externalhost" master_avatar_uuid="$s.useruuid" estate_covenant_uuid="00000000-0000-0000-0000-000000000000" master_avatar_first="$s.firstname" master_avatar_last="$s.lastname" master_avatar_pass="$s.password" /> </Root>""" savefile = "regiongen_save.pkl" # END OF CONFIGURATION # -------------------- def maketemplate(regionname, x, y, port, uid): t = Template(template) t.s = s t.uuid = uid t.regionname = regionname t.x = x t.y = y t.port = port return str(t) # Make directory to put regions in if not there try: os.mkdir(regionsdir) except OSError: pass settings = {} # Load settings file try: settingsfile = open(savefile) settings = pickle.load(settingsfile) settingsfile.close() except IOError: pass counter = 0 for xnum in range(s['x'][0], s['x'][1]): for ynum in range(s['y'][0], s['y'][1]): counter += 1 default = False # Figure out region name if counter == 1: default = True regionname = s['regionname'] else: regionname = s['regionname'] + str(counter) # Figure out paths if default: path = os.path.join(regionsdir,"default.xml") else: path = os.path.join(regionsdir,"%s.%s.%s.xml" % \ (regionname, xnum, ynum)) # Calculate port port = s['startport'] + (counter - 1) # Try to get UUID from settings # Generate + Save if not found if settings.has_key(regionname): uid = settings[regionname] else: uid = str(uuid.uuid1()) settings[regionname] = uid # Make template tmpldata = maketemplate(regionname, xnum, ynum, port, uid) # Save file tmplfile = open(path, 'w') tmplfile.write(tmpldata) tmplfile.close() # Print progress print regionname # Save settings file try: settingsfile = open(savefile, 'w') pickle.dump(settings, settingsfile) settingsfile.close() except IOError: pass