#include "library/ResourceLibraryProvider.h" #include namespace core::library { FakeResourceLibraryProvider::FakeResourceLibraryProvider(QObject* parent) : ResourceLibraryProvider(parent) {} void FakeResourceLibraryProvider::fetchResourcesAsync() { // 预留:未来在这里用 QNetworkAccessManager 请求在线资源库。 // 当前返回内置假数据,并保持异步语义,避免 UI 假设同步返回。 QTimer::singleShot(0, this, [this]() { QVector 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