online fix

This commit is contained in:
2025-10-27 12:37:18 +01:00
parent 96d50bfad5
commit e6759d6610
281 changed files with 7337 additions and 136 deletions

View File

@@ -0,0 +1,79 @@
using System;
using System.Collections.Generic;
using Game.Scripts.Runtime.Data;
namespace MegaKoop.Game.Networking
{
internal static class EnemyDefinitionRegistry
{
private static readonly Dictionary<string, EnemyDefinition> DefinitionsById = new(StringComparer.OrdinalIgnoreCase);
private static readonly Dictionary<string, EnemyDefinition> DefinitionsByName = new(StringComparer.OrdinalIgnoreCase);
internal static void Register(EnemyDefinition definition)
{
if (definition == null)
{
return;
}
var id = NormalizeId(definition);
if (!string.IsNullOrEmpty(id))
{
DefinitionsById[id] = definition;
}
if (!string.IsNullOrEmpty(definition.name))
{
DefinitionsByName[definition.name] = definition;
}
}
internal static bool TryGet(string idOrName, out EnemyDefinition definition)
{
definition = null;
if (string.IsNullOrWhiteSpace(idOrName))
{
return false;
}
if (DefinitionsById.TryGetValue(idOrName, out definition))
{
return definition != null;
}
if (DefinitionsByName.TryGetValue(idOrName, out definition))
{
return definition != null;
}
return false;
}
internal static string ResolveId(EnemyDefinition definition)
{
if (definition == null)
{
return string.Empty;
}
var id = NormalizeId(definition);
Register(definition);
return id;
}
private static string NormalizeId(EnemyDefinition definition)
{
if (definition == null)
{
return string.Empty;
}
if (!string.IsNullOrEmpty(definition.Id))
{
return definition.Id;
}
return definition.name ?? string.Empty;
}
}
}