@@ -14,21 +14,20 @@ class Area(Entity):
1414 __important_attributes__ = ("name" ,)
1515 contents : dict [str , Entity ]
1616
17- def __init__ (self : Self , world : World , config_dict : dict [str , Any ]):
18- super ().__init__ (world , config_dict )
17+ def __init__ (self : Self , messages : Messages , config_dict : dict [str , Any ]):
18+ super ().__init__ (messages , config_dict )
1919 self .contents : dict = {}
2020
2121 def __iter__ (self : Self ) -> Iterator :
2222 for obj in self .contents :
2323 yield obj
2424
25- def on_look (self : Self ) -> str :
26- return self .world .l10n .format_value (
25+ def on_look (self : Self , actor : Player ):
26+ self .messages .to (
27+ [actor ],
2728 "look-around-begin" ,
28- {
29- "area-name" : self .name ,
30- "area-description" : self .description ,
31- },
29+ area_name = self .name ,
30+ area_description = self .description ,
3231 )
3332
3433 def to_dict (self : Self ) -> dict :
@@ -37,60 +36,61 @@ def to_dict(self: Self) -> dict:
3736 return area_dict
3837
3938 @staticmethod
40- def from_dict (world : World , area_dict : dict ) -> Area :
39+ def from_dict (messages : Messages , area_dict : dict ) -> Area :
4140 contents_list : list [Entity ] = []
4241 for entity_dict in area_dict .get ("contents" , []):
4342 match entity_dict .get ("kind" , "entity" ):
4443 case "item" :
4544 from fantasy_forge .item import Item
4645
47- contents_list .append (Item (world , entity_dict ))
46+ contents_list .append (Item (messages , entity_dict ))
4847 case "gateway" :
4948 from fantasy_forge .gateway import Gateway
5049
51- contents_list .append (Gateway (world , entity_dict ))
50+ contents_list .append (Gateway (messages , entity_dict ))
5251 case "key" :
5352 from fantasy_forge .key import Key
5453
55- contents_list .append (Key (world , entity_dict ))
54+ contents_list .append (Key (messages , entity_dict ))
5655 case "enemy" :
5756 from fantasy_forge .enemy import Enemy
5857
59- contents_list .append (Enemy (world , entity_dict ))
58+ contents_list .append (Enemy (messages , entity_dict ))
6059 case "weapon" :
6160 from fantasy_forge .weapon import Weapon
6261
63- contents_list .append (Weapon (world , entity_dict ))
62+ contents_list .append (Weapon (messages , entity_dict ))
6463 case "armour" :
6564 from fantasy_forge .armour import Armour
6665
67- contents_list .append (Armour (world , entity_dict ))
66+ contents_list .append (Armour (messages , entity_dict ))
6867
6968 case default :
70- contents_list .append (Entity (world , entity_dict ))
69+ contents_list .append (Entity (messages , entity_dict ))
7170 contents = {entity .name : entity for entity in contents_list }
72- area = Area (world , area_dict )
71+ area = Area (messages , area_dict )
7372 area .contents = contents
7473 return area
7574
7675 @staticmethod
77- def load (world , root_path : Path , name : str ):
76+ def load (messages : Messages , root_path : Path , name : str ):
7877 path = root_path / "areas" / f"{ name } .toml"
7978 with path .open () as area_file :
8079 area_toml = toml .load (area_file )
81- return Area .from_dict (world , area_toml )
80+ return Area .from_dict (messages , area_toml )
8281
8382 @staticmethod
84- def empty (world : World ) -> Area :
83+ def empty (messages : Messages ) -> Area :
8584 """Return an empty area, this is a placeholder."""
8685 return Area (
87- world ,
86+ messages ,
8887 dict (
89- name = world .l10n .format_value ("void-name" ),
90- description = world .l10n .format_value ("void-description" ),
88+ name = messages .l10n .format_value ("void-name" ),
89+ description = messages .l10n .format_value ("void-description" ),
9190 ),
9291 )
9392
9493
9594if TYPE_CHECKING :
96- from fantasy_forge .world import World
95+ from fantasy_forge .messages import Messages
96+ from fantasy_forge .player import Player
0 commit comments