34 lines
		
	
	
		
			857 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			857 B
		
	
	
	
		
			Python
		
	
	
	
from dataclasses import dataclass
 | 
						|
 | 
						|
from ..strings.ap_names import event_names
 | 
						|
from ..strings.metal_names import MetalBar, Ore
 | 
						|
from ..strings.region_names import Region
 | 
						|
 | 
						|
all_events = event_names.all_events.copy()
 | 
						|
all_logic_events = list()
 | 
						|
 | 
						|
 | 
						|
@dataclass(frozen=True)
 | 
						|
class LogicEvent:
 | 
						|
    name: str
 | 
						|
    region: str
 | 
						|
 | 
						|
 | 
						|
@dataclass(frozen=True)
 | 
						|
class LogicItemEvent(LogicEvent):
 | 
						|
    item: str
 | 
						|
 | 
						|
    def __init__(self, item: str, region: str):
 | 
						|
        super().__init__(f"{item} (Logic event)", region)
 | 
						|
        super().__setattr__("item", item)
 | 
						|
 | 
						|
 | 
						|
def register_item_event(item: str, region: str = Region.farm):
 | 
						|
    event = LogicItemEvent(item, region)
 | 
						|
    all_logic_events.append(event)
 | 
						|
    all_events.add(event.name)
 | 
						|
 | 
						|
 | 
						|
for i in (MetalBar.copper, MetalBar.iron, MetalBar.gold, MetalBar.iridium, Ore.copper, Ore.iron, Ore.gold, Ore.iridium):
 | 
						|
    register_item_event(i)
 |