载入中...
搜索中...
未找到
NpcAi.h
浏览该文件的文档.
27enum class CompareOp : std::uint8_t { Exists, Equal, NotEqual, Less, LessEqual, Greater, GreaterEqual };
31enum class StopReason : std::uint8_t { Completed, Transition, StartupRollback, AgentDestroyed, DefinitionReplaced };
226 [[nodiscard]] Result<void> registerTaskService(std::string type, std::unique_ptr<ITaskService> service);
232 [[nodiscard]] Result<void> setBlackboard(AgentHandle handle, std::string key, BlackboardValue value);
238 [[nodiscard]] Result<void> forget(AgentHandle handle, std::string_view subject, std::string_view sense);
250 [[nodiscard]] Result<std::vector<TraceEvent>> trace(AgentHandle handle, std::uint64_t fromTick = 0) const;
276 [[nodiscard]] bool predicatesPass(std::span<const BlackboardPredicate> predicates, const Agent& agent) const;
Move-only, checked operation results for the common layer.
Strong generation-qualified handles for non-ECS runtime registries.
Owned extension point for navigation, animation, combat and gameplay tasks. @thread All calls are sim...
Definition NpcAi.h:195
virtual Result< TaskStatus > tick(const TaskContext &context, const TaskSpec &spec, std::string &inOutMemoryJson)=0
Tick.
virtual Result< void > start(const TaskContext &context, const TaskSpec &spec, std::string &inOutMemoryJson)=0
Starts .
virtual void stop(const TaskContext &context, const TaskSpec &spec, StopReason reason, std::string_view memoryJson) noexcept=0
Stops .
virtual ~ITaskService()=default
Releases ITaskService resources.
Authoritative owner and deterministic scheduler for NPC AI agents.
Definition NpcAi.h:216
NpcAiWorld & operator=(const NpcAiWorld &)=delete
NpcAiWorld(const NpcAiWorld &)=delete
Definition Navigation.cpp:6
@ AgentCreated
@ TaskFailed
@ PerceptionForgotten
@ SignalQueued
@ TaskStarted
@ AgentRestored
@ PerceptionUpdated
@ TaskCompleted
@ BlackboardChanged
@ TransitionApplied
@ Running
@ Succeeded
@ Failed
std::variant< bool, std::int64_t, double, std::string > BlackboardValue
Definition NpcAi.h:22
@ Boolean
@ Integer
@ Completed
@ StartupRollback
@ DefinitionReplaced
@ AgentDestroyed
@ NotEqual
@ Exists
@ GreaterEqual
@ Greater
@ LessEqual
Versioned, owning NPC state used for save/load and hot-reload handoff.
Definition NpcAi.h:165
std::map< std::string, BlackboardValue > blackboard
Definition NpcAi.h:173
static constexpr std::uint32_t SchemaVersion
Definition NpcAi.h:167
std::vector< std::string > pendingSignals
Definition NpcAi.h:174
std::vector< PerceptionMemory > perception
Definition NpcAi.h:175
std::map< std::string, BlackboardValue > blackboard
Definition NpcAi.h:147
std::vector< PerceptionMemory > perception
Definition NpcAi.h:148
Immutable, validated source data for one hierarchical NPC state tree.
Definition NpcAi.h:87
std::vector< BlackboardKeySpec > blackboardSchema
Definition NpcAi.h:91
std::optional< BlackboardValue > defaultValue
Definition NpcAi.h:52
std::size_t maxMemoriesPerAgent
Definition NpcAi.h:121
One bounded, expiring item of NPC perception memory.
Definition NpcAi.h:100
std::vector< BlackboardPredicate > enterConditions
Definition NpcAi.h:81
std::span< const PerceptionMemory > perception
Definition NpcAi.h:187
const std::map< std::string, BlackboardValue > & blackboard
Definition NpcAi.h:186
Input time and work limits for one deterministic simulation update.
Definition NpcAi.h:125
std::uint32_t maxTransitionsPerAgent
Definition NpcAi.h:129
std::uint32_t transitionBudgetsExhausted
Definition NpcAi.h:137
std::vector< BlackboardPredicate > conditions
Definition NpcAi.h:73