Restructured for new direction.

This commit is contained in:
2026-05-12 12:01:09 +01:00
parent 0439b6c1d2
commit c203f836b1
1134 changed files with 125569 additions and 213519 deletions

View File

@@ -45,47 +45,57 @@ namespace BriarQueen.Framework.Registries
{
_assetDictionary = new Dictionary<string, AssetReference>();
AddEntries(_sceneReferences, "Scenes");
AddEntries(_levelReferences, "Levels");
AddEntries(_itemReferences, "Items");
AddEntries(_uiReferences, "UI");
}
RegistryLookupBuilder.AddEntries(
_assetDictionary,
_sceneReferences,
this,
nameof(AssetRegistry),
"Scenes",
"AssetKey",
entry => entry.AssetKey,
entry => entry.Asset,
entry => RegistryLookupBuilder.HasNonEmptyKey(entry.AssetKey),
entry => entry.Asset != null,
"AssetReference is null");
private void AddEntries(List<AssetEntry> entries, string category)
{
if (entries == null)
return;
RegistryLookupBuilder.AddEntries(
_assetDictionary,
_levelReferences,
this,
nameof(AssetRegistry),
"Levels",
"AssetKey",
entry => entry.AssetKey,
entry => entry.Asset,
entry => RegistryLookupBuilder.HasNonEmptyKey(entry.AssetKey),
entry => entry.Asset != null,
"AssetReference is null");
foreach (var entry in entries)
{
if (entry == null)
continue;
RegistryLookupBuilder.AddEntries(
_assetDictionary,
_itemReferences,
this,
nameof(AssetRegistry),
"Items",
"AssetKey",
entry => entry.AssetKey,
entry => entry.Asset,
entry => RegistryLookupBuilder.HasNonEmptyKey(entry.AssetKey),
entry => entry.Asset != null,
"AssetReference is null");
if (string.IsNullOrWhiteSpace(entry.AssetKey))
{
Debug.LogWarning(
$"[AssetRegistry] Skipping {category} entry '{entry.name}' because AssetKey is empty.", this);
continue;
}
if (entry.Asset == null)
{
Debug.LogWarning(
$"[AssetRegistry] Skipping {category} entry '{entry.name}' because AssetReference is null.",
this);
continue;
}
if (_assetDictionary.ContainsKey(entry.AssetKey))
{
Debug.LogError(
$"[AssetRegistry] Duplicate AssetKey detected: '{entry.AssetKey}' from entry '{entry.name}'.",
this);
continue;
}
_assetDictionary.Add(entry.AssetKey, entry.Asset);
}
RegistryLookupBuilder.AddEntries(
_assetDictionary,
_uiReferences,
this,
nameof(AssetRegistry),
"UI",
"AssetKey",
entry => entry.AssetKey,
entry => entry.Asset,
entry => RegistryLookupBuilder.HasNonEmptyKey(entry.AssetKey),
entry => entry.Asset != null,
"AssetReference is null");
}
public bool TryGetReference(string key, out AssetReference reference)
@@ -116,4 +126,4 @@ namespace BriarQueen.Framework.Registries
}
#endif
}
}
}