Add ModelPrefab to imported model prefab for reimporting functionality

This commit is contained in:
Wojtek Figat
2023-12-07 10:25:45 +01:00
parent 74b77bfa4c
commit cb92110976
9 changed files with 179 additions and 36 deletions

View File

@@ -0,0 +1,46 @@
// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#if USE_EDITOR
#include "Engine/Scripting/Script.h"
#include "Engine/Scripting/ScriptingObjectReference.h"
/// <summary>
/// Actor script component that represents missing script.
/// </summary>
API_CLASS(Attributes="HideInEditor") class FLAXENGINE_API MissingScript : public Script
{
API_AUTO_SERIALIZATION();
DECLARE_SCRIPTING_TYPE(MissingScript);
private:
ScriptingObjectReference<Script> _referenceScript;
public:
/// <summary>
/// Namespace and type name of missing script.
/// </summary>
API_FIELD(Attributes="ReadOnly") String MissingTypeName;
/// <summary>
/// Missing script serialized data.
/// </summary>
API_FIELD(Hidden, Attributes="HideInEditor") String Data;
/// <summary>
/// Field for assigning new script to transfer data to.
/// </summary>
API_PROPERTY() ScriptingObjectReference<Script> GetReferenceScript() const
{
return _referenceScript;
}
/// <summary>
/// Field for assigning new script to transfer data to.
/// </summary>
API_PROPERTY() void SetReferenceScript(const ScriptingObjectReference<Script>& value);
};
#endif

View File

@@ -0,0 +1,29 @@
// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Scripting/Script.h"
#if USE_EDITOR
#include "Engine/Tools/ModelTool/ModelTool.h"
#endif
/// <summary>
/// Actor script component that handled model prefabs importing and setup.
/// </summary>
API_CLASS(Attributes="HideInEditor") class FLAXENGINE_API ModelPrefab : public Script
{
API_AUTO_SERIALIZATION();
DECLARE_SCRIPTING_TYPE(ModelPrefab);
#if USE_EDITOR
/// <summary>
/// Source model file path (absolute or relative to the project).
/// </summary>
API_FIELD(Attributes="ReadOnly") String ImportPath;
/// <summary>
/// Model file import settings.
/// </summary>
API_FIELD() ModelTool::Options ImportOptions;
#endif
};