209 lines
6.0 KiB
C#
209 lines
6.0 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 车辆模型相关
|
|
/// </summary>
|
|
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<Material> 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);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 角色模型相关
|
|
/// </summary>
|
|
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();
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 编队相关
|
|
/// </summary>
|
|
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 配置表相关
|
|
/// </summary>
|
|
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Team 相机对象
|
|
/// </summary>
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化器
|
|
/// </summary>
|
|
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();
|
|
}
|
|
}
|
|
} |