Use OptionSet for blacklist
This commit is contained in:
		
							parent
							
								
									a15689e380
								
							
						
					
					
						commit
						efb4e5a7b3
					
				|  | @ -123,7 +123,7 @@ def generate_mod(world, output_directory: str): | |||
|     if getattr(multiworld, "satellite")[player].value == Options.Satellite.option_randomize_recipe: | ||||
|         template_data["free_sample_blacklist"]["satellite"] = 1 | ||||
| 
 | ||||
|     template_data["free_sample_blacklist"].update(multiworld.free_sample_blacklist[player].value) | ||||
|     template_data["free_sample_blacklist"].update({item: 1 for item in multiworld.free_sample_blacklist[player].value}) | ||||
| 
 | ||||
|     control_code = control_template.render(**template_data) | ||||
|     data_template_code = data_template.render(**template_data) | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| from __future__ import annotations | ||||
| import typing | ||||
| 
 | ||||
| from Options import Choice, OptionDict, ItemDict, Option, DefaultOnToggle, Range, DeathLink | ||||
| from Options import Choice, OptionDict, OptionSet, ItemDict, Option, DefaultOnToggle, Range, DeathLink | ||||
| from schema import Schema, Optional, And, Or | ||||
| 
 | ||||
| # schema helpers | ||||
|  | @ -154,17 +154,9 @@ class FactorioStartItems(ItemDict): | |||
|     default = {"burner-mining-drill": 19, "stone-furnace": 19} | ||||
| 
 | ||||
| 
 | ||||
| class FactorioFreeSampleBlacklist(OptionDict): | ||||
|     """any non-zero value means that item is blacklisted from free samples.  zero overrides the built-in blacklist""" | ||||
| class FactorioFreeSampleBlacklist(OptionSet): | ||||
|     displayname = "Free Sample Blacklist" | ||||
| 
 | ||||
|     def __init__(self, value: typing.Dict[str, int]): | ||||
|         self.value = value or {} | ||||
|         if any(type(value) not in [int, bool] for value in self.value.values()): | ||||
|             raise Exception("Cannot have non-number blacklist options") | ||||
|         for key in self.value.keys(): | ||||
|             self.value[key] = 1 if self.value[key] else 0 | ||||
| 
 | ||||
| 
 | ||||
| class TrapCount(Range): | ||||
|     range_end = 4 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue