载入中...
搜索中...
未找到
EditorProjectSettings.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
8
9#include <map>
10#include <string>
11#include <vector>
12
13namespace eve::editor {
14
22
25 std::string typeId;
26 std::uint32_t version = 1;
27 std::vector<ProjectSettingDescriptor> settings;
28};
29
32 public virtual IEditableTarget,
34 public IPropertyProvider {
35public:
37 ProjectSettingsTarget(std::string id, ProjectSettingsSchema schema);
39 TargetId targetId() const override { return TargetId(id_); }
41 TargetDescriptor describe() const override;
44 void* queryCapability(const CapabilityId& capability) override;
46 Result<void> applyDomainOperation(const DomainOperation& operation) override;
48 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot& selection) const override;
50 PropertySchema schema(const SelectionSnapshot& selection) const override;
52 PropertyReadResult read(const SelectionSnapshot& selection, const PropertyPath& path) const override;
54 Result<DomainOperation> makeSet(const SelectionSnapshot& selection, const PropertyPath& path,
55 const EditorValue& value, PropertySetMode mode) const override;
57 Result<DomainOperation> makeReset(const SelectionSnapshot& selection,
58 const PropertyPath& path) const override;
60 std::vector<PropertyPath> pendingRestart() const;
62 EditorValue snapshotValue() const;
64 Result<void> loadSnapshot(const EditorValue& snapshot);
65
66private:
71 bool selectionMatches(const SelectionSnapshot& selection) const;
72 std::string id_;
74 std::map<std::string, EditorValue> values_;
75 std::map<std::string, bool> restartDirty_;
76};
77
80
82ProjectSettingsSchema importerSettingsSchema(std::string importerId, std::vector<ProjectSettingDescriptor> settings,
83 std::uint32_t version = 1);
84
85} // namespace eve::editor
ActionParameterOperation operation
double value
std::string descriptor
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
std::string path
Definition PlayHost.cpp:110
TerrainThermalSettings settings
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.
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.
Schema-driven, reversible settings target with secret-reference enforcement.
TargetId targetId() const override
Target id.
PropertySetMode
PropertySetMode public API.
ProjectSettingsSchema importerSettingsSchema(std::string importerId, std::vector< ProjectSettingDescriptor > settings, std::uint32_t version)
Create per-importer settings without hard-coding a presenter.
ProjectSettingsSchema defaultProjectSettingsSchema()
Common engine project settings covering content, network and database boundaries.
DomainOperation public API.
PropertyDescriptor public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
Project-setting descriptor with deployment and secrecy policy.
Versioned settings schema shared by project and importer documents.
std::vector< ProjectSettingDescriptor > settings