Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Instantiate our prefab templates as deactivated #542

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Instantiate our prefab templates as deactivated
  • Loading branch information
LeeTwentyThree committed Apr 9, 2024
commit 9c83fbd1441cae639be9f274b60b7ab30183b26b
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ public AtmosphereVolumeTemplate(PrefabInfo info, VolumeShape shape, string overr
public override IEnumerator GetPrefabAsync(TaskResult<GameObject> gameObject)
{
var prefab = new GameObject(info.ClassID);
prefab.SetActive(false);
prefab.layer = AtmosphereVolumesLayer;

Collider collider = Shape switch
Expand Down
12 changes: 7 additions & 5 deletions Nautilus/Assets/PrefabTemplates/CloneTemplate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ public override IEnumerator GetPrefabAsync(TaskResult<GameObject> gameObject)
GameObject obj = gameObject.Get();
if (obj)
{
obj.SetActive(false);
ApplySkin(obj);
ModifyPrefab?.Invoke(obj);
if(ModifyPrefabAsync is { })
Expand All @@ -89,12 +90,13 @@ public override IEnumerator GetPrefabAsync(TaskResult<GameObject> gameObject)

if (_spawnType == SpawnType.TechType)
{
yield return CraftData.InstantiateFromPrefabAsync(_techTypeToClone, gameObject);
obj = gameObject.Get();
var task = CraftData.GetPrefabForTechTypeAsync(_techTypeToClone);
yield return task;
obj = Utils.InstantiateDeactivated(task.GetResult());
}
else if(_spawnType == SpawnType.Prefab)
{
var task = _prefabToClone.InstantiateAsync();
var task = _prefabToClone.LoadAssetAsync();
yield return task;

if (task.Status != UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationStatus.Succeeded)
Expand All @@ -103,7 +105,7 @@ public override IEnumerator GetPrefabAsync(TaskResult<GameObject> gameObject)
yield break;
}

obj = task.Result;
obj = Utils.InstantiateDeactivated(task.Result);
}
else if(_spawnType == SpawnType.ClassId)
{
Expand All @@ -116,7 +118,7 @@ public override IEnumerator GetPrefabAsync(TaskResult<GameObject> gameObject)
yield break;
}

obj = Object.Instantiate(prefab);
obj = Utils.InstantiateDeactivated(prefab);
}

ApplySkin(obj);
Expand Down
2 changes: 2 additions & 0 deletions Nautilus/Assets/PrefabTemplates/EggTemplate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,7 @@ public override IEnumerator GetPrefabAsync(TaskResult<GameObject> gameObject)
var obj = gameObject.Get();
if (obj)
{
obj.SetActive(false);
yield return ProcessEgg(obj);
yield break;
}
Expand All @@ -231,6 +232,7 @@ Please use one of the constructor overloads that take a game object or pass a ga
""");
yield break;
}
obj.SetActive(false);
yield return ProcessEgg(obj);

gameObject.Set(obj);
Expand Down
3 changes: 2 additions & 1 deletion Nautilus/Assets/PrefabTemplates/EnergySourceTemplate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ public override IEnumerator GetPrefabAsync(TaskResult<GameObject> gameObject)
var obj = gameObject.Get();
if (obj)
{
obj.SetActive(false);
ApplyModifications(obj);
yield break;
}
Expand All @@ -68,7 +69,7 @@ private IEnumerator CreateEnergySource(IOut<GameObject> gameObject)
var task = CraftData.GetPrefabForTechTypeAsync(tt, false);
yield return task;

var obj = GameObject.Instantiate(task.GetResult());
var obj = UWE.Utils.InstantiateDeactivated(task.GetResult());

yield return ApplyModifications(obj);

Expand Down
2 changes: 1 addition & 1 deletion Nautilus/Assets/PrefabTemplates/FabricatorTemplate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ private IEnumerator CreateFabricator(IOut<GameObject> gameObject)
InternalLogger.Error($"Failed to get prefab for {FabricatorModel}!!!!!!!! PLEASE REPORT THIS BUG TO THE NAUTILUS TEAM!");
}

var obj = GameObject.Instantiate(prefab);
var obj = Utils.InstantiateDeactivated(prefab);
yield return ApplyCrafterPrefab(obj);
gameObject.Set(obj);
}
Expand Down
Loading