32 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import json | ||
|  | import os | ||
|  | from BaseClasses import Entrance | ||
|  | 
 | ||
|  | with open(os.path.join(os.path.dirname(__file__), 'regions.json'), 'r') as file: | ||
|  |     regionMap = json.loads(file.read()) | ||
|  | 
 | ||
|  | def create_regions(world, player: int): | ||
|  |     from . import create_region | ||
|  |     from .Locations import location_table | ||
|  |      | ||
|  |     # Create regions and assign locations to each region | ||
|  |     for region in regionMap: | ||
|  |         exit_array = regionMap[region] | ||
|  |         if len(exit_array) == 0: | ||
|  |             exit_array = None | ||
|  |         new_region = create_region(world, player, region, [location["name"] for location in location_table if location["region"] == region], exit_array) | ||
|  |         world.regions += [new_region] | ||
|  | 
 | ||
|  |     menu = create_region(world, player, "Menu", None, ["Raft"]) | ||
|  |     world.regions += [menu] | ||
|  |     menuConn = world.get_entrance("MenuToRaft", player) | ||
|  |     menuConn.connect(world.get_region("Raft", player)) | ||
|  | 
 | ||
|  |     # Link regions together | ||
|  |     for region in regionMap: | ||
|  |         for linkedRegion in regionMap[region]: | ||
|  |             connection = world.get_entrance(getConnectionName(region, linkedRegion), player) | ||
|  |             connection.connect(world.get_region(linkedRegion, player)) | ||
|  | 
 | ||
|  | def getConnectionName(entranceName: str, exitName: str): | ||
|  |     return entranceName + "To" + exitName |