You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.2 KiB
91 lines
3.2 KiB
3 years ago
|
using System;
|
||
|
|
||
|
namespace ET
|
||
|
{
|
||
|
[FriendClass(typeof(Synthesis))]
|
||
|
public static class SynthesisHelper
|
||
|
{
|
||
|
public static async ETTask<int> StartSynthesis(Unit unit, int configId, long maxAmount)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
C2M_StartSynthesis msg = new C2M_StartSynthesis() { ConfigId = configId, MaxAmount = maxAmount };
|
||
|
M2C_StartSynthesis resp = await unit.ZoneScene().GetComponent<SessionComponent>().Session.Call(msg) as M2C_StartSynthesis;
|
||
|
if (resp.Error == ErrorCode.ERR_Success)
|
||
|
{
|
||
|
var synthesis = unit.GetOrAddComponent<SynthesisComponent>().StartSynthesis(configId, maxAmount);
|
||
|
Log.Debug($"M2C_StartSynthesis_Success: {unit.GetComponent<SynthesisComponent>().Children.Count}");
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Log.Error(resp.Error.ToString());
|
||
|
}
|
||
|
|
||
|
return resp.Error;
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
Log.Error(e.ToString());
|
||
|
throw;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static async ETTask<int> UpdateSynthesis(Unit unit)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
C2M_GetSynthesis msg = new C2M_GetSynthesis();
|
||
|
M2C_GetSynthesis resp = await unit.ZoneScene().GetComponent<SessionComponent>().Session.Call(msg) as M2C_GetSynthesis;
|
||
|
if (resp.Error != ErrorCode.ERR_Success)
|
||
|
{
|
||
|
Log.Error(resp.Error.ToString());
|
||
|
return resp.Error;
|
||
|
}
|
||
|
|
||
|
SynthesisComponent component = unit.GetOrAddComponent<SynthesisComponent>();
|
||
|
component.Dispose();
|
||
|
component = unit.GetOrAddComponent<SynthesisComponent>();
|
||
|
foreach (var v in resp.SynthesisList)
|
||
|
{
|
||
|
var synthesis = component.AddChildWithId<Synthesis>(v.ConfigId);
|
||
|
synthesis.Progress = v.Progress;
|
||
|
synthesis.CurrAmount = v.CurrAmount;
|
||
|
synthesis.MaxAmount = v.MaxAmount;
|
||
|
synthesis.UpdateTime = v.UpdateTime;
|
||
|
synthesis.ConfigId = v.ConfigId;
|
||
|
}
|
||
|
|
||
|
return resp.Error;
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
Log.Error(e.ToString());
|
||
|
throw;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static async ETTask<int> EndSynthesis(Unit unit, int configId)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
C2M_EndSynthesis msg = new C2M_EndSynthesis() { ConfigId = configId };
|
||
|
M2C_EndSynthesis resp = await unit.ZoneScene().GetComponent<SessionComponent>().Session.Call(msg) as M2C_EndSynthesis;
|
||
|
if (resp.Error == ErrorCode.ERR_Success)
|
||
|
{
|
||
|
var err = SynthesisOperate.EndSynthesis(unit, configId);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Log.Error(resp.Error.ToString());
|
||
|
}
|
||
|
|
||
|
return resp.Error;
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
Log.Error(e.ToString());
|
||
|
throw;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|