blizzless-diiis/src/DiIiS-NA/BGS-Server/Objects/RPCObjectManager.cs
Lucca Faria Ferri 2ebdff6c61 MonsterBrain.cs cleanup.
Removed Blizzless using comments as it clutters the dependency view.
2023-01-27 12:02:19 -08:00

41 lines
936 B
C#

//Blizzless Project 2022
using System;
using System.Collections.Generic;
using DiIiS_NA.Core.Logging;
namespace DiIiS_NA.LoginServer.Objects
{
public static class RPCObjectManager
{
private static readonly Logger Logger = LogManager.CreateLogger();
private static ulong _nextId = 10000;
public static readonly Dictionary<ulong, RPCObject> Objects = new Dictionary<ulong, RPCObject>();
static RPCObjectManager()
{ }
public static void Init(RPCObject obj)
{
if (Objects.ContainsKey(obj.DynamicId))
throw new Exception("Given object was already initialized");
ulong id = Next();
obj.DynamicId = id;
Objects.Add(id, obj);
}
public static void Release(RPCObject obj)
{
Logger.Trace("Releasing object {0}", obj.DynamicId);
Objects.Remove(obj.DynamicId);
}
public static ulong Next()
{
while (Objects.ContainsKey(++_nextId)) ;
return _nextId;
}
}
}