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

@@ -5,30 +5,14 @@
#include "Engine/Scripting/ScriptingObjectReference.h"
#include "Engine/Serialization/JsonWriters.h"
API_CLASS(Attributes="HideInEditor") class FLAXENGINE_API DummyScript : public Script
API_CLASS(Attributes="HideInEditor") class FLAXENGINE_API MissingScript : public Script
{
API_AUTO_SERIALIZATION();
DECLARE_SCRIPTING_TYPE(DummyScript);
DECLARE_SCRIPTING_TYPE(MissingScript);
public:
API_PROPERTY(Attributes="ReadOnly")
FORCE_INLINE String GetMissingTypeName() const
{
if(Data.IsEmpty()) return TEXT("");
rapidjson_flax::Document doc;
doc.Parse(Data.ToStringAnsi().GetText());
String str (doc["TypeName"].GetString());
return str;
}
API_PROPERTY()
void SetMissingTypeName(String value)
{
_missingTypeName = value;
}
API_FIELD(Attributes="ReadOnly") String MissingTypeName;
API_FIELD(Hidden, Attributes="HideInEditor") String Data;
@@ -50,7 +34,6 @@ public:
private:
ScriptingObjectReference<Script> _referenceScript;
String _missingTypeName;
void MapToReferenceScript()
{
@@ -64,4 +47,4 @@ private:
}
};
inline DummyScript::DummyScript(const SpawnParams& params) : Script(params){}
inline MissingScript::MissingScript(const SpawnParams& params) : Script(params){}

View File

@@ -1,7 +1,7 @@
// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#include "SceneObjectsFactory.h"
#include "Components/DummyScript.h"
#include "Components/MissingScript.h"
#include "Engine/Level/Actor.h"
#include "Engine/Level/Prefabs/Prefab.h"
#include "Engine/Content/Content.h"
@@ -239,10 +239,14 @@ void SceneObjectsFactory::HandleObjectDeserializationError(const ISerializable::
{
const Guid parentId = JsonTools::GetGuid(parentIdMember->value);
Actor* parent = Scripting::FindObject<Actor>(parentId);
DummyScript* dummyScript = parent->AddScript<DummyScript>();
dummyScript->Data = String(buffer.GetString());
if (parent)
{
MissingScript* dummyScript = parent->AddScript<MissingScript>();
const auto parentIdMember = value.FindMember("TypeName");
dummyScript->MissingTypeName = parentIdMember->value.GetString();
dummyScript->Data = String(buffer.GetString());
LOG(Warning, "Parent actor of the missing object: {0}", parent->GetName());
}
}