54 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from __future__ import annotations
 | 
						|
 | 
						|
import typing
 | 
						|
from typing import Dict, Collection
 | 
						|
 | 
						|
from ..content.game_content import StardewContent
 | 
						|
from ..options import StardewValleyOptions
 | 
						|
from ..stardew_rule import StardewRule
 | 
						|
 | 
						|
if typing.TYPE_CHECKING:
 | 
						|
    from .logic import StardewLogic
 | 
						|
 | 
						|
 | 
						|
class LogicRegistry:
 | 
						|
 | 
						|
    def __init__(self):
 | 
						|
        self.item_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.seed_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.cooking_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.crafting_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.crop_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.artisan_good_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.fish_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.museum_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.festival_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.quest_rules: Dict[str, StardewRule] = {}
 | 
						|
        self.special_order_rules: Dict[str, StardewRule] = {}
 | 
						|
 | 
						|
        self.sve_location_rules: Dict[str, StardewRule] = {}
 | 
						|
 | 
						|
 | 
						|
class BaseLogicMixin:
 | 
						|
    def __init__(self, *args, **kwargs):
 | 
						|
        pass
 | 
						|
 | 
						|
 | 
						|
class BaseLogic(BaseLogicMixin):
 | 
						|
    player: int
 | 
						|
    registry: LogicRegistry
 | 
						|
    options: StardewValleyOptions
 | 
						|
    content: StardewContent
 | 
						|
    regions: Collection[str]
 | 
						|
    logic: StardewLogic
 | 
						|
 | 
						|
    def __init__(self, player: int, registry: LogicRegistry, options: StardewValleyOptions, content: StardewContent, regions: Collection[str],
 | 
						|
                 logic: StardewLogic):
 | 
						|
        super().__init__(player, registry, options, content, regions, logic)
 | 
						|
        self.player = player
 | 
						|
        self.registry = registry
 | 
						|
        self.options = options
 | 
						|
        self.content = content
 | 
						|
        self.regions = regions
 | 
						|
        self.logic = logic
 |