载入中...
搜索中...
未找到
ActionComboWindowState.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
8#include "common/SubjectRef.h"
9
10#include <functional>
11#include <map>
12#include <string>
13#include <vector>
14
15namespace eve::action::input {
16
22using ComboSubjectResolver = std::function<Result<SubjectRef>(ecs::EntityHandle)>;
23
31
40public:
44 ~ActionComboWindowState() override;
45
47 void setEnabled(bool enabled);
49 [[nodiscard]] bool enabled() const;
52 [[nodiscard]] bool supports(ActionStateWindowKind kind) const noexcept override;
55 [[nodiscard]] Result<void> enter(const ActionStateWindowBinding& binding,
56 const ActionTimelineEvent& event,
57 const ActionNotifyContext& context) override;
60 [[nodiscard]] Result<void> exit(const ActionStateWindowBinding& binding,
61 const ActionTimelineEvent& event,
62 const ActionNotifyContext& context) override;
63
65 [[nodiscard]] std::vector<std::string> availableInputs(SubjectRef subject) const;
67 [[nodiscard]] Result<ActionComboMatch> match(SubjectRef subject, std::string_view input) const;
69 [[nodiscard]] std::size_t activeCount() const noexcept { return active_.size(); }
70
71private:
72 using ActiveKey = std::pair<ActionExecutionId, std::string>;
73 struct ActiveCombo {
76 std::string input;
77 };
78
79 ComboSubjectResolver resolver_;
80 std::map<ActiveKey, ActiveCombo> active_;
81};
82
83} // namespace eve::action::input
Typed combat/input/collision action-state window contracts.
LogicalId itemId
int subject
Definition AnimSmr.cpp:163
EvpackChunkInput input
Definition Evpack.cpp:170
#define EVENGINE_API_BACKENDS
Definition Export.h:108
TokenKind kind
eve::action::ActionVfxBinding binding
Stable reference to a runtime gameplay subject.
const VegetationPresetContext & context
Human-readable, scoped identifier in the form namespace:name.
Definition Identity.h:411
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Strong, domain-neutral reference to a runtime subject.
Definition SubjectRef.h:26
Optional target-domain adapter for paired action state windows.
Authoritative projection of active semantic combo-input windows.
std::size_t activeCount() const noexcept
Return the number of active execution/item keys.
std::function< Result< SubjectRef >(ecs::EntityHandle)> ComboSubjectResolver
Resolves an owning stable subject from a generation-qualified ECS handle.
ActionStateWindowKind
Stable semantic kind for one built-in state window.
bool enabled
Context linking a routed event to its action execution.
Owning validated state-window request authored on an action timeline.
Owning event projection returned by the runtime sampler.
Owning deterministic match between one semantic input and an active combo window.