29 lines
831 B
C#
29 lines
831 B
C#
using ET;
|
|
|
|
namespace ET
|
|
{
|
|
[NumericWatcher(NumericType.SkinId)]
|
|
public class NumericWatcher_SkinId : INumericWatcher
|
|
{
|
|
public async ETTask Run(Entity entity, float old, float value)
|
|
{
|
|
Log.Info($"@{entity.Id}改变 SkinId:{old} -> {value}");
|
|
Unit unit = entity.As<Unit>();
|
|
int skinId = MathHelper.RoundToInt(value);
|
|
if (skinId == 0)
|
|
{
|
|
Log.Error($"skinId == 0 where id = {unit.Id}");
|
|
return;
|
|
}
|
|
await Game.EventSystem.Publish(new ET.EventType.ChangeSkin
|
|
{
|
|
zoneScene = entity.ZoneScene(),
|
|
Id = unit.Id,
|
|
skinId = skinId
|
|
});
|
|
unit.RefreshPosition();
|
|
await ETTask.CompletedTask;
|
|
}
|
|
}
|
|
}
|