import type { MobVector3 } from "../game/mobPopulation"; export const MOB_AGGRO_RANGE_VISIBILITY_DISTANCE = 40; export function isMobAggroRangeVisible( playerPosition: MobVector3, mobPosition: MobVector3, hasLineOfSight: (from: MobVector3, to: MobVector3) => boolean, maximumDistance = MOB_AGGRO_RANGE_VISIBILITY_DISTANCE, ): boolean { if (!Number.isFinite(maximumDistance) || maximumDistance < 0) return false; const dx = mobPosition[0] - playerPosition[0]; const dy = mobPosition[1] - playerPosition[1]; const dz = mobPosition[2] - playerPosition[2]; if (dx * dx + dy * dy + dz * dz > maximumDistance * maximumDistance) return false; return hasLineOfSight(playerPosition, mobPosition); }