载入中...
搜索中...
未找到
Hd2dTarget.h
浏览该文件的文档.
1#pragma once
2#include <array>
3#include <memory>
4#include <string>
8namespace eve::graphics {
9class Graphics;
10class Texture;
11class Camera3D;
12} // namespace eve::graphics
13namespace eve::hd2d {
14class Hd2D;
15class Sprite3D;
16class TileMap3D;
17} // namespace eve::hd2d
18namespace eve::hd2d_editing {
24using editing::Result;
47 std::string kind = "sprite";
48 std::string sourceAsset;
49 int columns = 1, rows = 1, frame = 0, animStart = 0, animEnd = 0;
50 float fps = 12;
51 bool flipX = false, flipY = false, visible = true;
52 std::array<float, 2> size{1, 1};
53 std::array<float, 4> tint{1, 1, 1, 1};
54 float sideDepth = 6, heightScale = 1;
55 std::array<float, 4> wallUv{0, 0, .05f, .05f};
56};
59 public virtual IEditableTarget,
62 public IPropertyProvider {
63public:
65 explicit Hd2dDocumentTarget(std::string id);
67 TargetId targetId() const override { return TargetId(id_); }
69 TargetDescriptor describe() const override;
75 void* queryCapability(const CapabilityId&) override;
77 Result<void> applyDomainOperation(const DomainOperation&) override;
79 std::unique_ptr<IDomainOperationTarget> cloneDomainState() const override;
81 Result<void> commitDomainState(std::unique_ptr<IDomainOperationTarget>) override;
83 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot&) const override;
85 PropertySchema schema(const SelectionSnapshot&) const override;
87 PropertyReadResult read(const SelectionSnapshot&, const PropertyPath&) const override;
90 PropertySetMode) const override;
92 Result<DomainOperation> makeReset(const SelectionSnapshot&, const PropertyPath&) const override;
94 const Hd2dAssetValue& value() const { return value_; }
96 std::vector<EditorDiagnostic> validate() const;
98 EditorValue snapshotValue() const;
100 Result<void> loadSnapshot(const EditorValue&);
101
102private:
104 bool matches(const SelectionSnapshot&) const;
106 EditorValue contentValue() const;
108 Result<DomainOperation> replacement(EditorValue, std::string) const;
109 std::string id_;
110 Hd2dAssetValue value_;
111};
114 int frame = 0;
115 std::array<float, 4> uv{0, 0, 1, 1};
116};
125public:
127 virtual ~IHd2dTextureResolver() = default;
129 virtual Result<graphics::Texture*> texture(const std::string&) const = 0;
130};
133public:
144 Revision revision() const { return revision_; }
145
146private:
147 std::unique_ptr<hd2d::Sprite3D> sprite_;
148 std::unique_ptr<hd2d::TileMap3D> tilemap_;
149 Revision revision_ = 0;
150};
151} // namespace eve::hd2d_editing
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
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.
EVENGINE_API_BACKENDS public API.
HD-2D module: tilemap-to-3D extrusion + 2D sprites as 3D billboards.
Definition Hd2d.h:356
Camera-facing 2D sprite billboard rendered inside the 3D scene.
Definition Hd2d.h:119
Extrudes a 2D tile layer into a 3D terrain mesh (HD-2D ground).
Definition Hd2d.h:58
Candidate-first live Sprite3D/TileMap3D preset publication.
Definition Hd2dTarget.h:132
~Hd2dDocumentRuntime()
Hd 2 d document runtime.
Hd2dDocumentRuntime()
Hd 2 d document runtime.
Revision revision() const
Revision.
Definition Hd2dTarget.h:144
Revisioned HD-2D sprite/tilemap presentation asset.
Definition Hd2dTarget.h:62
TargetId targetId() const override
Target id.
Definition Hd2dTarget.h:67
const Hd2dAssetValue & value() const
Value.
Definition Hd2dTarget.h:94
Pure sprite animation scrub evaluator.
Definition Hd2dTarget.h:118
Resolves an HD-2D sprite texture.
Definition Hd2dTarget.h:124
virtual Result< graphics::Texture * > texture(const std::string &) const =0
Texture.
virtual ~IHd2dTextureResolver()=default
Releases IHd2dTextureResolver resources.
eve::Severity DiagnosticSeverity
std::uint64_t Revision
StrongId< TargetIdTag > TargetId
Definition EditingIds.h:57
eve::Diagnostic Diagnostic
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.
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
editing::Revision Revision
Definition Hd2dTarget.h:39
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.
PropertyDescriptor public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
Authored HD-2D sprite-sheet and tile-extrusion preset.
Definition Hd2dTarget.h:46
std::array< float, 4 > wallUv
Definition Hd2dTarget.h:55
std::array< float, 4 > tint
Definition Hd2dTarget.h:53
std::array< float, 2 > size
Definition Hd2dTarget.h:52
Deterministically sampled sprite-sheet frame and UV rectangle.
Definition Hd2dTarget.h:113