first commit

This commit is contained in:
2025-07-06 00:23:46 +02:00
commit 38f50c8819
1788 changed files with 112878 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
using System.Collections.Generic;
namespace NitroxClient.GameLogic.HUD;
public class NitroxPDATabManager
{
public readonly Dictionary<PDATab, NitroxPDATab> CustomTabs = new();
private readonly Dictionary<string, Atlas.Sprite> tabSpritesByName = new();
private readonly Dictionary<string, TabSpriteLoadedEvent> spriteLoadedCallbackByName = new();
public NitroxPDATabManager()
{
void RegisterTab(NitroxPDATab nitroxTab)
{
CustomTabs.Add(nitroxTab.PDATabId, nitroxTab);
}
RegisterTab(new PlayerListTab());
}
public void AddTabSprite(string spriteName, Atlas.Sprite sprite)
{
tabSpritesByName.Add(spriteName, sprite);
if (spriteLoadedCallbackByName.TryGetValue(spriteName, out TabSpriteLoadedEvent spriteLoadedEvent))
{
spriteLoadedEvent.Invoke(sprite);
spriteLoadedCallbackByName.Remove(spriteName);
}
}
public bool TryGetTabSprite(string spriteName, out Atlas.Sprite sprite) => tabSpritesByName.TryGetValue(spriteName, out sprite);
public delegate void TabSpriteLoadedEvent(Atlas.Sprite sprite);
public void SetSpriteLoadedCallback(string tabName, TabSpriteLoadedEvent callback)
{
if (!spriteLoadedCallbackByName.ContainsKey(tabName))
{
spriteLoadedCallbackByName.Add(tabName, callback);
}
}
}