server-master/srcs/_plugins/Plugin.FamilyImpl/FamilyExperienceManager.cs
2026-02-10 18:21:30 +01:00

34 lines
No EOL
1 KiB
C#

using System.Collections.Concurrent;
using System.Collections.Generic;
using WingsEmu.Game.Families;
namespace Plugin.FamilyImpl
{
public class FamilyExperienceManager : IFamilyExperienceManager
{
private readonly ConcurrentQueue<ExperienceGainedSubMessage> _bufferFamilyExperience;
public FamilyExperienceManager() => _bufferFamilyExperience = new ConcurrentQueue<ExperienceGainedSubMessage>();
public void SaveFamilyExperienceToBuffer(ExperienceGainedSubMessage xpGained)
{
_bufferFamilyExperience.Enqueue(xpGained);
}
public IReadOnlyCollection<ExperienceGainedSubMessage> GetFamilyExperiencesInBuffer()
{
if (_bufferFamilyExperience.IsEmpty)
{
return null;
}
var list = new List<ExperienceGainedSubMessage>();
while (_bufferFamilyExperience.TryDequeue(out ExperienceGainedSubMessage exp))
{
list.Add(exp);
}
return list;
}
}
}