载入中...
搜索中...
未找到
RTSProductionAction.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "common/Time.h"
6
12#include "action/Action.h"
14#include "common/Value.h"
15#include "orders/CommandQueue.h"
19
20#include <string>
21
22namespace eve::rts {
23
24class Building;
25
31
76
84
95
102
114public:
129 [[nodiscard]] static eve::Result<RTSBuildReceipt> build(Building& building, action::ActionRuntime& action,
131 resource::CostSpec cost, std::string product,
132 Duration duration, std::string productionKind = "unit",
133 int priority = 0, std::string transactionId = {},
134 std::vector<RTSProductionResourceReserve> resourceReserves = {},
136
143 [[nodiscard]] static eve::Result<RTSBuildReceipt> build(RTSBuildRequest request);
144
155 [[nodiscard]] static eve::Result<RTSCancelProductionReceipt> cancel(
156 Building& building, resource::IResourceAccount& account, std::string productionTaskId,
157 std::string orderId, resource::CostSpec refund, std::string reason = "production cancelled");
158
161};
162
163} // namespace eve::rts
Renderer- and ruleset-neutral gameplay action pipeline.
float duration
Small transaction facade for a resource cost plus one domain effect.
int priority
eve::resource::CostSpec cost
eve::resource::IResourceAccount * account
#define EVENGINE_API_DOMAINS
Definition Export.h:110
const GltfImportRequest & request
std::string action
Definition PlayHost.cpp:117
Strongly typed, transaction-friendly resource cost protocol.
LogicalId definition
Common time values and an injectable deterministic simulation clock.
Owning, renderer-independent dynamic values.
Signed, fixed-resolution simulation duration in nanoseconds.
Definition Time.h:43
static constexpr Duration zero() noexcept
Return zero duration.
Definition Time.h:60
Move-only operation result carrying either a value or Status.
Definition Result.h:155
The canonical owning dynamic value used by data-facing protocols.
Definition Value.h:31
std::map< std::string, Value > Object
Definition Value.h:34
Deterministic action lifecycle coordinator.
Definition Action.h:485
Generic priority order queue with no gameplay or entity semantics.
Generic multi-owner, multi-slot continuous-progress work queue.
Definition Production.h:200
Immutable canonical multi-resource cost.
Provider-neutral resource account contract.
RTS building domain root with placement and production composition.
Definition RTSTypes.h:840
Coordinates Orders, Production, Action and resource payment.
Synchronous participant contract for one coordinator transaction.
detail::StrongUint64< detail::SimulationTickTag > SimulationTick
Deterministic simulation time step; it is not wall-clock time.
Definition Time.h:31
Immutable-by-convention definition of one action kind.
Definition Action.h:90
One caller-owned request to instantiate an action execution.
Definition Action.h:127
A generation-qualified reference to one definition incarnation.
Receipt proving one atomic debit or credit was applied.
One positive resource and quantity pair in a canonical cost.
Result of an accepted atomic RTS build/production command.
action::ActionExecutionId actionExecution
transaction::TransactionReceipt transaction
Caller-owned inputs for one atomic RTS build or production command.
action::ActionRuntime * action
production::WorkQueue * production
bool settlementRequired
Require a domain settlement consumer; generic jobs complete automatically by default.
std::vector< RTSProductionResourceReserve > resourceReserves
SimulationTick tick
Tick used when the Action lifecycle is advanced.
Duration actionDelta
Duration consumed by the Action lifecycle at commit.
resource::IResourceAccount * account
std::string transactionId
Optional stable transaction id; empty derives from the product.
action::ActionRequest actionRequest
Optional custom action request; its action id is normalized below.
transaction::ITransactionParticipant * effect
Optional domain effect staged in the same transaction.
action::ActionDefinition actionDefinition
Optional custom action definition; an invalid id gets a build id.
eve::definition::DefinitionHandle definition
orders::CommandQueue * orders
Result of a production cancellation whose queues and refund all committed.
Caller-owned inputs for atomically cancelling one paid production task.
resource::IResourceAccount * account
Resource amount protected from production requests below a configured priority.
Observable summary returned after an atomic participant commit.
Definition Transaction.h:97