修复插槽清理后的bug

This commit is contained in:
2026-01-18 20:20:33 +08:00
parent 58911b2ef4
commit 4dea9d9da7
8 changed files with 170 additions and 164 deletions

View File

@@ -1,48 +1,48 @@
using System;
using NB.Authentication;
using Fantasy;
using Fantasy.Async;
using Fantasy.Entitas;
using Fantasy.Network;
// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
namespace NB;
public static class EntityHelper
{
public static bool CheckInterval(this Entity entity, int interval)
{
var sessionTimeOutComponent = entity.GetComponent<EntityTimeOutComponent>();
if (sessionTimeOutComponent == null)
{
sessionTimeOutComponent = entity.AddComponent<EntityTimeOutComponent>();
sessionTimeOutComponent.SetInterval(interval);
return true;
}
return sessionTimeOutComponent.CheckInterval();
}
public static void SetTimeout(this Entity entity, int timeout = 3000, Func<FTask>? task = null)
{
var sessionTimeOutComponent = entity.GetComponent<EntityTimeOutComponent>();
if (sessionTimeOutComponent == null)
{
sessionTimeOutComponent = entity.AddComponent<EntityTimeOutComponent>();
}
sessionTimeOutComponent.TimeOut(timeout, task);
}
public static bool IsTimeOutComponent(this Entity entity)
{
return entity.GetComponent<EntityTimeOutComponent>() != null;
}
public static void CancelTimeout(this Entity entity)
{
entity.RemoveComponent<EntityTimeOutComponent>();
}
}
// using System;
// using NB.Authentication;
// using Fantasy;
// using Fantasy.Async;
// using Fantasy.Entitas;
// using Fantasy.Network;
// // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
//
// namespace NB;
//
// public static class EntityHelper
// {
// public static bool CheckInterval(this Entity entity, int interval)
// {
// var sessionTimeOutComponent = entity.GetComponent<EntityTimeOutComponent>();
//
// if (sessionTimeOutComponent == null)
// {
// sessionTimeOutComponent = entity.AddComponent<EntityTimeOutComponent>();
// sessionTimeOutComponent.SetInterval(interval);
// return true;
// }
//
// return sessionTimeOutComponent.CheckInterval();
// }
//
// public static void SetTimeout(this Entity entity, int timeout = 3000, Func<FTask>? task = null)
// {
// var sessionTimeOutComponent = entity.GetComponent<EntityTimeOutComponent>();
//
// if (sessionTimeOutComponent == null)
// {
// sessionTimeOutComponent = entity.AddComponent<EntityTimeOutComponent>();
// }
//
// sessionTimeOutComponent.TimeOut(timeout, task);
// }
//
// public static bool IsTimeOutComponent(this Entity entity)
// {
// return entity.GetComponent<EntityTimeOutComponent>() != null;
// }
//
// public static void CancelTimeout(this Entity entity)
// {
// entity.RemoveComponent<EntityTimeOutComponent>();
// }
// }