33 lines
818 B
C++
33 lines
818 B
C++
// Copyright (c) 2022 Dominic Masters
|
|
//
|
|
// This software is released under the MIT License.
|
|
// https://opensource.org/licenses/MIT
|
|
|
|
#pragma once
|
|
#include "asset/AssetManager.hpp"
|
|
#include "scene/Scene.hpp"
|
|
|
|
namespace Dawn {
|
|
template<class T>
|
|
class Prefab {
|
|
public:
|
|
/**
|
|
* Returns the list of assets required for this prefab.
|
|
*
|
|
* @return List of required assets this prefab.
|
|
*/
|
|
static std::vector<Asset*> getRequiredAssets() {
|
|
return T::prefabAssets();
|
|
}
|
|
|
|
/**
|
|
* Creates a new instance of this asset.
|
|
*
|
|
* @param scene Scene this item belongs to.
|
|
* @return The instance of the created prefab.
|
|
*/
|
|
static T * create(Scene *scene, UICanvas *canvas) {
|
|
return T::prefabCreate(scene, canvas);
|
|
}
|
|
};
|
|
} |