add observe range

This commit is contained in:
bridge
2025-10-04 22:08:10 +08:00
parent d50f3ac70d
commit e17c9e35a9
8 changed files with 93 additions and 34 deletions

View File

@@ -5,6 +5,7 @@ from typing import Dict, List, TYPE_CHECKING
if TYPE_CHECKING:
from src.classes.avatar import Avatar
from src.classes.observe import get_observable_avatars
@dataclass
class AvatarManager:
@@ -25,6 +26,13 @@ class AvatarManager:
same_region.append(other)
return same_region
def get_observable_avatars(self, avatar: "Avatar") -> List["Avatar"]:
"""
返回处于 avatar 感知范围内的其他角色列表(不含自己)。
基于曼哈顿距离与境界映射的感知半径过滤。
"""
return get_observable_avatars(avatar, self.avatars.values())
def remove_avatar(self, avatar_id: str) -> None:
"""
从管理器中删除一个 avatar并清理所有与其相关的双向关系。