27 lines
		
	
	
		
			951 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			951 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import typing
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import settings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class FactorioSettings(settings.Group):
							 | 
						||
| 
								 | 
							
								    class Executable(settings.UserFilePath):
							 | 
						||
| 
								 | 
							
								        is_exe = True
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    class ServerSettings(settings.OptionalUserFilePath):
							 | 
						||
| 
								 | 
							
								        """
							 | 
						||
| 
								 | 
							
								        by default, no settings are loaded if this file does not exist. \
							 | 
						||
| 
								 | 
							
								If this file does exist, then it will be used.
							 | 
						||
| 
								 | 
							
								        server_settings: "factorio\\\\data\\\\server-settings.json"
							 | 
						||
| 
								 | 
							
								        """
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    class FilterItemSends(settings.Bool):
							 | 
						||
| 
								 | 
							
								        """Whether to filter item send messages displayed in-game to only those that involve you."""
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    class BridgeChatOut(settings.Bool):
							 | 
						||
| 
								 | 
							
								        """Whether to send chat messages from players on the Factorio server to Archipelago."""
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    executable: Executable = Executable("factorio/bin/x64/factorio")
							 | 
						||
| 
								 | 
							
								    server_settings: typing.Optional[ServerSettings] = None
							 | 
						||
| 
								 | 
							
								    filter_item_sends: typing.Union[FilterItemSends, bool] = False
							 | 
						||
| 
								 | 
							
								    bridge_chat_out: typing.Union[BridgeChatOut, bool] = True
							 |