Various minor code cleanup tweaks
This commit is contained in:
@@ -105,7 +105,6 @@ Asset::LoadResult Prefab::loadAsset()
|
||||
|
||||
// Allocate memory for objects
|
||||
ObjectsIds.EnsureCapacity(objectsCount * 2);
|
||||
NestedPrefabs.EnsureCapacity(objectsCount);
|
||||
ObjectsDataCache.EnsureCapacity(objectsCount * 3);
|
||||
|
||||
// Find serialized object ids (actors and scripts), they are used later for IDs mapping on prefab spawning via PrefabManager
|
||||
@@ -122,7 +121,6 @@ Asset::LoadResult Prefab::loadAsset()
|
||||
}
|
||||
|
||||
ObjectsIds.Add(objectId);
|
||||
ASSERT(!ObjectsDataCache.ContainsKey(objectId));
|
||||
ObjectsDataCache.Add(objectId, &objData);
|
||||
ObjectsCount++;
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ PrefabManagerService PrefabManagerServiceInstance;
|
||||
|
||||
Actor* PrefabManager::SpawnPrefab(Prefab* prefab)
|
||||
{
|
||||
Actor* parent = Level::Scenes.Count() != 0 ? Level::Scenes[0] : nullptr;
|
||||
Actor* parent = Level::Scenes.Count() != 0 ? Level::Scenes.Get()[0] : nullptr;
|
||||
return SpawnPrefab(prefab, parent, nullptr);
|
||||
}
|
||||
|
||||
@@ -46,9 +46,7 @@ Actor* PrefabManager::SpawnPrefab(Prefab* prefab, const Vector3& position)
|
||||
{
|
||||
auto instance = SpawnPrefab(prefab);
|
||||
if (instance)
|
||||
{
|
||||
instance->SetPosition(position);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
@@ -56,12 +54,7 @@ Actor* PrefabManager::SpawnPrefab(Prefab* prefab, const Vector3& position, const
|
||||
{
|
||||
auto instance = SpawnPrefab(prefab);
|
||||
if (instance)
|
||||
{
|
||||
auto transform = instance->GetTransform();
|
||||
transform.Translation = position;
|
||||
transform.Orientation = rotation;
|
||||
instance->SetTransform(transform);
|
||||
}
|
||||
instance->SetTransform(Transform(position, rotation, instance->GetScale()));
|
||||
return instance;
|
||||
}
|
||||
|
||||
@@ -69,13 +62,7 @@ Actor* PrefabManager::SpawnPrefab(Prefab* prefab, const Vector3& position, const
|
||||
{
|
||||
auto instance = SpawnPrefab(prefab);
|
||||
if (instance)
|
||||
{
|
||||
Transform transform;
|
||||
transform.Translation = position;
|
||||
transform.Orientation = rotation;
|
||||
transform.Scale = scale;
|
||||
instance->SetTransform(transform);
|
||||
}
|
||||
instance->SetTransform(Transform(position, rotation, scale));
|
||||
return instance;
|
||||
}
|
||||
|
||||
@@ -83,17 +70,13 @@ Actor* PrefabManager::SpawnPrefab(Prefab* prefab, const Transform& transform)
|
||||
{
|
||||
auto instance = SpawnPrefab(prefab);
|
||||
if (instance)
|
||||
{
|
||||
instance->SetTransform(transform);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
Actor* PrefabManager::SpawnPrefab(Prefab* prefab, Actor* parent, Dictionary<Guid, const void*>* objectsCache, bool withSynchronization)
|
||||
{
|
||||
PROFILE_CPU_NAMED("Prefab.Spawn");
|
||||
|
||||
// Validate input
|
||||
if (prefab == nullptr)
|
||||
{
|
||||
Log::ArgumentNullException();
|
||||
@@ -110,12 +93,11 @@ Actor* PrefabManager::SpawnPrefab(Prefab* prefab, Actor* parent, Dictionary<Guid
|
||||
LOG(Warning, "Prefab has no objects. {0}", prefab->ToString());
|
||||
return nullptr;
|
||||
}
|
||||
const Guid prefabId = prefab->GetID();
|
||||
|
||||
// Note: we need to generate unique Ids for the deserialized objects (actors and scripts) to prevent Ids collisions
|
||||
// Prefab asset during loading caches the object Ids stored inside the file
|
||||
|
||||
const Guid prefabId = prefab->GetID();
|
||||
|
||||
// Prepare
|
||||
CollectionPoolCache<ActorsCache::SceneObjectsListType>::ScopeCache sceneObjects = ActorsCache::SceneObjectsListCache.Get();
|
||||
sceneObjects->Resize(objectsCount);
|
||||
@@ -255,11 +237,11 @@ Actor* PrefabManager::SpawnPrefab(Prefab* prefab, Actor* parent, Dictionary<Guid
|
||||
if (!obj)
|
||||
continue;
|
||||
|
||||
const auto prefabObjectId = JsonTools::GetGuid(stream, "ID");
|
||||
|
||||
const Guid prefabObjectId = JsonTools::GetGuid(stream, "ID");
|
||||
if (objectsCache)
|
||||
objectsCache->Add(prefabObjectId, obj);
|
||||
obj->LinkPrefab(prefabId, prefabObjectId);
|
||||
obj->_prefabID = prefabId;
|
||||
obj->_prefabObjectID = prefabObjectId;
|
||||
}
|
||||
|
||||
// Update transformations
|
||||
|
||||
@@ -63,9 +63,7 @@ Asset::LoadResult LocalizedStringTable::loadAsset()
|
||||
return result;
|
||||
|
||||
JsonTools::GetString(Locale, *Data, "Locale");
|
||||
Guid fallbackTable = Guid::Empty;
|
||||
JsonTools::GetGuid(fallbackTable, *Data, "FallbackTable");
|
||||
FallbackTable = fallbackTable;
|
||||
JsonTools::GetReference(FallbackTable, *Data, "FallbackTable");
|
||||
const auto entriesMember = SERIALIZE_FIND_MEMBER((*Data), "Entries");
|
||||
if (entriesMember != Data->MemberEnd() && entriesMember->value.IsObject())
|
||||
{
|
||||
|
||||
@@ -160,7 +160,7 @@ public:
|
||||
template<typename T>
|
||||
static T* Cast(ScriptingObject* obj)
|
||||
{
|
||||
return obj && CanCast(obj->GetClass(), T::GetStaticClass()) ? (T*)obj : nullptr;
|
||||
return obj && CanCast(obj->GetClass(), T::GetStaticClass()) ? static_cast<T*>(obj) : nullptr;
|
||||
}
|
||||
|
||||
bool Is(const ScriptingTypeHandle& type) const;
|
||||
|
||||
Reference in New Issue
Block a user