新增根据帧数控制可见性
This commit is contained in:
95
client/core/library/ResourceLibraryProvider.cpp
Normal file
95
client/core/library/ResourceLibraryProvider.cpp
Normal file
@@ -0,0 +1,95 @@
|
||||
#include "library/ResourceLibraryProvider.h"
|
||||
|
||||
#include <QTimer>
|
||||
|
||||
namespace core::library {
|
||||
|
||||
FakeResourceLibraryProvider::FakeResourceLibraryProvider(QObject* parent)
|
||||
: ResourceLibraryProvider(parent) {}
|
||||
|
||||
void FakeResourceLibraryProvider::fetchResourcesAsync() {
|
||||
// 预留:未来在这里用 QNetworkAccessManager 请求在线资源库。
|
||||
// 当前返回内置假数据,并保持异步语义,避免 UI 假设同步返回。
|
||||
QTimer::singleShot(0, this, [this]() {
|
||||
QVector<LibraryResource> out;
|
||||
|
||||
{
|
||||
LibraryResource r;
|
||||
r.resourceId = QStringLiteral("demo/tree");
|
||||
r.displayName = QStringLiteral("树(示例资源)");
|
||||
r.kind = LibraryResource::Kind::Entity;
|
||||
r.imageSize = QSize(220, 260);
|
||||
r.accent = QColor(46, 204, 113);
|
||||
r.imageOffsetFromOrigin = QPointF(-110, -130);
|
||||
r.entityTemplate.displayName = QStringLiteral("树");
|
||||
r.entityTemplate.visible = true;
|
||||
r.entityTemplate.depth = 160;
|
||||
r.entityTemplate.userScale = 1.0;
|
||||
r.entityTemplate.distanceScaleCalibMult = 0.0;
|
||||
// 以 origin 为中心的简单多边形(局部坐标)
|
||||
r.entityTemplate.polygonLocal = {
|
||||
QPointF(-60, 80), QPointF(-90, 20), QPointF(-60, -80), QPointF(0, -110),
|
||||
QPointF(60, -80), QPointF(90, 20), QPointF(60, 80)};
|
||||
out.push_back(r);
|
||||
}
|
||||
|
||||
{
|
||||
LibraryResource r;
|
||||
r.resourceId = QStringLiteral("demo/rock");
|
||||
r.displayName = QStringLiteral("岩石(示例资源)");
|
||||
r.kind = LibraryResource::Kind::Entity;
|
||||
r.imageSize = QSize(240, 180);
|
||||
r.accent = QColor(120, 120, 120);
|
||||
r.imageOffsetFromOrigin = QPointF(-120, -90);
|
||||
r.entityTemplate.displayName = QStringLiteral("岩石");
|
||||
r.entityTemplate.visible = true;
|
||||
r.entityTemplate.depth = 90;
|
||||
r.entityTemplate.userScale = 1.0;
|
||||
r.entityTemplate.distanceScaleCalibMult = 0.0;
|
||||
r.entityTemplate.polygonLocal = {
|
||||
QPointF(-100, 10), QPointF(-70, -60), QPointF(0, -80), QPointF(90, -40),
|
||||
QPointF(110, 20), QPointF(40, 70), QPointF(-40, 60)};
|
||||
out.push_back(r);
|
||||
}
|
||||
|
||||
{
|
||||
LibraryResource r;
|
||||
r.resourceId = QStringLiteral("demo/house");
|
||||
r.displayName = QStringLiteral("小屋(示例资源)");
|
||||
r.kind = LibraryResource::Kind::Entity;
|
||||
r.imageSize = QSize(280, 220);
|
||||
r.accent = QColor(231, 76, 60);
|
||||
r.imageOffsetFromOrigin = QPointF(-140, -110);
|
||||
r.entityTemplate.displayName = QStringLiteral("小屋");
|
||||
r.entityTemplate.visible = true;
|
||||
r.entityTemplate.depth = 200;
|
||||
r.entityTemplate.userScale = 1.0;
|
||||
r.entityTemplate.distanceScaleCalibMult = 0.0;
|
||||
r.entityTemplate.polygonLocal = {
|
||||
QPointF(-120, 90), QPointF(120, 90), QPointF(120, -10), QPointF(0, -120), QPointF(-120, -10)};
|
||||
out.push_back(r);
|
||||
}
|
||||
|
||||
// —— 对话气泡:工具资源;底边三角形位置在属性里用滑块自调 ——
|
||||
{
|
||||
LibraryResource r;
|
||||
r.resourceId = QStringLiteral("local/bubble");
|
||||
r.displayName = QStringLiteral("对话气泡");
|
||||
r.kind = LibraryResource::Kind::Tool;
|
||||
r.imageSize = QSize(260, 160);
|
||||
r.accent = QColor(120, 150, 255);
|
||||
r.imageOffsetFromOrigin = QPointF(-130, -140);
|
||||
r.toolTemplate.displayName = QStringLiteral("对话气泡");
|
||||
r.toolTemplate.visible = true;
|
||||
r.toolTemplate.type = core::Project::Tool::Type::Bubble;
|
||||
r.toolTemplate.text = QStringLiteral("……");
|
||||
r.toolTemplate.bubblePointerT01 = 0.5;
|
||||
out.push_back(r);
|
||||
}
|
||||
|
||||
emit resourcesReady(out);
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace core::library
|
||||
|
||||
Reference in New Issue
Block a user