载入中...
搜索中...
未找到
HouseGenTarget.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
10
11#include <memory>
12#include <string>
13#include <vector>
14
15namespace eve::housegen {
17class HouseLayout;
18} // namespace eve::housegen
19
20namespace eve::housegen_editing {
21
27using editing::Result;
51
57
60 public virtual IEditableTarget,
63 public IPropertyProvider {
64public:
66 explicit HouseGenDocumentTarget(std::string id);
68 TargetId targetId() const override { return TargetId(id_); }
70 TargetDescriptor describe() const override;
73 void* queryCapability(const CapabilityId& capability) override;
75 Result<void> applyDomainOperation(const DomainOperation& operation) override;
77 std::unique_ptr<IDomainOperationTarget> cloneDomainState() const override;
79 Result<void> commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) override;
81 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot& selection) const override;
83 PropertySchema schema(const SelectionSnapshot& selection) const override;
85 PropertyReadResult read(const SelectionSnapshot& selection, const PropertyPath& path) const override;
87 Result<DomainOperation> makeSet(const SelectionSnapshot& selection, const PropertyPath& path,
88 const EditorValue& value, PropertySetMode mode) const override;
90 Result<DomainOperation> makeReset(const SelectionSnapshot& selection,
91 const PropertyPath& path) const override;
93 Result<DomainOperation> makeCreateComponent(const HouseKitComponentValue& component) const;
95 Result<DomainOperation> makeDeleteComponent(const ObjectId& id) const;
97 Result<DomainOperation> makeSetRequest(const housegen::HouseRequest& request) const;
99 const std::vector<HouseKitComponentValue>& components() const { return components_; }
101 const housegen::HouseRequest& request() const { return request_; }
103 std::vector<EditorDiagnostic> validate() const;
105 EditorValue snapshotValue() const;
107 Result<void> loadSnapshot(const EditorValue& snapshot);
108
109private:
111 bool matches(const SelectionSnapshot& selection) const;
113 EditorValue contentValue() const;
115 Result<DomainOperation> replacement(EditorValue content, std::string property = {}) const;
116 std::string id_;
117 std::vector<HouseKitComponentValue> components_;
118 housegen::HouseRequest request_;
119};
120
123public:
129 Result<void> publish(const HouseGenDocumentTarget& document);
131 Result<EditorGizmoSnapshot> gizmo(Revision expectedRevision) const;
134 const housegen::HouseLayout* layout() const { return layout_.get(); }
137 const housegen::HouseComponentLibrary* library() const { return library_.get(); }
139 Revision revision() const { return revision_; }
140
141private:
142 std::unique_ptr<housegen::HouseComponentLibrary> library_;
143 std::unique_ptr<housegen::HouseLayout> layout_;
144 Revision revision_ = 0;
145};
146
147} // namespace eve::housegen_editing
ActionParameterOperation operation
double value
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
const GltfImportRequest & request
std::string path
Definition PlayHost.cpp:110
A structured explanation of a failed, degraded, or noteworthy result.
Definition Diagnostic.h:94
Move-only operation result carrying either a value or Status.
Definition Result.h:155
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
Dirty region and revision shared by every editable document target.
Optional candidate/publish capability for atomic domain operations.
Editable-target capability that applies owning domain operations.
IEditableTarget public API.
UI-independent property access for an immutable selection snapshot.
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
房屋组件注册表(按 id 索引,支持分类/风格查询)。
一次生成的房屋布局:实例 + 房间 + 元信息,可 JSON 序列化 / 实例化。
Definition HouseLayout.h:23
Revisioned component-kit and deterministic generation-request asset.
const housegen::HouseRequest & request() const
Request.
TargetId targetId() const override
Target id.
const std::vector< HouseKitComponentValue > & components() const
Components.
Candidate generation containing a validated library and deterministic layout.
HouseGenPreviewRuntime()
House gen preview runtime.
const housegen::HouseLayout * layout() const
Access the published layout.
~HouseGenPreviewRuntime()
House gen preview runtime.
const housegen::HouseComponentLibrary * library() const
Access the published component library.
eve::Severity DiagnosticSeverity
std::uint64_t Revision
StrongId< TargetIdTag > TargetId
Definition EditingIds.h:57
eve::Diagnostic Diagnostic
StrongId< ObjectIdTag > ObjectId
Definition EditingIds.h:65
PropertyType
PropertyType public API.
StrongId< RuleIdTag > RuleId
Definition EditingIds.h:60
PropertySetMode
PropertySetMode public API.
PropertyFlag
PropertyFlag public API.
eve::StatusCode Status
StrongId< CapabilityIdTag > CapabilityId
Definition EditingIds.h:61
Result< void > validatePropertyValue(const PropertyDescriptor &descriptor, const Value &value)
Validate property value.
PropertyReadState
PropertyReadState public API.
editing::Revision Revision
StatusCode
Stable outcome category for an operation.
Definition Status.h:27
Severity
Stable severity of a diagnostic, independent of its display text.
Definition Diagnostic.h:20
DomainOperation public API.
EditRegion public API.
Renderer-neutral wire primitive for authoring viewport overlays.
Immutable revision-tagged overlay snapshot consumed by any viewport renderer.
PropertyDescriptor public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
房屋组件模板(几何 + 连接点 + 权重)。
一次房屋生成请求(参数集)。
Authored house component with stable editor identity.