using System; using System.Collections.Generic; using System.Text; namespace ET { public class UnitHelper { public static async ETTask Query(Entity domain, long id) { try { Unit unit = EntityFactory.CreateWithId(domain, id); PlayerData data = await DBComponent.Instance.Query(id); unit.AddComponent(data); Character character = await DBComponent.Instance.Query(id); unit.AddComponent(character); NumericComponent num = await DBComponent.Instance.Query(id); unit.AddComponent(num); UnitSkillComponent unitSkill = await DBComponent.Instance.Query(id); unit.AddComponent(unitSkill); //!玩家设置 UserSetting setting = await DBComponent.Instance.Query(id); unit.AddComponent(setting); //!任务 UnitTask unitTask = await DBComponent.Instance.Query(id); unit.AddComponent(unitTask); //!背包 Bag bag = await DBComponent.Instance.Query(id); unit.AddComponent(bag); UnitScene unitScene = await DBComponent.Instance.Query(id); unit.AddComponent(unitScene); StarSoulBag starSoulBag = await DBComponent.Instance.Query(id); unit.AddComponent(starSoulBag); Pet pet = await DBComponent.Instance.Query(id); unit.AddComponent(pet); unit.AddComponent(); return unit; } catch (Exception e) { Log.Error(e); } return null; } public static async ETTask Save(Unit unit) where T : Entity { Entity entity = unit.GetComponent(); await SaveComponenet(entity); } public static async ETTask SaveComponenet(T t) where T : Entity { await DBComponent.Instance.Save(t); } //public static async ETVoid Save(Team team) //{ // if (team.MemberCount > 1) // { // List list = new List(); // list.AddRange(team.GetUnits()); // await DBComponent.Instance.Save(list[0].As().TeamLeaderId, list); // } //} /// /// 设置位置信息以及人物信息 /// /// /// /// public static void SetUnitInfo(Unit unit, UnitPosInfo unitInfo) { UnitScene unitScene = unit.GetComponent(); if (unitScene == null) { Log.Error($"unitScene == null where id = {unit.Id}"); return; } unitInfo.X = unitScene.X; unitInfo.Y = unitScene.Y; unitInfo.YAngle = unitScene.YAngle; } } }