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_MapData.cs |   77 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 75 insertions(+), 2 deletions(-)

diff --git a/Core/MapEditor/Behavior/Bhv_MapData.cs b/Core/MapEditor/Behavior/Bhv_MapData.cs
index 6d12691..b5c70e5 100644
--- a/Core/MapEditor/Behavior/Bhv_MapData.cs
+++ b/Core/MapEditor/Behavior/Bhv_MapData.cs
@@ -90,8 +90,7 @@
                     triggerList[i].SaveJson(_stringBuilder);
                 }
             }
-            _stringBuilder.Append("]");
-            _stringBuilder.Append("},");
+            _stringBuilder.Append("],");
             _stringBuilder.Append("\"eventList\": [");
             if (eventList.Count > 0)
             {
@@ -100,6 +99,17 @@
                 {
                     _stringBuilder.Append(",");
                     eventList[i].SaveJson(_stringBuilder);
+                }
+            }
+            _stringBuilder.Append("],");
+            _stringBuilder.Append("\"transferList\": [");
+            if (transferList.Count > 0)
+            {
+                transferList[0].SaveJson(_stringBuilder);
+                for (int i = 1; i < transferList.Count; ++i)
+                {
+                    _stringBuilder.Append(",");
+                    transferList[i].SaveJson(_stringBuilder);
                 }
             }
             _stringBuilder.Append("]");
@@ -131,6 +141,69 @@
             }
         }
 
+
+        public void LoadJson(LitJson.JsonData json)
+        {
+            id = (int)json["id"];
+            var _triggerList = json["triggerList"];
+            GameObject _go = null;
+            if (_triggerList.Count > 0)
+            {
+                for (int i = 0; i < _triggerList.Count; ++i)
+                {
+                    _go = new GameObject(NodeName_Trigger + i);
+                    _go.transform.position = Vector3.zero;
+                    _go.transform.eulerAngles = Vector3.zero;
+                    _go.transform.localScale = Vector3.one;
+                    var _triggerBhv = _go.AddComponent<Bhv_MapTrigger>();
+                    _triggerBhv.boxCollider = _go.AddComponent<BoxCollider>();
+                    _triggerBhv.transform.SetParent(transform.Find(NodeName_TriggerList));
+                    triggerList.Add(_triggerBhv);
+                    _triggerBhv.LoadJson(_triggerList[i]);
+                }
+            }
+            var _eventList = json["eventList"];
+            if (_eventList.Count > 0)
+            {
+                for (int i = 0; i < _eventList.Count; ++i)
+                {
+                    _go = new GameObject(NodeName_Event + i);
+                    _go.transform.position = Vector3.zero;
+                    _go.transform.eulerAngles = Vector3.zero;
+                    _go.transform.localScale = Vector3.one;
+                    var _type = (Evt.E_EventType)(byte)_eventList[i]["type"];//br.ReadByte();
+                    if (_type == Evt.E_EventType.Enemy)
+                    {
+                        var _eventBhv = _go.AddComponent<Bhv_Evt_RefreshMonster>();
+                        _eventBhv.type = _type;
+                        _eventBhv.transform.SetParent(transform.Find(NodeName_EventList));
+                        eventList.Add(_eventBhv);
+                        _eventBhv.LoadJson(_eventList[i]);
+                    }
+                    else if (_type == Evt.E_EventType.SceneObject)
+                    {
+                        var _eventBhv = _go.AddComponent<Bhv_Evt_RefreshSceneObject>();
+                        _eventBhv.type = _type;
+                        _eventBhv.transform.SetParent(transform.Find(NodeName_EventList));
+                        eventList.Add(_eventBhv);
+                        _eventBhv.LoadJson(_eventList[i]);
+                    }
+                }
+            }
+            var _transferList = json["transferList"];
+            for (int i = 0; i < _transferList.Count; ++i)
+            {
+                _go = new GameObject(NodeName_Transfer + i);
+                _go.transform.position = Vector3.zero;
+                _go.transform.eulerAngles = Vector3.zero;
+                _go.transform.localScale = Vector3.one;
+                var _transferBhv = _go.AddComponent<Bhv_Trasfer>();
+                _transferBhv.transform.SetParent(transform.Find(NodeName_TransferList));
+                transferList.Add(_transferBhv);
+                _transferBhv.LoadJson(_transferList[i]);
+            }
+        }
+
         public void Load(BinaryReader br)
         {
             id = br.ReadInt32();

--
Gitblit v1.8.0