载入中...
搜索中...
未找到
PcgTaskQueue.h
浏览该文件的文档.
1#pragma once
2
3#include <cstdint>
4#include <vector>
5#include "common/Export.h"
6#include "common/Result.h"
7namespace ssq { class Table; }
8namespace eve::procgen {
10enum class PcgTaskQueueStatus { Idle = 0, Waiting = 1, Ready = 2 };
17public:
19 [[nodiscard]] Result<std::uint64_t> add(double waitSeconds = 0.25);
21 [[nodiscard]] Result<PcgTaskQueueStatus> tick(double deltaSeconds);
23 [[nodiscard]] Result<PcgTaskQueueStatus> resolveReady(bool finished);
25 [[nodiscard]] PcgTaskQueueStatus cancelAll() noexcept;
27 [[nodiscard]] std::uint64_t readyTaskId() const noexcept { return readyId_; }
29 [[nodiscard]] int queueSize() const noexcept { return static_cast<int>(tasks_.size()); }
31 [[nodiscard]] PcgTaskQueueStatus status() const noexcept { return status_; }
32private:
33 struct Task { std::uint64_t id; double wait; double remaining; };
34 std::vector<Task> tasks_;
35 std::size_t cursor_ = 0;
36 std::uint64_t nextId_ = 1, readyId_ = 0;
37 PcgTaskQueueStatus status_ = PcgTaskQueueStatus::Idle;
38};
40void exposePcgTaskQueueBindings(ssq::Table& table);
41} // namespace eve::procgen
#define EVENGINE_API_DOMAINS
Definition Export.h:110
std::string id
Definition PlayHost.cpp:108
Move-only, checked operation results for the common layer.
SimulationTick tick
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Deterministic, callback-free port of PcgTask's delayed task queue.
std::uint64_t readyTaskId() const noexcept
Return the ready task ID, or zero when none is ready.
PcgTaskQueueStatus status() const noexcept
Return current queue state.
int queueSize() const noexcept
Return the number of queued tasks.
PcgTaskQueueStatus
Observable state of Pcg's delayed task processor.
void exposePcgTaskQueueBindings(ssq::Table &table)
Register PcgTaskQueue Squirrel bindings.
enum EVENGINE_API_FOUNDATION Table
OT_TABLE (editable via Runtime table APIs / ReflectedPropertyModel).
Definition Runtime.h:121
EVEngine ECS 集成层:底层实现使用 sunxfancy/ECS.hpp https://github.com/sunxfancy/ECS.hpp
Definition ECS.h:14