载入中...
搜索中...
未找到
Hd2dTarget.cpp
浏览该文件的文档.
28PropertyDescriptor prop(std::string p, PropertyType t, EditorValue v, const char* c, double min = -1e9,
42 return std::any_of(d.begin(), d.end(), [](const auto& v) { return v.severity() == DiagnosticSeverity::Error; });
47 return {TargetId(id_), "hd2d-asset", revisionValue(), false, {CapabilityId("eve.editor.target.hd2d-properties")}};
50 return c == CapabilityId("eve.editor.target.hd2d-properties") ? static_cast<IPropertyProvider*>(this) : nullptr;
53 return s.items.size() == 1 && s.items.front().target == TargetId(id_) && s.items.front().item.value() == id_;
68 prop("sprite.animation", PropertyType::Vec2, EditorValue::Array{0.0, 0.0}, "sprite", 0, 16777215),
73 prop("sprite.tint", PropertyType::Color, EditorValue::Array{1.0, 1.0, 1.0, 1.0}, "sprite", 0, 1),
77 prop("tile.wallUv", PropertyType::Vec4, EditorValue::Array{0.0, 0.0, .05, .05}, "tilemap", 0, 1)};
101PropertyReadResult Hd2dDocumentTarget::read(const SelectionSnapshot& s, const PropertyPath& p) const {
147Result<DomainOperation> Hd2dDocumentTarget::makeSet(const SelectionSnapshot& s, const PropertyPath& p,
151 if (!matches(s) || !d || mode != PropertySetMode::Absolute || !validatePropertyValue(*d, value).ok())
189 return eve::editing::failed<DomainOperation>(EditorStatus::Rejected, RuleId("editor.hd2d.invalid"),
193Result<DomainOperation> Hd2dDocumentTarget::makeReset(const SelectionSnapshot& s, const PropertyPath& p) const {
196 return eve::editing::failed<DomainOperation>(EditorStatus::Unsupported, RuleId("editor.hd2d.property"),
204 d.push_back(eve::editing::ruleDiagnostic(eve::DiagnosticCode::InvalidArgument, RuleId("editor.hd2d.kind"),
211 if (v.columns < 1 || v.rows < 1 || frames > 16777216 || v.frame < 0 || v.frame >= frames || v.animStart < 0 ||
212 v.animEnd < v.animStart || v.animEnd >= frames || !std::isfinite(v.fps) || v.fps <= 0 || v.fps > 1000)
213 d.push_back(eve::editing::ruleDiagnostic(eve::DiagnosticCode::InvalidArgument, RuleId("editor.hd2d.frames"),
216 const bool sizeOk = std::all_of(v.size.begin(), v.size.end(), [](float n) { return std::isfinite(n) && n > 0; });
218 std::all_of(v.tint.begin(), v.tint.end(), [](float n) { return std::isfinite(n) && n >= 0 && n <= 1; });
220 std::all_of(v.wallUv.begin(), v.wallUv.end(), [](float n) { return std::isfinite(n) && n >= 0 && n <= 1; });
229 if (op.target != TargetId(id_) || op.type != "hd2d.document.replace.v1" || !op.payload.isWithinLimits(5, 64, 4096))
312Result<Hd2dFramePreview> Hd2dFramePreviewService::evaluate(const Hd2dDocumentTarget& d, float time) const {
314 return eve::editing::failed<Hd2dFramePreview>(EditorStatus::Rejected, RuleId("editor.hd2d.preview"),
318 return eve::editing::failed<Hd2dFramePreview>(EditorStatus::Rejected, RuleId("editor.hd2d.preview-invalid"),
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
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
const std::string & value() const noexcept
Returns the exact legacy or canonical compatibility spelling.
Definition Identity.h:362
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
bool isWithinLimits(size_t maxDepth, size_t maxElements, size_t maxStringBytes) const
Validate nesting, element count and approximate string byte limits.
Definition EditingValue.cpp:50
Revisioned HD-2D sprite/tilemap presentation asset.
Definition Hd2dTarget.h:62
void * queryCapability(const CapabilityId &) override
Query an optional stable editing capability.
Definition Hd2dTarget.cpp:49
eve::Result< eve::Revision > currentRevision(const SelectionSnapshot &) const override
Current revision.
Definition Hd2dTarget.cpp:55
Result< void > commitDomainState(std::unique_ptr< IDomainOperationTarget >) override
Commits domain state.
Definition Hd2dTarget.cpp:287
Result< void > applyDomainOperation(const DomainOperation &) override
Applies domain operation.
Definition Hd2dTarget.cpp:228
std::unique_ptr< IDomainOperationTarget > cloneDomainState() const override
Clones domain state.
Definition Hd2dTarget.cpp:284
PropertyReadResult read(const SelectionSnapshot &, const PropertyPath &) const override
Reads .
Definition Hd2dTarget.cpp:101
Result< DomainOperation > makeSet(const SelectionSnapshot &, const PropertyPath &, const EditorValue &, PropertySetMode) const override
Make set.
Definition Hd2dTarget.cpp:147
Result< DomainOperation > makeReset(const SelectionSnapshot &, const PropertyPath &) const override
Make reset.
Definition Hd2dTarget.cpp:193
Result< Hd2dFramePreview > evaluate(const Hd2dDocumentTarget &, float time) const
Evaluate.
Definition Hd2dTarget.cpp:312
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
Definition Hd2dRuntime.cpp:5
editing::PropertyDescriptor PropertyDescriptor
Definition Hd2dTarget.h:31
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
@ InvalidArgument
@ PreconditionViolation
Definition Container.h:602
std::vector< std::string > affectedProperties
Definition EditingProtocol.h:52
PropertyDescriptorLookup find(const PropertyPath &path) const
Finds find.
Definition EditingProperty.cpp:9
Stable discovery metadata exposed by every editable target.
Definition EditableTarget.h:39
Authored HD-2D sprite-sheet and tile-extrusion preset.
Definition Hd2dTarget.h:46
Deterministically sampled sprite-sheet frame and UV rectangle.
Definition Hd2dTarget.h:113