载入中...
搜索中...
未找到
PixelWorldControl.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
6
7#include <cstdint>
8#include <span>
9#include <vector>
10
11namespace eve::pixelworld {
12
16 std::uint64_t seed = 0;
17 std::uint64_t revision = 0;
18 std::uint64_t tick = 0;
19 std::uint64_t lastEditSequence = 0;
20 std::uint32_t chunks = 0;
21 std::uint32_t activeChunks = 0;
22 bool paused = false;
23};
24
27 std::uint64_t world = 0;
28 std::uint32_t steps = 0;
29 std::uint64_t firstTick = 0;
30 std::uint64_t lastTick = 0;
31 std::uint64_t elapsedMicroseconds = 0;
33};
34
37 std::uint64_t tick = 0;
38 std::uint64_t elapsedMicroseconds = 0;
40};
41
48public:
50 [[nodiscard]] std::vector<PixelWorldSummary> worlds() const;
52 [[nodiscard]] eve::Result<PixelWorldSummary> world(std::uint64_t worldId) const;
54 [[nodiscard]] eve::Result<void> setPaused(std::uint64_t worldId, bool paused);
56 [[nodiscard]] eve::Result<PixelWorldStepReceipt> step(std::uint64_t worldId,
57 std::uint32_t count = 1);
59 [[nodiscard]] eve::Result<PixelEditReceipt> applyEdit(std::uint64_t worldId,
60 const PixelEditCommand& command);
62 [[nodiscard]] eve::Result<PixelCatalogReloadReceipt> reloadMaterialCatalog(
63 std::uint64_t worldId, std::string_view catalogJson,
64 std::uint64_t expectedFingerprint);
66 [[nodiscard]] eve::Result<std::vector<PixelChunkDiagnostic>> chunkDiagnostics(
67 std::uint64_t worldId, PixelChunkRegion region) const;
69 [[nodiscard]] eve::Result<std::vector<PixelWorldPerformanceSample>> performanceSamples(
70 std::uint64_t worldId, std::uint32_t limit = 120) const;
72 [[nodiscard]] eve::Result<std::vector<std::byte>> captureSnapshot(std::uint64_t worldId) const;
74 [[nodiscard]] eve::Result<void> restoreSnapshot(std::uint64_t worldId,
75 std::span<const std::byte> bytes);
76
77private:
78 friend class PixelWorld;
79 void registerWorld(PixelWorld& world);
80 void unregisterWorld(const PixelWorld& world) noexcept;
81 void rebindWorld(const PixelWorld* previous, PixelWorld& replacement) noexcept;
82 void recordStep(std::uint64_t worldId, const StepStats& stats,
83 std::uint64_t elapsedMicroseconds);
84 [[nodiscard]] PixelWorld* find(std::uint64_t worldId) const noexcept;
85
86 struct Impl;
87 Impl& impl() const;
88};
89
92
93} // namespace eve::pixelworld
void * impl
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
std::uint64_t bytes
graphics::Canvas * previous
OnnxTransferStats stats
Definition OnnxGpgpu.cpp:56
World3D * world
std::uint32_t count
int limit
Definition TreeMesh.cpp:164
float step
Definition TreeMesh.cpp:314
std::unordered_map< PhysicsWorldHandle::index_type, World3D * > worlds
Definition World3D.cpp:164
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Main-thread-affine control surface shared by editor, CLI and MCP adapters.
Sparse, chunked, deterministic 2D falling-material world.
Definition PixelWorld.h:224
PixelWorldControlService & pixelWorldControlService()
Process-lifetime PixelWorld tooling registry.
Inclusive finite rectangle expressed in Chunk coordinates.
Definition PixelWorld.h:104
Owning replayable edit command. Sequence must be exactly previous + 1.
Definition PixelWorld.h:155
One bounded process-local simulation performance sample.
Receipt for an explicit bounded tooling step.
Stable summary of one live PixelWorld registered for local tooling.
Counters produced by one deterministic simulation step.
Definition PixelWorld.h:36