export water also

This commit is contained in:
in0finite 2022-01-29 02:58:33 +01:00
parent 13523dd726
commit eb091f11d0
3 changed files with 30 additions and 6 deletions

View file

@ -220,9 +220,16 @@ namespace SanAndreasUnity.Editor
Transform[] objectsToExport = Array.Empty<Transform>();
if (m_exportFromSelection)
objectsToExport = Selection.transforms.Where(_ => _.gameObject.activeInHierarchy).Where(_ => _.GetComponent<MapObject>() != null).ToArray();
objectsToExport = Selection.transforms
.Where(_ => _.gameObject.activeInHierarchy)
.Where(_ => _.GetComponent<MapObject>() != null || _.GetComponent<Water>() != null)
.ToArray();
else if (this.IsExportingFromLoadedWorld)
objectsToExport = cell.transform.GetFirstLevelChildren().Where(_ => _.gameObject.activeInHierarchy).ToArray();
objectsToExport = cell.transform
.GetFirstLevelChildren()
.AppendIf(cell.Water != null, cell.Water.GetTransformOrNull())
.Where(_ => _.gameObject.activeInHierarchy)
.ToArray();
else if (this.IsExportingFromGameFiles)
{
cell.ignoreLodObjectsWhenInitializing = true;
@ -234,7 +241,10 @@ namespace SanAndreasUnity.Editor
EditorUtility.DisplayProgressBar("", "Initializing static geometry...", 0f);
cell.InitStaticGeometry();
objectsToExport = cell.StaticGeometries.Select(_ => _.Value.transform).ToArray();
objectsToExport = cell.StaticGeometries
.Select(_ => _.Value.transform)
.AppendIf(cell.Water != null, cell.Water.GetTransformOrNull())
.ToArray();
}
EditorUtility.ClearProgressBar();
@ -306,9 +316,12 @@ namespace SanAndreasUnity.Editor
if (EditorUtils.DisplayPausableProgressBar("", $"Triggering async load ({triggerLoadIndex + 1}/{objectsToExport.Length}), ETA {etaMeasurer.ETA} ... {triggerLoadObject.name}", i / (float)objectsToExport.Length))
yield break;
var mapObject = triggerLoadObject.GetComponentOrThrow<MapObject>();
mapObject.UnShow();
mapObject.Show(1f);
var mapObject = triggerLoadObject.GetComponent<MapObject>();
if (mapObject != null)
{
mapObject.UnShow();
mapObject.Show(1f);
}
}
nextIndexToTriggerLoad = nextNextIndex;

View file

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Linq;
namespace SanAndreasUnity.Utilities
{
@ -30,5 +31,10 @@ namespace SanAndreasUnity.Utilities
queue.Enqueue(item);
return queue;
}
public static IEnumerable<T> AppendIf<T>(this IEnumerable<T> enumerable, bool condition, T element)
{
return condition ? enumerable.Append(element) : enumerable;
}
}
}

View file

@ -263,6 +263,11 @@ namespace SanAndreasUnity.Utilities
}
}
public static Transform GetTransformOrNull(this Component component)
{
return (component != null) ? component.transform : null;
}
public static IEnumerable<Transform> GetAllParents(this Transform tr)
{
Transform currentParent = tr.parent;