载入中...
搜索中...
未找到
AbilityController.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
8
9#include <cstddef>
10#include <deque>
11#include <optional>
12
13namespace eve::action {
14
20
28public:
30 virtual ~IAbilityIntentSource() = default;
31
34};
35
38public:
40 [[nodiscard]] Result<void> enqueue(AbilityIntent intent);
42 [[nodiscard]] Result<std::optional<AbilityIntent>> nextIntent(SimulationTick tick) override;
44 [[nodiscard]] std::size_t pendingCount() const noexcept { return intents_.size(); }
46 void clear() noexcept { intents_.clear(); }
47
48private:
49 std::deque<AbilityIntent> intents_;
50};
51
60public:
62 explicit AbilityControllerRuntime(AbilityRuntime& abilities) : abilities_(abilities) {}
63
70
71private:
72 AbilityRuntime& abilities_;
73};
74
75} // namespace eve::action
Grants, cooldowns, instancing, activation groups and gameplay-event triggers.
#define EVENGINE_API_PLATFORM
Definition Export.h:107
SimulationTick tick
const UnitySourceAsset & source
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Shared controller that routes player or AI intents into AbilityRuntime.
AbilityControllerRuntime(AbilityRuntime &abilities)
Construct a controller borrowing the canonical ability runtime.
Owner-thread coordinator for grant and activation state.
Pull boundary shared by player input queues and AI decision adapters.
virtual Result< std::optional< AbilityIntent > > nextIntent(SimulationTick tick)=0
Produce at most one intent for the supplied deterministic simulation tick.
virtual ~IAbilityIntentSource()=default
Releases IAbilityIntentSource resources.
Owner-thread FIFO adapter for player input and command bindings.
std::size_t pendingCount() const noexcept
Number of pending player intents.
void clear() noexcept
Discard all pending player intents.
Owning request to activate one granted ability.
One caller-owned request to instantiate an action execution.
Definition Action.h:127