Skip to content

Commit d065859

Browse files
authored
Merge pull request #119 from adf-python/feature/add-world-info-method
feat: 世界情報にエンティティおよびURNに基づくメソッドを追加
2 parents 0552f27 + 4373991 commit d065859

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

src/adf_core_python/core/agent/info/world_info.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from rcrscore.entities.blockade import Blockade
66
from rcrscore.entities.entity import Entity
77
from rcrscore.entities.human import Human
8+
from rcrscore.urn import EntityURN
89
from rcrscore.worldmodel import ChangeSet, WorldModel
910

1011

@@ -54,6 +55,28 @@ def get_entity(self, entity_id: EntityID) -> Optional[Entity]:
5455
"""
5556
return self._world_model.get_entity(entity_id)
5657

58+
def get_entities(self) -> list[Entity]:
59+
"""
60+
Get all entities
61+
62+
Returns
63+
-------
64+
list[Entity]
65+
Entities
66+
"""
67+
return self._world_model.get_entities()
68+
69+
def get_entity_ids(self) -> list[EntityID]:
70+
"""
71+
Get all entity IDs
72+
73+
Returns
74+
-------
75+
list[EntityID]
76+
Entity IDs
77+
"""
78+
return [entity.get_entity_id() for entity in self._world_model.get_entities()]
79+
5780
def get_entity_ids_of_types(self, entity_types: list[type[Entity]]) -> list[EntityID]:
5881
"""
5982
Get the entity IDs of the specified types
@@ -96,6 +119,45 @@ def get_entities_of_types(self, entity_types: list[type[Entity]]) -> list[Entity
96119

97120
return entities
98121

122+
def get_entity_ids_of_urns(self, urns: list[EntityURN]) -> list[EntityID]:
123+
"""
124+
Get the entity IDs of the specified URNs
125+
126+
Parameters
127+
----------
128+
urns : list[EntityURN]
129+
List of entity URNs
130+
131+
Returns
132+
-------
133+
list[EntityID]
134+
Entity IDs
135+
"""
136+
entity_ids: list[EntityID] = []
137+
for entity in self._world_model.get_entities():
138+
if entity.get_urn() in urns:
139+
entity_ids.append(entity.get_entity_id())
140+
141+
return entity_ids
142+
143+
def get_entities_of_urns(self, urns: list[EntityURN]) -> list[Entity]:
144+
"""
145+
Get the entities of the specified URNs
146+
Parameters
147+
----------
148+
urns : list[EntityURN]
149+
List of entity URNs
150+
Returns
151+
-------
152+
list[Entity]
153+
Entities
154+
"""
155+
entities: list[Entity] = []
156+
for entity in self._world_model.get_entities():
157+
if entity.get_urn() in urns:
158+
entities.append(entity)
159+
return entities
160+
99161
def get_distance(self, entity_id1: EntityID, entity_id2: EntityID) -> float:
100162
"""
101163
Get the distance between two entities

0 commit comments

Comments
 (0)