Files
FlaxEngine/Source/Editor/Content/Import/FolderImportEntry.cs
2024-02-26 19:00:48 +01:00

53 lines
1.7 KiB
C#

// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
using System.IO;
namespace FlaxEditor.Content.Import
{
/// <summary>
/// Folder import entry.
/// </summary>
public class FolderImportEntry : ImportFileEntry
{
/// <summary>
/// Flag used to skip showing import settings dialog to used. Can be used for importing assets from code by plugins.
/// </summary>
public bool SkipSettingsDialog;
/// <inheritdoc />
public FolderImportEntry(ref Request request)
: base(ref request)
{
SkipSettingsDialog = request.SkipSettingsDialog;
}
/// <inheritdoc />
public override bool Import()
{
if (!Directory.Exists(ResultUrl))
{
Directory.CreateDirectory(ResultUrl);
var parentPath = Path.GetDirectoryName(ResultUrl);
var parent = Editor.Instance.ContentDatabase.Find(parentPath);
if (parent == null)
{
Editor.LogWarning("Failed to find the parent folder for the imported directory.");
return true;
}
Editor.Instance.ContentDatabase.RefreshFolder(parent, true);
}
var target = (ContentFolder)Editor.Instance.ContentDatabase.Find(ResultUrl);
// Import all sub elements
var files = Directory.GetFiles(SourceUrl);
Editor.Instance.ContentImporting.Import(files, target, SkipSettingsDialog);
// Import all sub dirs
var folders = Directory.GetDirectories(SourceUrl);
Editor.Instance.ContentImporting.Import(folders, target, SkipSettingsDialog);
return false;
}
}
}