From f46aa42023bfffad6209e7015d45ec334369e2a0 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期一, 08 四月 2019 21:08:01 +0800
Subject: [PATCH] 382 地图编辑器json存储逻辑

---
 Core/MapEditor/Behavior/Bhv_Evt_RefreshMonster.cs |   73 +++++++++++++++++++++++++++---------
 1 files changed, 55 insertions(+), 18 deletions(-)

diff --git a/Core/MapEditor/Behavior/Bhv_Evt_RefreshMonster.cs b/Core/MapEditor/Behavior/Bhv_Evt_RefreshMonster.cs
index 5fa9a97..f9e0b09 100644
--- a/Core/MapEditor/Behavior/Bhv_Evt_RefreshMonster.cs
+++ b/Core/MapEditor/Behavior/Bhv_Evt_RefreshMonster.cs
@@ -49,11 +49,6 @@
 
         public override void SaveJson(StringBuilder stringBuilder)
         {
-            // bw.Write((byte)type);
-            // bw.Write(id);
-            // 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));
             stringBuilder.Append("{");
             stringBuilder.Append("\"type\":").Append((byte)type).Append(",");
             stringBuilder.Append("\"id\":").Append((byte)type).Append(",");
@@ -81,20 +76,47 @@
 
         public override void LoadJson(JsonData json)
         {
-        }
-
-        public override void Export(BinaryWriter bw)
-        {
-            base.Export(bw);
-            bw.Write((byte)overCondition);
-            bw.Write((byte)refreshType);
-            bw.Write(conditionParam);
-            bw.Write(overParam);
-            bw.Write(nextEventID);
-            bw.Write(monsterList.Count);
-            foreach (var _monster in monsterList)
+            type = (Evt.E_EventType)(byte)json["type"];
+            id = (int)json["id"];
+            float _pX = (float)json["px"];
+            float _pY = (float)json["py"];
+            float _pZ = (float)json["pz"];
+            transform.position = new Vector3(_pX, _pY, _pZ);
+            overCondition = (Evt_RefreshMonster.E_OverCondition)(byte)json["overCondition"];
+            refreshType = (Evt_RefreshMonster.E_RefreshType)(byte)json["refreshType"];
+            conditionParam = (int)json["conditionParam"];
+            overParam = (int)json["overParam"];
+            nextEventID = (int)json["nextEventID"];
+            var _monsterList = json["monsterList"];
+            for (int i = 0; i < _monsterList.Count; ++i)
             {
-                _monster.Export(bw);
+                var _resName = _monsterList[i]["resName"].ToString();
+                GameObject _go = null;
+
+                if (!string.IsNullOrEmpty(_resName.Trim()))
+                {
+                    string _path = "Assets/ResourcesOut/Mob/Prefab_Race_" + _resName + ".prefab";
+                    _go = AssetDatabase.LoadAssetAtPath<GameObject>(_path);
+                    if (_go)
+                    {
+                        _go = Instantiate(_go);
+                    }
+                }
+                else
+                {
+                    _go = GameObject.CreatePrimitive(PrimitiveType.Capsule);
+                }
+
+                _go.transform.SetParent(transform);
+                _go.transform.localPosition = Vector3.zero;
+                _go.transform.eulerAngles = Vector3.zero;
+                _go.transform.localScale = Vector3.one;
+
+                var _monsterData = _go.AddComponent<Bhv_MonsterData>();
+                _monsterData.resName = _resName;
+                monsterList.Add(_monsterData);
+
+                _monsterData.LoadJson(_monsterList[i]);
             }
         }
 
@@ -139,6 +161,21 @@
             }
         }
 
+        public override void Export(BinaryWriter bw)
+        {
+            base.Export(bw);
+            bw.Write((byte)overCondition);
+            bw.Write((byte)refreshType);
+            bw.Write(conditionParam);
+            bw.Write(overParam);
+            bw.Write(nextEventID);
+            bw.Write(monsterList.Count);
+            foreach (var _monster in monsterList)
+            {
+                _monster.Export(bw);
+            }
+        }
+
         public override bool DrawUI(GUISkin guiSkin)
         {
             bool _result = false;

--
Gitblit v1.8.0