diff --git a/AnnoMapEditor.Tests/Utils/TheoryWithGameFilesAttribute.cs b/AnnoMapEditor.Tests/Utils/TheoryWithGameFilesAttribute.cs
index 9e3cc7f..9d69643 100644
--- a/AnnoMapEditor.Tests/Utils/TheoryWithGameFilesAttribute.cs
+++ b/AnnoMapEditor.Tests/Utils/TheoryWithGameFilesAttribute.cs
@@ -13,7 +13,7 @@ public TheoryWithGameFilesAttribute()
Utilities.Settings.Instance.WaitForLoadingBlocking();
waitTimer.Stop();
- if (!Utilities.Settings.Instance.IsValidDataPath)
+ if (!Utilities.Settings.Instance.IsValidGamePath)
{
Skip = "The curring test environment has not detected the game files required for this unit test. " +
$"Waited {waitTimer.ElapsedMilliseconds}ms for this information...";
diff --git a/AnnoMapEditor/App.config b/AnnoMapEditor/App.config
new file mode 100644
index 0000000..120d839
--- /dev/null
+++ b/AnnoMapEditor/App.config
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AnnoMapEditor/App.xaml b/AnnoMapEditor/App.xaml
index 96f7a8f..9d091b6 100644
--- a/AnnoMapEditor/App.xaml
+++ b/AnnoMapEditor/App.xaml
@@ -2,7 +2,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:AnnoMapEditor"
- StartupUri="UI/Windows/Main/MainWindow.xaml">
+ StartupUri="UI/Windows/Start/StartWindow.xaml">
diff --git a/AnnoMapEditor/DataArchives/Assets/Attributes/AssetTemplateAttribute.cs b/AnnoMapEditor/DataArchives/Assets/Attributes/AssetTemplateAttribute.cs
deleted file mode 100644
index c0e7c4f..0000000
--- a/AnnoMapEditor/DataArchives/Assets/Attributes/AssetTemplateAttribute.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-
-namespace AnnoMapEditor.DataArchives.Assets.Attributes
-{
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
- public class AssetTemplateAttribute : Attribute
- {
- public string TemplateName { get; init; }
-
-
- public AssetTemplateAttribute(string templateName)
- {
- TemplateName = templateName;
- }
- }
-}
diff --git a/AnnoMapEditor/DataArchives/Assets/Deserialization/AssetTemplateAttribute.cs b/AnnoMapEditor/DataArchives/Assets/Deserialization/AssetTemplateAttribute.cs
new file mode 100644
index 0000000..a8d6e6f
--- /dev/null
+++ b/AnnoMapEditor/DataArchives/Assets/Deserialization/AssetTemplateAttribute.cs
@@ -0,0 +1,16 @@
+using System;
+
+namespace AnnoMapEditor.DataArchives.Assets.Deserialization
+{
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)]
+ public class AssetTemplateAttribute : Attribute
+ {
+ public string[] TemplateNames { get; init; }
+
+
+ public AssetTemplateAttribute(params string[] templateNames)
+ {
+ TemplateNames = templateNames;
+ }
+ }
+}
diff --git a/AnnoMapEditor/DataArchives/Assets/Attributes/AssetReferenceAttribute.cs b/AnnoMapEditor/DataArchives/Assets/Deserialization/GuidReferenceAttribute.cs
similarity index 54%
rename from AnnoMapEditor/DataArchives/Assets/Attributes/AssetReferenceAttribute.cs
rename to AnnoMapEditor/DataArchives/Assets/Deserialization/GuidReferenceAttribute.cs
index 5406265..b0ac97d 100644
--- a/AnnoMapEditor/DataArchives/Assets/Attributes/AssetReferenceAttribute.cs
+++ b/AnnoMapEditor/DataArchives/Assets/Deserialization/GuidReferenceAttribute.cs
@@ -1,14 +1,14 @@
using System;
-namespace AnnoMapEditor.DataArchives.Assets.Attributes
+namespace AnnoMapEditor.DataArchives.Assets.Deserialization
{
[AttributeUsage(AttributeTargets.Property)]
- public class AssetReferenceAttribute : Attribute
+ public class GuidReferenceAttribute : Attribute
{
public string GuidPropertyName { get; init; }
- public AssetReferenceAttribute(string guidPropertyName)
+ public GuidReferenceAttribute(string guidPropertyName)
{
GuidPropertyName = guidPropertyName;
}
diff --git a/AnnoMapEditor/DataArchives/Assets/Deserialization/GuidReferenceResolverFactory.cs b/AnnoMapEditor/DataArchives/Assets/Deserialization/GuidReferenceResolverFactory.cs
new file mode 100644
index 0000000..35db63a
--- /dev/null
+++ b/AnnoMapEditor/DataArchives/Assets/Deserialization/GuidReferenceResolverFactory.cs
@@ -0,0 +1,129 @@
+using AnnoMapEditor.DataArchives.Assets.Models;
+using AnnoMapEditor.DataArchives.Assets.Repositories;
+using AnnoMapEditor.Utilities;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Reflection;
+
+namespace AnnoMapEditor.DataArchives.Assets.Deserialization
+{
+ public class GuidReferenceResolverFactory
+ {
+ private readonly AssetRepository _assetRepository;
+
+ private readonly Logger _logger;
+
+
+ public GuidReferenceResolverFactory(AssetRepository assetRepository)
+ {
+ _assetRepository = assetRepository;
+ _logger = new Logger();
+ }
+
+
+ public Action