载入中...
搜索中...
未找到
TextureRecipeTarget.cpp
浏览该文件的文档.
63 return eve::editing::failed<void>(EditorStatus::NotFound, RuleId("editor.texture-recipe.unknown"),
77 return c == CapabilityId("eve.editor.target.texture-recipe-properties") ? static_cast<IPropertyProvider*>(this)
81 return s.items.size() == 1 && s.items[0].target == TargetId(id_) && s.items[0].type == "texture-recipe";
83eve::Result<eve::Revision> TextureRecipeTarget::currentRevision(const SelectionSnapshot& s) const {
113PropertyReadResult TextureRecipeTarget::read(const SelectionSnapshot& s, const PropertyPath& p) const {
116 return i == values_.end() ? PropertyReadResult{} : PropertyReadResult{PropertyReadState::Value, i->second, {}};
127 if (!matches(s) || !d || mode != PropertySetMode::Absolute || !validatePropertyValue(*d, v).ok())
128 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.texture-recipe.set"),
143Result<DomainOperation> TextureRecipeTarget::makeReset(const SelectionSnapshot& s, const PropertyPath& p) const {
147 EditorStatus::Unsupported, RuleId("editor.texture-recipe.property"), "Unknown texture recipe property");
174 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.texture-recipe.operation"),
180 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.texture-recipe.payload"),
185 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.texture-recipe.invalid"),
199 return eve::editing::failed<void>(EditorStatus::Conflict, RuleId("editor.texture-recipe.candidate"),
211 return eve::editing::failed<void>(EditorStatus::Unsupported, RuleId("editor.texture-recipe.snapshot"),
242 auto candidate = procgen::TextureRecipeRegistry::instance().generate(target.recipe(), params, error);
252 TextureRecipePreviewArtifact artifact{target.revision(), candidate->getWidth(), candidate->getHeight(), hash};
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
bool ok() const noexcept
Whether this result represents a non-failure outcome.
Definition Result.h:480
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
void bumpRevision()
Advance the revision without touching the dirty region.
Definition EditableTarget.h:179
Revision revisionValue() const noexcept
Return the revision as the shared protocol revision type.
Definition EditableTarget.h:169
void widenDirty()
Mark an unknown area dirty without advancing the revision.
Definition EditableTarget.h:177
virtual void clearDirtyRegion()=0
Clears dirty region.
UI-independent property access for an immutable selection snapshot.
Definition EditingProperty.h:139
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
Definition EditingValue.h:19
void setInt(const std::string &key, int value)
Store an Int64 parameter, preserving its numeric Value kind.
Definition Params.cpp:149
std::unique_ptr< image::ImageData > generate(const std::string &id, const Params ¶ms, std::string &error) const
Generates an image and transfers its unique ownership to the caller.
Definition TextureRecipe.cpp:33
static TextureRecipeRegistry & instance()
Access the process-wide texture recipe registry.
Definition TextureRecipe.cpp:12
TextureRecipePreviewRuntime()
Texture recipe preview runtime.
Result< TextureRecipePreviewArtifact > generate(const TextureRecipeTarget &)
Generate.
Definition TextureRecipeTarget.cpp:223
~TextureRecipePreviewRuntime()
Texture recipe preview runtime.
Revisioned, schema-driven procedural texture recipe asset.
Definition TextureRecipeTarget.h:20
Result< DomainOperation > makeReset(const SelectionSnapshot &, const PropertyPath &) const override
Make reset.
Definition TextureRecipeTarget.cpp:143
Result< DomainOperation > makeSet(const SelectionSnapshot &, const PropertyPath &, const EditorValue &, PropertySetMode) const override
Make set.
Definition TextureRecipeTarget.cpp:121
PropertySchema schema(const SelectionSnapshot &) const override
Schema.
Definition TextureRecipeTarget.cpp:90
PropertyReadResult read(const SelectionSnapshot &, const PropertyPath &) const override
Reads .
Definition TextureRecipeTarget.cpp:113
Result< void > applyDomainOperation(const DomainOperation &) override
Applies domain operation.
Definition TextureRecipeTarget.cpp:172
TextureRecipeTarget(std::string id, std::string recipe)
Construct a registered procedural texture recipe target.
Definition TextureRecipeTarget.cpp:53
Result< void > commitDomainState(std::unique_ptr< IDomainOperationTarget >) override
Commits domain state.
Definition TextureRecipeTarget.cpp:195
Result< void > loadSnapshot(const EditorValue &)
Loads snapshot.
Definition TextureRecipeTarget.cpp:207
void * queryCapability(const CapabilityId &) override
Query an optional target capability.
Definition TextureRecipeTarget.cpp:76
std::unique_ptr< IDomainOperationTarget > cloneDomainState() const override
Clones domain state.
Definition TextureRecipeTarget.cpp:192
eve::Result< eve::Revision > currentRevision(const SelectionSnapshot &) const override
Current revision.
Definition TextureRecipeTarget.cpp:83
EVENGINE_API_PLATFORM bool hasErrors(const std::vector< DnutDiagnostic > &diagnostics)
Return whether any diagnostic is an error.
Definition DnutLexer.cpp:233
Result< void > validatePropertyValue(const PropertyDescriptor &descriptor, const Value &value)
Validate property value.
Definition EditingProperty.cpp:138
Diagnostic ruleDiagnostic(eve::DiagnosticCode code, RuleId rule, DiagnosticSeverity severity, std::string message)
Build a common diagnostic carrying an open editing rule identity.
Definition EditingResult.h:25
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
Definition HeightmapBrush.h:9
editing::Diagnostic EditorDiagnostic
Definition ProcgenEditingTypes.h:10
@ String
@ Boolean
@ Choice
@ Integer
@ InvalidArgument
Definition Container.h:602
std::vector< std::string > affectedProperties
Definition EditingProtocol.h:52
std::vector< PropertyDescriptor > properties
Definition EditingProperty.h:120
PropertyDescriptorLookup find(const PropertyPath &path) const
Finds find.
Definition EditingProperty.cpp:9
Stable discovery metadata exposed by every editable target.
Definition EditableTarget.h:39
TextureRecipePreviewArtifact public API.
Definition TextureRecipeTarget.h:68