Implemented "Open recent Project" menu entry

+ Clean up handle -> asset map when chaning Asset or Resource directory
This commit is contained in:
Simon Lübeß
2023-08-21 14:11:51 +02:00
parent 3affb8a32f
commit 0165279220
4 changed files with 90 additions and 4 deletions
@@ -250,6 +250,10 @@ class AssetHierarchy
_resourcesDirectoryNode?.ForEach(scope (node) => {
_pathToAssetNode.Remove(node->Path);
_identifierToAssetNode.Remove(node->Identifier);
let handle = node->AssetFile?.AssetConfig?.AssetHandle;
if (handle != null)
_handleToAssetNode.Remove(handle.Value);
});
_assetRootNode.RemoveChild(_resourcesDirectoryNode);
DeleteTreeAndChildren!(_resourcesDirectoryNode);
@@ -283,11 +287,18 @@ class AssetHierarchy
/// Sets path to the directory that contains the game assets.
public void SetAssetsDirectory(StringView fileName)
{
if (AssetsDirectory == fileName)
return;
AssetsDirectory = fileName;
_assetsDirectoryNode?.ForEach(scope (node) => {
_pathToAssetNode.Remove(node->Path);
_identifierToAssetNode.Remove(node->Identifier);
let handle = node->AssetFile?.AssetConfig?.AssetHandle;
if (handle != null)
_handleToAssetNode.Remove(handle.Value);
});
_assetRootNode.RemoveChild(_assetsDirectoryNode);
DeleteTreeAndChildren!(_assetsDirectoryNode);