新增根据帧数控制可见性
This commit is contained in:
59
client/core/library/ResourceLibraryProvider.h
Normal file
59
client/core/library/ResourceLibraryProvider.h
Normal file
@@ -0,0 +1,59 @@
|
||||
#pragma once
|
||||
|
||||
#include "domain/Project.h"
|
||||
|
||||
#include <QColor>
|
||||
#include <QImage>
|
||||
#include <QObject>
|
||||
#include <QSize>
|
||||
#include <QString>
|
||||
#include <QVector>
|
||||
|
||||
namespace core::library {
|
||||
|
||||
/// 资源库中的一个“可拖拽实体资源”。未来可来自在线服务器。
|
||||
struct LibraryResource {
|
||||
enum class Kind { Entity, Tool };
|
||||
QString resourceId;
|
||||
QString displayName;
|
||||
|
||||
Kind kind = Kind::Entity;
|
||||
|
||||
/// 拖到画布后用于创建实体的模板(id 可为空,主窗口会自动分配 entity-<n>)。
|
||||
core::Project::Entity entityTemplate;
|
||||
|
||||
/// 拖到画布后用于创建工具的模板(id 可为空,主窗口会自动分配 tool-<n>)。
|
||||
core::Project::Tool toolTemplate;
|
||||
|
||||
/// 资源预览/占位贴图生成参数(当前无真实来源时用)。
|
||||
QSize imageSize = QSize(256, 256);
|
||||
QColor accent = QColor(80, 160, 255);
|
||||
|
||||
/// 贴图相对 originWorld 的偏移(world 坐标;落到画布后会做 originWorld + offset)。
|
||||
QPointF imageOffsetFromOrigin = QPointF(-128, -128);
|
||||
};
|
||||
|
||||
/// 资源库提供者接口:可用假实现占位,后续接入在线服务时替换。
|
||||
class ResourceLibraryProvider : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ResourceLibraryProvider(QObject* parent = nullptr) : QObject(parent) {}
|
||||
~ResourceLibraryProvider() override = default;
|
||||
|
||||
virtual void fetchResourcesAsync() = 0;
|
||||
|
||||
signals:
|
||||
void resourcesReady(const QVector<core::library::LibraryResource>& resources);
|
||||
void resourcesFailed(const QString& error);
|
||||
};
|
||||
|
||||
/// 假资源提供者:返回内置的若干资源,预留接口用于未来在线获取。
|
||||
class FakeResourceLibraryProvider final : public ResourceLibraryProvider {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit FakeResourceLibraryProvider(QObject* parent = nullptr);
|
||||
void fetchResourcesAsync() override;
|
||||
};
|
||||
|
||||
} // namespace core::library
|
||||
|
||||
Reference in New Issue
Block a user