132 lines
4.7 KiB
C#
132 lines
4.7 KiB
C#
|
using UnityEngine;
|
|||
|
using System.Collections.Generic;
|
|||
|
using Thousandto.Editor.Excel;
|
|||
|
using Thousandto.Code.Logic;
|
|||
|
using Thousandto.Core.Asset;
|
|||
|
|
|||
|
namespace Thousandto.Editor.ModelEditor
|
|||
|
{
|
|||
|
//模型编辑器数据管理器
|
|||
|
public static class ModelDataManager
|
|||
|
{
|
|||
|
private static Dictionary<int, ModelData> _dataTable = null;
|
|||
|
private static ExcelInfo _curExcelInfo = null;
|
|||
|
public static Dictionary<int, ModelData> DataTable
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _dataTable;
|
|||
|
}
|
|||
|
}
|
|||
|
public static void Load()
|
|||
|
{
|
|||
|
var path = "../../Gamedata/Config/client/ModelConfig.xlsx";
|
|||
|
var excelInfo = ExcelReader.Read(path);
|
|||
|
if (excelInfo == null)
|
|||
|
return;
|
|||
|
_curExcelInfo = excelInfo;
|
|||
|
_dataTable = new Dictionary<int, ModelData>(excelInfo.IdValuesTable.Count);
|
|||
|
var iter = excelInfo.IdValuesTable.GetEnumerator();
|
|||
|
try
|
|||
|
{
|
|||
|
while (iter.MoveNext())
|
|||
|
{
|
|||
|
var modelData = new ModelData(iter.Current.Key, excelInfo);
|
|||
|
_dataTable.Add(modelData.CfgID, modelData);
|
|||
|
}
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
iter.Dispose();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static void Save()
|
|||
|
{
|
|||
|
if (_dataTable == null)
|
|||
|
return;
|
|||
|
if (_curExcelInfo == null)
|
|||
|
return;
|
|||
|
var iter = _dataTable.GetEnumerator();
|
|||
|
try
|
|||
|
{
|
|||
|
while(iter.MoveNext())
|
|||
|
{
|
|||
|
iter.Current.Value.SaveToExcel();
|
|||
|
}
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
iter.Dispose();
|
|||
|
}
|
|||
|
var path = "../../Gamedata/Config/client/ModelConfig.xlsx";
|
|||
|
ExcelWriter.Write(path, _curExcelInfo);
|
|||
|
}
|
|||
|
|
|||
|
//从表格中获取模型类型
|
|||
|
public static ModelTypeCode GetModelType(RoleSkinModelType type)
|
|||
|
{
|
|||
|
switch (type)
|
|||
|
{
|
|||
|
case RoleSkinModelType.PlayerBody://角色身体
|
|||
|
return ModelTypeCode.Player;
|
|||
|
case RoleSkinModelType.PlayerWeapon://武器
|
|||
|
return ModelTypeCode.Weapon;
|
|||
|
case RoleSkinModelType.GodWeapon://神兵武器
|
|||
|
return ModelTypeCode.GodWeapon;
|
|||
|
case RoleSkinModelType.PlayerWing: //翅膀
|
|||
|
return ModelTypeCode.Wing;
|
|||
|
case RoleSkinModelType.PlayerMount://角色坐骑
|
|||
|
return ModelTypeCode.Mount;
|
|||
|
case RoleSkinModelType.MonsterBody://怪物,npc主体
|
|||
|
return ModelTypeCode.Monster;
|
|||
|
case RoleSkinModelType.CollectionBody://采集物主体
|
|||
|
return ModelTypeCode.Object;
|
|||
|
case RoleSkinModelType.PlayerStrengthenVfx://角色强化特效
|
|||
|
return ModelTypeCode.StrengthenVfx;
|
|||
|
case RoleSkinModelType.DrapItem: //用于展示的武器
|
|||
|
return ModelTypeCode.Object;
|
|||
|
case RoleSkinModelType.GodWeaponVfx:
|
|||
|
return ModelTypeCode.WeaponVFX;
|
|||
|
default:
|
|||
|
return ModelTypeCode.Object;
|
|||
|
}
|
|||
|
}
|
|||
|
//从表格中获取模型类型
|
|||
|
public static ModelTypeCode GetVfxModelType(RoleSkinModelType type)
|
|||
|
{
|
|||
|
switch (type)
|
|||
|
{
|
|||
|
case RoleSkinModelType.PlayerBody://角色身体
|
|||
|
return ModelTypeCode.BodyVFX;
|
|||
|
case RoleSkinModelType.PlayerWeapon://武器
|
|||
|
case RoleSkinModelType.GodWeapon://神兵武器
|
|||
|
return ModelTypeCode.WeaponVFX;
|
|||
|
case RoleSkinModelType.PlayerWing: //翅膀
|
|||
|
return ModelTypeCode.WingVFX;
|
|||
|
case RoleSkinModelType.PlayerMount://角色坐骑
|
|||
|
return ModelTypeCode.MountVFX;
|
|||
|
case RoleSkinModelType.MonsterBody://怪物,npc主体
|
|||
|
return ModelTypeCode.MonsterVFX;
|
|||
|
case RoleSkinModelType.CollectionBody://采集物主体
|
|||
|
return ModelTypeCode.CollectionVFX;
|
|||
|
case RoleSkinModelType.PlayerStrengthenVfx://角色强化特效
|
|||
|
return ModelTypeCode.BodyVFX;
|
|||
|
case RoleSkinModelType.DrapItem: //用于展示的武器
|
|||
|
return ModelTypeCode.OtherVFX;
|
|||
|
default:
|
|||
|
return ModelTypeCode.OtherVFX;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static void Clear()
|
|||
|
{
|
|||
|
if (_dataTable != null)
|
|||
|
{
|
|||
|
_dataTable.Clear();
|
|||
|
}
|
|||
|
_dataTable = null;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|