using UnityEngine; using Framework; using GameWrapper.Team; using Cysharp.Threading.Tasks; using cfg.VihecleCultivateCfg; using Gameplay.Emoji; using Gameplay.Net; using Gameplay.Performance; using Gameplay.Utils; namespace Gameplay { /// /// 车辆模型相关 /// public class VehicleModelServiceImpl : IVehicleModelService { public string GetVehicleGameModelPath(int vehicleId) { return PathEx.GetVehicleGameModelPath(vehicleId); } public string GetBatteryModelPath(string modelPath) { return PathEx.GetBatteryModelPath(modelPath); } public string GetVehiclePaintPath(int vehicleID, int paintID) { return PathEx.GetVehiclePaintPath(vehicleID, paintID); } public async UniTask GetVehiclePaintMaterial(string paintPath) { return await CommonUtils.GetVehiclePaintMaterial(paintPath); } public GameObject FindVehiclePartRoot(GameObject vehicleModel, int vehicleId, TeamPaintType type) { PaintType mappedType = (PaintType)type; return VehicleDataHelper.FindVehiclePartRoot(vehicleModel, vehicleId, mappedType); } public object CombineConfigData(object vehicleData) { return VehicleDataHelper.CombineConfigData(vehicleData as VehicleCultivateData); } public bool VehicleDataDicContainsKey(uint id) { return VehicleCultivateDataManager.Instance.DataDic.ContainsKey(id); } public object GetVehicleData(uint id) { return VehicleCultivateDataManager.Instance.GetVehicleCultivateData(id); } public object GetVehicleDevelopment(uint id) { return Actor.Instance.Character.GetVehicleDevelopment(id); } } /// /// 角色模型相关 /// public class CharacterModelServiceImpl : ICharacterModelService { public string GetCharacterDisplayModelPath(string nameId) { return PathEx.GetCharacterDisplayModelPath(nameId); } public bool CharacterDataDicContainsKey(uint id) { return CharacterDataInfoManager.Instance.DataDic.ContainsKey(id); } public object GetCharacterData(uint id) { return CharacterDataInfoManager.Instance.GetCharacterInfo(id); } public object CreateEmojiManager(GameObject go, string eyesColor, string eyeBrowsType, string eyeBrowsColor, bool isActive) { var emojiMgr = new UnitEmojiManager(go, eyesColor, eyeBrowsType, eyeBrowsColor, true); return emojiMgr; } public void SwitchEmoji(object emojiManager, int emojiId) { if (emojiManager is UnitEmojiManager manager) { manager.SwitchEmoji(emojiId); } } public void DisposeEmojiManager(object emojiManager) { if (emojiManager is UnitEmojiManager manager) { manager.Dispose(); } } } /// /// 编队相关 /// public class TeamServiceImpl : ITeamService { public object GetTeamByIndex(int idx, bool isLegionBattle) { return TeamEditManager.Instance.GetTeamByIndex(idx, isLegionBattle); } public uint[] GetAllCharacters(object team) { if (team is Team teamObj) { return teamObj.GetAllCharacters().ToArray(); } return new uint[0]; } public uint[] GetVehicleIDs(object team) { if (team is Team teamObj) { return teamObj.GetVehicleIDs().ToArray(); } return new uint[0]; } public uint GetTeamNoneID() { return Team.NoneID; } public Shader GetVehicleShader() { return TeamEditManager.Instance.VehicleShader; } } /// /// 配置表相关 /// public class TableServiceImpl : ITableService { public object GetSkinConfig(int skinID, int roleID) { return TableManager.Instance.Tables.SkinCfg.Get(skinID, roleID); } public object GetBatteryConfig(long weaponId) { return TableManager.Instance.Tables.BatteryConfig.GetOrDefault(weaponId); } public bool TryGetCharacterAttriData(int id, out object data) { var charDataCfg = TableManager.Instance.Tables.CharacterAttri; if (charDataCfg.DataMap.TryGetValue(id, out var charSingleData)) { data = charSingleData; return true; } data = null; return false; } } /// /// Team 相机对象 /// public class TeamEditCameraObjImpl : ITeamEditCameraObj { public Camera teamEditCamera => TeamEditCameraObj.Instance.teamEditCamera; public void SetCameraAntialiasing(Camera camera) { if (TeamEditCameraObj.Instance) { if(TeamEditCameraObj.Instance.teamEditCamera) PerformanceManager.instance.SetCameraAntialiasing(TeamEditCameraObj.Instance.teamEditCamera); } } } /// /// 初始化器 /// public static class TeamWrapperAdapter { public static void InitializeServices() { TeamServiceHandle.VehicleService = new VehicleModelServiceImpl(); TeamServiceHandle.CharacterService = new CharacterModelServiceImpl(); TeamServiceHandle.TeamService = new TeamServiceImpl(); TeamServiceHandle.TableService = new TableServiceImpl(); TeamServiceHandle.TeamEditCameraObj = new TeamEditCameraObjImpl(); } } }