mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
Stardew Valley: Refactor Animals to use Content Packs (#4320)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import functools
|
||||
from typing import Union, Any, Iterable
|
||||
|
||||
from .animal_logic import AnimalLogicMixin
|
||||
from .artisan_logic import ArtisanLogicMixin
|
||||
from .base_logic import BaseLogicMixin, BaseLogic
|
||||
from .grind_logic import GrindLogicMixin
|
||||
@@ -11,6 +12,7 @@ from .received_logic import ReceivedLogicMixin
|
||||
from .region_logic import RegionLogicMixin
|
||||
from .requirement_logic import RequirementLogicMixin
|
||||
from .tool_logic import ToolLogicMixin
|
||||
from ..data.animal import IncubatorSource, OstrichIncubatorSource
|
||||
from ..data.artisan import MachineSource
|
||||
from ..data.game_item import GenericSource, Source, GameItem, CustomRuleSource
|
||||
from ..data.harvest import ForagingSource, FruitBatsSource, MushroomCaveSource, SeasonalForagingSource, \
|
||||
@@ -25,7 +27,7 @@ class SourceLogicMixin(BaseLogicMixin):
|
||||
|
||||
|
||||
class SourceLogic(BaseLogic[Union[SourceLogicMixin, HasLogicMixin, ReceivedLogicMixin, HarvestingLogicMixin, MoneyLogicMixin, RegionLogicMixin,
|
||||
ArtisanLogicMixin, ToolLogicMixin, RequirementLogicMixin, GrindLogicMixin]]):
|
||||
ArtisanLogicMixin, ToolLogicMixin, RequirementLogicMixin, GrindLogicMixin, AnimalLogicMixin]]):
|
||||
|
||||
def has_access_to_item(self, item: GameItem):
|
||||
rules = []
|
||||
@@ -81,6 +83,14 @@ ArtisanLogicMixin, ToolLogicMixin, RequirementLogicMixin, GrindLogicMixin]]):
|
||||
def _(self, source: HarvestCropSource):
|
||||
return self.logic.harvesting.can_harvest_crop_from(source)
|
||||
|
||||
@has_access_to.register
|
||||
def _(self, source: IncubatorSource):
|
||||
return self.logic.animal.can_incubate(source.egg_item)
|
||||
|
||||
@has_access_to.register
|
||||
def _(self, source: OstrichIncubatorSource):
|
||||
return self.logic.animal.can_ostrich_incubate(source.egg_item)
|
||||
|
||||
@has_access_to.register
|
||||
def _(self, source: MachineSource):
|
||||
return self.logic.artisan.can_produce_from(source)
|
||||
|
Reference in New Issue
Block a user