载入中...
搜索中...
未找到
ContainerAdapters.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "common/Time.h"
6
16#include "common/Container.h"
18
19#include <string>
20
21namespace eve::vehicle {
22
28
43public:
53
55 [[nodiscard]] const eve::container::ContainerDescriptor& descriptor() const noexcept override {
56 return descriptor_;
57 }
59 [[nodiscard]] eve::Result<eve::container::ContainerSnapshot> snapshot() const override;
61 [[nodiscard]] eve::Result<void> validateInsert(
62 const eve::container::ContainerObject& object, std::optional<eve::container::SlotIndex> destination,
63 std::optional<eve::container::MembershipId> ignoredObject = std::nullopt) const override;
67 const eve::container::ContainerSnapshot& expected, const eve::container::ContainerSnapshot& candidate) override;
68
70 [[nodiscard]] eve::Revision revision() const noexcept;
71
80 [[nodiscard]] eve::Result<eve::container::MembershipId> enter(
81 eve::container::SlotIndex seatIndex, int occupantId, eve::container::GameEventSink sink = {},
83
94
95private:
96 class PreparedState;
97
98 [[nodiscard]] VehicleEntity* vehicle() const noexcept;
99 [[nodiscard]] std::uint64_t nextEventSerial() noexcept;
100 [[nodiscard]] static eve::container::MembershipId occupantId(int occupantId);
101 [[nodiscard]] static eve::container::ContainerObject describe(int occupantId, std::string driver = {});
102
104 ecs::EntityHandle vehicle_;
105 std::uint64_t eventSerial_ = 0;
106};
107
108} // namespace eve::vehicle
Low-level container membership, zone and atomic transfer contracts.
#define EVENGINE_API_DOMAINS
Definition Export.h:110
std::uint64_t revision
SimulationTick tick
Common time values and an injectable deterministic simulation clock.
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Strong identity of one runtime or persistent container.
Definition Container.h:44
Extensible filter result used by container and zone acceptance rules.
Definition Container.h:139
Borrowed container implementation owned by a domain adapter.
Definition Container.h:287
Explicit slot number; it never implicitly converts to an integer.
Definition Container.h:117
static constexpr StrongUint64 zero() noexcept
Returns the zero value for this strong type.
载具实体:数据全部在组件里,行为在 VehicleSystem。
Transactional adapter over one VehicleEntity::Seats component.
const eve::container::ContainerDescriptor & descriptor() const noexcept override
Descriptor.
std::function< void(const game_event::GameEvent &)> GameEventSink
Callback receiving a canonical game_event envelope.
Definition Container.h:245
驾驶者接口与玩家控制状态。
Build metadata (engine git commit, build time, third-party version).
Definition Build.cpp:16
Static metadata and acceptance policy of a container.
Definition Container.h:197
Opaque, owning payload supplied by a domain adapter during transfer.
Definition Container.h:162
Generic object facts used by filters and transfer diagnostics.
Definition Container.h:168
Lossless snapshot of one container at one revision.
Definition Container.h:190
Owning snapshot payload for a vehicle occupant membership.