Allow reimporting model prefabs from Content window context menu
This commit is contained in:
@@ -73,6 +73,16 @@ namespace FlaxEditor.Content
|
||||
return targetLocation.CanHaveAssets;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override bool CanReimport(ContentItem item)
|
||||
{
|
||||
if (item is not PrefabItem prefabItem)
|
||||
return base.CanReimport(item);
|
||||
|
||||
var prefab = FlaxEngine.Content.Load<Prefab>(prefabItem.ID);
|
||||
return prefab.GetDefaultInstance().GetScript<ModelPrefab>() != null;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void Create(string outputPath, object arg)
|
||||
{
|
||||
|
||||
@@ -311,6 +311,23 @@ namespace FlaxEditor.Windows
|
||||
{
|
||||
if (selection[i] is BinaryAssetItem binaryAssetItem)
|
||||
Editor.ContentImporting.Reimport(binaryAssetItem);
|
||||
else if (selection[i] is PrefabItem prefabItem)
|
||||
{
|
||||
var prefab = FlaxEngine.Content.Load<Prefab>(prefabItem.ID);
|
||||
var modelPrefab = prefab.GetDefaultInstance().GetScript<ModelPrefab>();
|
||||
if (!modelPrefab)
|
||||
continue;
|
||||
var importPath = modelPrefab.ImportPath;
|
||||
var editor = Editor.Instance;
|
||||
if (editor.ContentImporting.GetReimportPath("Model Prefab", ref importPath))
|
||||
continue;
|
||||
var folder = editor.ContentDatabase.Find(Path.GetDirectoryName(prefab.Path)) as ContentFolder;
|
||||
if (folder == null)
|
||||
continue;
|
||||
var importOptions = modelPrefab.ImportOptions;
|
||||
importOptions.Type = FlaxEngine.Tools.ModelTool.ModelType.Prefab;
|
||||
editor.ContentImporting.Import(importPath, folder, true, importOptions);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user