148 lines
4.0 KiB
C#
148 lines
4.0 KiB
C#
using System;
|
||
using UnityEngine;
|
||
using Cysharp.Threading.Tasks;
|
||
|
||
namespace GameWrapper.Team
|
||
{
|
||
/// <summary>
|
||
/// 映射PaintType枚举,避免直接依赖 注意后期修改 TODO 优化
|
||
/// </summary>
|
||
public enum TeamPaintType
|
||
{
|
||
None = 0,
|
||
Fort = 1,
|
||
CaterpillarBelt = 2,
|
||
Entirety = 3,
|
||
Max = 4,
|
||
}
|
||
|
||
/// <summary>
|
||
/// 角色添加数据
|
||
/// </summary>
|
||
public struct CharAddData
|
||
{
|
||
public uint ID;
|
||
public int Idx;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 载具添加数据
|
||
/// </summary>
|
||
public struct VehicleAddData
|
||
{
|
||
public uint ID;
|
||
public int Idx;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 载具接口
|
||
/// </summary>
|
||
public interface IVehicleModelService
|
||
{
|
||
//获取载具游戏模型路径
|
||
string GetVehicleGameModelPath(int vehicleId);
|
||
|
||
// 获取炮台模型路径
|
||
string GetBatteryModelPath(string modelPath);
|
||
|
||
// 获取载具涂装路径
|
||
string GetVehiclePaintPath(int vehicleID, int paintID);
|
||
|
||
// 获取载具涂装材质
|
||
UniTask<Material> GetVehiclePaintMaterial(string paintPath);
|
||
|
||
// 查找载具部件根节点
|
||
GameObject FindVehiclePartRoot(GameObject vehicleModel, int vehicleId, TeamPaintType type);
|
||
|
||
// 组合配置数据
|
||
object CombineConfigData(object vehicleData);
|
||
|
||
// 检查载具数据字典是否包含指定ID
|
||
bool VehicleDataDicContainsKey(uint id);
|
||
|
||
// 获取载具数据
|
||
object GetVehicleData(uint id);
|
||
|
||
// 获取载具发展数据
|
||
object GetVehicleDevelopment(uint id);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 角色接口
|
||
/// </summary>
|
||
public interface ICharacterModelService
|
||
{
|
||
// 获取角色显示模型路径
|
||
string GetCharacterDisplayModelPath(string nameId);
|
||
|
||
// 检查角色数据字典是否包含指定ID
|
||
bool CharacterDataDicContainsKey(uint id);
|
||
|
||
// 获取角色数据
|
||
object GetCharacterData(uint id);
|
||
|
||
// 创建表情管理器
|
||
object CreateEmojiManager(GameObject go, string eyesColor, string eyeBrowsType, string eyeBrowsColor, bool isActive);
|
||
|
||
// 切换表情
|
||
void SwitchEmoji(object emojiManager, int emojiId);
|
||
|
||
// 释放表情管理器
|
||
void DisposeEmojiManager(object emojiManager);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 编队队伍接口
|
||
/// </summary>
|
||
public interface ITeamService
|
||
{
|
||
// 获取团队信息
|
||
object GetTeamByIndex(int idx, bool isLegionBattle);
|
||
|
||
// 获取队伍中的所有角色ID
|
||
uint[] GetAllCharacters(object team);
|
||
|
||
// 获取队伍中的所有载具ID
|
||
uint[] GetVehicleIDs(object team);
|
||
|
||
// 获取默认团队ID
|
||
uint GetTeamNoneID();
|
||
|
||
// 获取载具Shader
|
||
Shader GetVehicleShader();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 配置表接口
|
||
/// </summary>
|
||
public interface ITableService
|
||
{
|
||
// 获取皮肤配置
|
||
object GetSkinConfig(int skinID, int roleID);
|
||
|
||
// 获取电池配置
|
||
object GetBatteryConfig(long weaponId);
|
||
|
||
// 获取角色属性配置
|
||
bool TryGetCharacterAttriData(int id, out object data);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 相机接口
|
||
/// </summary>
|
||
public interface ITeamEditCameraObj
|
||
{
|
||
Camera teamEditCamera { get; }
|
||
|
||
void SetCameraAntialiasing(Camera camera);
|
||
}
|
||
|
||
public static class TeamServiceHandle
|
||
{
|
||
public static IVehicleModelService VehicleService { get; set; }
|
||
public static ICharacterModelService CharacterService { get; set; }
|
||
public static ITeamService TeamService { get; set; }
|
||
public static ITableService TableService { get; set; }
|
||
public static ITeamEditCameraObj TeamEditCameraObj { get; set; }
|
||
}
|
||
} |