NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

awareness.py (2096B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\utility\awareness.py
      2 import evetypes
      3 import logging
      4 from ballpark.entities.awareness.groupawareness import GroupAwarenessConfig
      5 from behaviors.utility.blackboards import get_response_thresholds
      6 from behaviors.utility.context import get_extra_context
      7 from behaviors.utility.owner import get_owner_id
      8 logger = logging.getLogger(__name__)
      9 
     10 def get_spawn_pool_id(task):
     11     return task.GetLastBlackboardValue(task.attributes.spawnPoolIdAddress)
     12 
     13 
     14 def get_awareness_manager(task):
     15     return task.context.entityLocation.GetGroupAwarenessManager()
     16 
     17 
     18 def get_fleet_awareness(task, spawn_pool_id):
     19     return get_awareness_manager(task).get_spawn_pool_fleet_awareness(spawn_pool_id)
     20 
     21 
     22 def get_fleet_awareness_members_ids(task, spawn_pool_id):
     23     awareness = get_fleet_awareness(task, spawn_pool_id)
     24     return awareness.get_member_ids()
     25 
     26 
     27 def get_awareness_config(task):
     28     config = GroupAwarenessConfig(task.get_member_collection_id())
     29     config.threat_range = task.attributes.threatRange
     30     config.threat_timeout_seconds = task.attributes.threatTimeoutSeconds
     31     if task.HasAttribute('includedCategories'):
     32         config.included_categories = task.attributes.includedCategories
     33     if task.HasAttribute('excludedGroups'):
     34         config.excluded_groups = task.attributes.excludedGroups
     35     config.max_sensor_drift = task.attributes.maxSensorDrift
     36     config.update_time_seconds = task.attributes.updateTimeSeconds
     37     config.standing_thresholds = get_response_thresholds(task)
     38     if config.standing_thresholds is None:
     39         logger.error('awareness::failed getting proper standing thresholds for behavior=%s - might be missing from type or group blackboards', task.behaviorTree.GetBehaviorId())
     40     config.combat_targets_set_address = task.attributes.combatTargetsSetAddress
     41     config.owner_id = get_owner_id(task)
     42     config.context = get_extra_context(task)
     43     if task.HasAttribute('trackedTypeListID'):
     44         config.tracked_type_list_id = task.attributes.trackedTypeListID
     45     return config