After CR changes

This commit is contained in:
Red Kitsune
2023-09-19 00:21:56 +02:00
parent 5cc3e40902
commit 7c0546c68d
2 changed files with 11 additions and 24 deletions

View File

@@ -0,0 +1,50 @@
#pragma once
#include "Engine/Core/Cache.h"
#include "Engine/Scripting/Script.h"
#include "Engine/Scripting/ScriptingObjectReference.h"
#include "Engine/Serialization/JsonWriters.h"
API_CLASS(Attributes="HideInEditor") class FLAXENGINE_API MissingScript : public Script
{
API_AUTO_SERIALIZATION();
DECLARE_SCRIPTING_TYPE(MissingScript);
public:
API_FIELD(Attributes="ReadOnly") String MissingTypeName;
API_FIELD(Hidden, Attributes="HideInEditor") String Data;
API_PROPERTY()
FORCE_INLINE ScriptingObjectReference<Script> GetReferenceScript() const
{
return _referenceScript;
}
API_PROPERTY()
void SetReferenceScript(ScriptingObjectReference<Script> value)
{
_referenceScript = value;
if(Data.IsEmpty()) return;
MapToReferenceScript();
}
private:
ScriptingObjectReference<Script> _referenceScript;
void MapToReferenceScript()
{
rapidjson_flax::Document doc;
doc.Parse(Data.ToStringAnsi().GetText());
auto modifier = Cache::ISerializeModifier.Get();
_referenceScript->Deserialize(doc, modifier.Value);
this->DeleteObject();
}
};
inline MissingScript::MissingScript(const SpawnParams& params) : Script(params){}