| 
									
										
										
										
											2021-10-21 20:23:13 +02:00
										 |  |  | from argparse import Namespace | 
					
						
							| 
									
										
										
										
											2023-02-26 19:13:24 -06:00
										 |  |  | from typing import Type, Tuple | 
					
						
							| 
									
										
										
										
											2021-10-21 20:23:13 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-10 19:40:43 +02:00
										 |  |  | from BaseClasses import MultiWorld | 
					
						
							| 
									
										
										
										
											2023-02-26 19:13:24 -06:00
										 |  |  | from worlds.AutoWorld import call_all, World | 
					
						
							| 
									
										
										
										
											2021-10-21 20:23:13 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-26 19:13:24 -06:00
										 |  |  | gen_steps = ("generate_early", "create_regions", "create_items", "set_rules", "generate_basic", "pre_fill") | 
					
						
							| 
									
										
										
										
											2021-10-21 20:23:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-26 19:13:24 -06:00
										 |  |  | def setup_solo_multiworld(world_type: Type[World], steps: Tuple[str, ...] = gen_steps) -> MultiWorld: | 
					
						
							| 
									
										
										
										
											2022-10-31 21:41:21 -05:00
										 |  |  |     multiworld = MultiWorld(1) | 
					
						
							|  |  |  |     multiworld.game[1] = world_type.game | 
					
						
							|  |  |  |     multiworld.player_name = {1: "Tester"} | 
					
						
							|  |  |  |     multiworld.set_seed() | 
					
						
							| 
									
										
										
										
											2021-10-21 20:23:13 +02:00
										 |  |  |     args = Namespace() | 
					
						
							| 
									
										
										
										
											2022-08-15 16:46:59 -05:00
										 |  |  |     for name, option in world_type.option_definitions.items(): | 
					
						
							| 
									
										
										
										
											2021-10-21 20:23:13 +02:00
										 |  |  |         setattr(args, name, {1: option.from_any(option.default)}) | 
					
						
							| 
									
										
										
										
											2022-10-31 21:41:21 -05:00
										 |  |  |     multiworld.set_options(args) | 
					
						
							|  |  |  |     multiworld.set_default_common_options() | 
					
						
							| 
									
										
										
										
											2023-02-26 19:13:24 -06:00
										 |  |  |     for step in steps: | 
					
						
							| 
									
										
										
										
											2022-10-31 21:41:21 -05:00
										 |  |  |         call_all(multiworld, step) | 
					
						
							|  |  |  |     return multiworld |