缓存模块

This commit is contained in:
bob
2025-08-15 18:12:04 +08:00
parent d5689258fc
commit 34b25273a7
19 changed files with 275 additions and 79 deletions

View File

@@ -0,0 +1,16 @@
using Fantasy;
namespace NB.Game;
public static class CacheHandler
{
public static List<RoleSimpleInfo> GetPlayerBasicCacheInfos(List<long> id)
{
}
public static RoleSimpleInfo GetPlayerBasicCacheInfos(long id)
{
}
}

View File

@@ -59,11 +59,11 @@ public static class PlayerManageComponentSystem
account = PlayerFactory.Create(scene, accountId);
account.Basic.Level = 99;
account.Basic.NickName = "王麻子";
account.Basic.Country = "cn";
account.Basic.Exp = 999;
account.Basic.Head = "xxx.png";
account.Level = 99;
account.NickName = "王麻子";
account.Country = "cn";
account.Exp = 999;
account.Head = "xxx.png";
// for (int i = 0; i < 500; i++)
// {

View File

@@ -12,8 +12,13 @@ public sealed class PlayerDestroySystem : DestroySystem<Player>
{
protected override void Destroy(Player self)
{
self.Basic.Dispose();
self.Basic = null;
self.NickName = string.Empty;
self.Level = 0;
self.Exp = 0;
self.Country = string.Empty;
self.IsVip = false;
self.Head = string.Empty;
self.ItemContainer.Dispose();
self.ItemContainer = null;
self.FishContainer.Dispose();

View File

@@ -12,11 +12,6 @@ public static class PlayerHelper
public static void InitializeChildEntity(this Player self)
{
if (self.Basic == null)
{
self.Basic = Entity.Create<PlayerBasic>(self.Scene, true, true);
}
if (self.ItemContainer == null)
{
self.ItemContainer = Entity.Create<ItemContainer>(self.Scene, true, true);
@@ -54,7 +49,7 @@ public static class PlayerHelper
public static async FTask Save(this Player self)
{
self.NeedSave = true;
self.NeedSaveTime = TimeHelper.Now + PlayerManageComponent.AutoSaveTime;
self.NeedSaveTime = TimeHelper.Now + AppConfig.PlayerDataAutoSaveTime;
//先立马保存,后续做缓存
await self.Scene.World.DataBase.Save(self);
}
@@ -171,10 +166,11 @@ public static class PlayerHelper
return new RoleSimpleInfo()
{
RoleId = self.Id,
NickName = self.Basic.NickName,
Head = self.Basic.Head,
Country = self.Basic.Country,
Level = self.Basic.Level
NickName = self.NickName,
Head = self.Head,
Country = self.Country,
Level = self.Level,
Vip = self.IsVip,
};
}
@@ -187,14 +183,22 @@ public static class PlayerHelper
public static RoleBaseInfo GetRoleBaseInfo(this Player self)
{
return new RoleBaseInfo()
var ret = new RoleBaseInfo()
{
NickName = self.Basic.NickName,
Head = self.Basic.Head,
Country = self.Basic.Country,
Level = self.Basic.Level,
Exp = self.Basic.Exp,
NickName = self.NickName,
Head = self.Head,
Country = self.Country,
Level = self.Level,
Exp = self.Exp,
};
if (self.IsVip)
{
ret.VipInfo = new VipInfo();
ret.VipInfo.OpenTime = self.Vip.GetTime;
ret.VipInfo.ExpirationTime = self.Vip.ExpirationTime;
}
return ret;
}
#endregion

View File

@@ -4,6 +4,7 @@ using Fantasy.Entitas;
using Fantasy.Event;
using Fantasy.Helper;
using Fantasy.Serialize;
using NB.Game;
using ProtoBuf;
namespace NB;
@@ -28,7 +29,6 @@ public sealed class OnCreateSceneEvent : AsyncEventSystem<OnCreateScene>
/// <returns>A task representing the asynchronous operation.</returns>
protected override async FTask Handler(OnCreateScene self)
{
// var epoch1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks / 10000;
//
// {
@@ -44,16 +44,16 @@ public sealed class OnCreateSceneEvent : AsyncEventSystem<OnCreateScene>
// var time = (uint)((now - epochThisYear) / 1000);
// Log.Debug($"time = {time} now = {now} epochThisYear = {epochThisYear}");
// }
var scene = self.Scene;
switch (scene.SceneType)
{
case 6666:
{
var subSceneTestComponent = scene.AddComponent<SubSceneTestComponent>();
Log.Debug("增加了SubSceneTestComponent");
scene.EntityComponent.CustomSystem(subSceneTestComponent,CustomSystemType.RunSystem);
scene.EntityComponent.CustomSystem(subSceneTestComponent, CustomSystemType.RunSystem);
break;
}
case SceneType.Addressable:
@@ -71,6 +71,23 @@ public sealed class OnCreateSceneEvent : AsyncEventSystem<OnCreateScene>
{
break;
}
case SceneType.Game:
{
// for (int i = 0; i < 100; i++)
// {
// var accountId = scene.EntityIdFactory.Create;
// var account = PlayerFactory.Create(scene, accountId);
//
// account.Level = 99;
// account.NickName = $"测试号{i + 1}";
// account.Country = "cn";
// account.Exp = 999;
// account.Head = "xxx.png";
// await account.Save();
// }
//
break;
}
case SceneType.Gate:
{
// var tasks = new List<FTask>(2000);
@@ -92,7 +109,7 @@ public sealed class OnCreateSceneEvent : AsyncEventSystem<OnCreateScene>
// }
// await FTask.WaitAll(tasks);
// }
// 执行自定义系统
var testCustomSystemComponent = scene.AddComponent<TestCustomSystemComponent>();
scene.EntityComponent.CustomSystem(testCustomSystemComponent, CustomSystemType.RunSystem);