载入中...
搜索中...
未找到
ClimbingServices.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
10#include "common/StrongUint64.h"
11
12#include <span>
13#include <string>
14#include <string_view>
15
16namespace eve::climbing {
17
18namespace detail {
23} // namespace detail
24
29
32
40public:
41 static constexpr const char* capabilityName = "eve.climbing.stamina-authority.v1";
43 virtual ~IClimbingStaminaAuthority() = default;
44
46 [[nodiscard]] virtual std::string_view adapterId() const noexcept = 0;
47
53 ClimbingExecutionId executionId) noexcept = 0;
55 virtual void cancelPrepared(ClimbingStaminaReservation reservation) noexcept = 0;
56};
57
59enum class ClimbingConditionDecision : std::uint8_t { Allowed, Denied };
60
68public:
69 static constexpr const char* capabilityName = "eve.climbing.condition-authority.v1";
71 virtual ~IClimbingConditionAuthority() = default;
74 ClimbingServiceSubject subject, std::span<const std::string> requiredTags,
76};
77
80public:
81 static constexpr const char* capabilityName = "eve.climbing.event-sink.v1";
83 virtual ~IClimbingEventSink() = default;
86 std::span<const ClimbingEvent> events) = 0;
87};
88
91public:
92 static constexpr const char* capabilityName = "eve.climbing.pose-adapter.v1";
94 virtual ~IClimbingPoseAdapter() = default;
97 const ClimbingAdvance& advance) = 0;
98};
99
103 ClimbingOptionalServiceState stamina = ClimbingOptionalServiceState::Disabled;
104};
105
118
121 ClimbingServiceSubject subject, std::span<const ClimbingEvent> events);
122
126
127} // namespace eve::climbing
int subject
Definition AnimSmr.cpp:163
eve::action::ActionExecutionId executionId
eve::EntitySpatialPose pose
Tick-addressed command buffering for deterministic climbing input.
eve::resource::CostSpec cost
#define EVENGINE_API_DOMAINS
Definition Export.h:110
World3D * world
int detail
Internal storage primitive for domain-owned unsigned values.
Battle::Events events
SimulationTick tick
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Owner-thread climbing planner and executor for one character.
Definition Climbing.h:653
Selection transaction that atomically joins external stamina reservation to runtime publication.
Consumer-owned authority for project-specific condition tags.
virtual eve::Result< ClimbingConditionDecision > evaluate(ClimbingServiceSubject subject, std::span< const std::string > requiredTags, eve::SimulationTick tick)=0
Evaluate every required tag for one subject at the injected simulation tick.
virtual ~IClimbingConditionAuthority()=default
Releases IClimbingConditionAuthority resources.
Optional post-simulation event adapter; it does not own the runtime event queue.
virtual ~IClimbingEventSink()=default
Releases IClimbingEventSink resources.
virtual eve::Result< void > publish(ClimbingServiceSubject subject, std::span< const ClimbingEvent > events)=0
Consume an owning event view after all ECS simulation views have closed.
Optional post-physics Animation/IK adapter consuming derived pose constraints only.
virtual ~IClimbingPoseAdapter()=default
Releases IClimbingPoseAdapter resources.
virtual eve::Result< void > apply(ClimbingServiceSubject subject, const ClimbingAdvance &advance)=0
Apply one derived pose projection; failure never invalidates authoritative climbing motion.
Consumer-owned stamina reservation contract.
virtual std::string_view adapterId() const noexcept=0
Stable adapter identity matched against ClimbingProfileDefinition::staminaAdapter.
virtual eve::Result< ClimbingStaminaReservation > prepare(ClimbingServiceSubject subject, float cost, eve::SimulationTick tick)=0
Reserve an exact non-negative cost without publishing the debit.
virtual ~IClimbingStaminaAuthority()=default
Releases IClimbingStaminaAuthority resources.
virtual void cancelPrepared(ClimbingStaminaReservation reservation) noexcept=0
Release an uncommitted reservation; guaranteed infallible and idempotent.
virtual void commitPrepared(ClimbingStaminaReservation reservation, ClimbingExecutionId executionId) noexcept=0
Publish a successfully prepared debit; guaranteed infallible by the provider contract.
static constexpr const char * capabilityName
StrongUint64 public API.
Box3D rigid-body world. Script coordinates are meters (Box3D native), unlike 2D World which uses pixe...
Definition World3D.h:63
ClimbingOptionalServiceState
Observable outcome of one optional-service interaction.
ClimbingConditionDecision
Strong result of evaluating all data-driven action condition tags.
ClimbingCommand
Edge and held commands understood by the climbing input phase.
eve::Result< ClimbingPoseResult > applyClimbingPose(animation::AnimSkeleton &skeleton, animation::AnimPose &pose, const ClimbingAdvance &advance, const ClimbingPoseBinding &binding)
Applies contact anchors to an already evaluated animation pose.
eve::Result< ClimbingOptionalServiceState > dispatchClimbingEvents(ClimbingServiceSubject subject, std::span< const ClimbingEvent > events)
Dispatch to the optional event sink, returning ProviderAbsent instead of silently dropping.
Build metadata (engine git commit, build time, third-party version).
Definition Build.cpp:16
Owning output of one execution tick.
Definition Climbing.h:553
Hot authoritative intent component; contains no device or callback pointers.
Input pose used for one deterministic candidate probe.
Definition Climbing.h:275
Result of a service-aware selection transaction.
Owning evidence returned by one committed climbing selection transaction.
Definition Climbing.h:464
ClimbingServiceSubjectTag public API.
ClimbingStaminaReservationTag public API.