using UnityEngine;
|
using System.IO;
|
|
namespace H2Engine
|
{
|
public class Bhv_MonsterData : MonoBehaviour
|
{
|
[HideInInspector]
|
public uint npcID;
|
[HideInInspector]
|
public string resName;
|
[HideInInspector]
|
public byte ai;
|
[HideInInspector]
|
public int faceDir;
|
|
#if UNITY_EDITOR
|
|
public void Save(BinaryWriter bw)
|
{
|
bw.Write(resName);
|
bw.Write(npcID);
|
bw.Write(ai);
|
bw.Write((float)System.Math.Round(transform.position.x, 2));
|
bw.Write((float)System.Math.Round(transform.position.y, 2));
|
bw.Write((float)System.Math.Round(transform.position.z, 2));
|
}
|
|
public void SaveJson(System.Text.StringBuilder stringBuilder)
|
{
|
stringBuilder.Append("{");
|
stringBuilder.Append("\"resName\":\"").Append(resName).Append("\",");
|
stringBuilder.Append("\"npcID\":").Append(npcID).Append(",");
|
stringBuilder.Append("\"ai\":").Append(npcID).Append(",");
|
stringBuilder.Append("\"faceDir\":").Append(faceDir).Append(",");
|
stringBuilder.Append("\"px\":").Append((float)System.Math.Round(transform.position.x, 2)).Append(",");
|
stringBuilder.Append("\"py\":").Append((float)System.Math.Round(transform.position.y, 2)).Append(",");
|
stringBuilder.Append("\"pz\":").Append((float)System.Math.Round(transform.position.z, 2));
|
stringBuilder.Append("}");
|
}
|
|
public void LoadJson(LitJson.JsonData jsonData)
|
{
|
resName = jsonData["resName"].ToString();
|
npcID = (uint)(int)jsonData["npcID"];
|
ai = (byte)jsonData["ai"];
|
faceDir = (int)jsonData["faceDir"];
|
float _pX = Bhv_MapData.GetJsonFloat(jsonData["px"]);
|
float _pY = Bhv_MapData.GetJsonFloat(jsonData["py"]);
|
float _pZ = Bhv_MapData.GetJsonFloat(jsonData["pz"]);
|
transform.position = new Vector3(_pX, _pY, _pZ);
|
name = "RefreshMonster_" + npcID;
|
}
|
|
public void Load(BinaryReader br)
|
{
|
npcID = br.ReadUInt32();
|
ai = br.ReadByte();
|
float _x = br.ReadSingle();
|
float _y = br.ReadSingle();
|
float _z = br.ReadSingle();
|
transform.position = new Vector3(_x, _y, _z);
|
name = "RefreshMonster_" + npcID;
|
}
|
|
public void Export(BinaryWriter bw)
|
{
|
bw.Write(npcID);
|
bw.Write(ai);
|
bw.Write(faceDir);
|
bw.Write((float)System.Math.Round(transform.position.x, 2));
|
bw.Write((float)System.Math.Round(transform.position.y, 2));
|
bw.Write((float)System.Math.Round(transform.position.z, 2));
|
}
|
|
#endif
|
}
|
}
|