From a87120c155c48fa45b20a97c1a58bdbeb77318b7 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期三, 20 二月 2019 16:54:13 +0800
Subject: [PATCH] 3335 物品相关类型重构

---
 System/KnapSack/Logic/SinglePackModel.cs |   88 +++++++++++++++++++------------------------
 1 files changed, 39 insertions(+), 49 deletions(-)

diff --git a/System/KnapSack/Logic/SinglePackModel.cs b/System/KnapSack/Logic/SinglePackModel.cs
index 8bb3f7b..a02bac5 100644
--- a/System/KnapSack/Logic/SinglePackModel.cs
+++ b/System/KnapSack/Logic/SinglePackModel.cs
@@ -8,28 +8,16 @@
 {
     public class SinglePackModel
     {
-     
-        public PackType packType { get; private set; }
+        public readonly PackType type;
         public int openGridCount { get; private set; }
-        private Dictionary<int, ItemModel> packModelIndexDict = new Dictionary<int, ItemModel>(); //key 鐗╁搧浣嶇疆绱㈠紩
+        private Dictionary<int, ItemModel> items = new Dictionary<int, ItemModel>(); //key 鐗╁搧浣嶇疆绱㈠紩
 
-        PackModelInterface _modelInterface;
-        PackModelInterface modelInterface
-        {
-            get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); }
-        }
-
-        PlayerPackModel _playerPack;
-        PlayerPackModel playerPack
-        {
-            get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
-        }
+        PackModelInterface modelInterface { get { return ModelCenter.Instance.GetModel<PackModelInterface>(); } }
+        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
 
         public SinglePackModel(PackType type)
         {
-            ClearPackModel();
-            openGridCount = 0;
-            packType = type;
+            this.type = type;
         }
 
         /// <summary>
@@ -37,19 +25,21 @@
         /// </summary>
         /// <param name="itemInfo"></param>
         /// <param name="type"></param>
-        public void SetPackModel(ItemInfo itemInfo)
+        public void UpdateItem(ItemInfo itemInfo)
         {
-            if (!packModelIndexDict.ContainsKey(itemInfo.ItemPlace))
+            var index = itemInfo.ItemPlace;
+            if (!items.ContainsKey(index))
             {
-                ItemModel itemModel = new ItemModel(packType);
+                var itemModel = new ItemModel(type);
                 itemModel.SetItemInfo(itemInfo);
-                packModelIndexDict.Add(itemInfo.ItemPlace, itemModel);
+                items.Add(index, itemModel);
             }
             else
             {
-                packModelIndexDict[itemInfo.ItemPlace].SetItemInfo(itemInfo);
+                items[index].SetItemInfo(itemInfo);
             }
-            playerPack.SetItemGUIDDict(packModelIndexDict[itemInfo.ItemPlace]);
+
+            playerPack.SetItemGUIDDict(items[index]);
         }
 
         public void SetOpenGridCount(int count)
@@ -57,10 +47,9 @@
             openGridCount = count;
         }
 
-
-        public ItemModel GetItemModelByIndex(int index)
+        public ItemModel GetItemByIndex(int index)
         {
-            switch (packType)
+            switch (type)
             {
                 case PackType.JadeDynastyEquip:
                     if (index >= 121)
@@ -69,25 +58,26 @@
                     }
                     break;
             }
-            ItemModel itemModel = null;
-            packModelIndexDict.TryGetValue(index, out itemModel);
-            return itemModel;
+
+            ItemModel item = null;
+            items.TryGetValue(index, out item);
+            return item;
         }
 
-        public Dictionary<int, ItemModel> GetPackModelIndexDict()
+        public Dictionary<int, ItemModel> GetAllItems()
         {
-            return packModelIndexDict;
+            return items;
         }
 
         /// <summary>
         /// 寰楀埌姝D鐗╁搧鐨勬墍鏈夋暟閲�
         /// </summary>
         /// <returns></returns>
-        public int GetItemCountByID(int itemId,out List<ItemModel> list)
+        public int GetItemCountByID(int itemId, out List<ItemModel> list)
         {
             int count = 0;
             list = new List<ItemModel>();
-            foreach (ItemModel model in packModelIndexDict.Values)
+            foreach (var model in items.Values)
             {
                 if (model.itemId == itemId)
                 {
@@ -106,7 +96,7 @@
         public int GetItemCountByID(int itemId)
         {
             int count = 0;
-            foreach (ItemModel model in packModelIndexDict.Values)
+            foreach (ItemModel model in items.Values)
             {
                 if (model.itemId == itemId)
                 {
@@ -127,7 +117,7 @@
         {
             int count = 0;
             list = new List<ItemModel>();
-            foreach (ItemModel model in packModelIndexDict.Values)
+            foreach (ItemModel model in items.Values)
             {
                 if (model.config.Type == itemType)
                 {
@@ -146,7 +136,7 @@
         public List<int> GetItemsByQuality(int _quality)
         {
             var itemList = new List<int>();
-            foreach (var value in packModelIndexDict.Values)
+            foreach (var value in items.Values)
             {
                 if (value.config.ItemColor == _quality)
                 {
@@ -168,7 +158,7 @@
         {
             List<int> itemIndexlist = new List<int>();
             List<ItemModel> itemModellist = new List<ItemModel>();
-            foreach (ItemModel model in packModelIndexDict.Values)
+            foreach (ItemModel model in items.Values)
             {
                 if (model.itemId == itemId)
                 {
@@ -182,7 +172,7 @@
             int count = 0;
             for (i = 0; i < itemModellist.Count; i++)
             {
-                if(count < needCount)
+                if (count < needCount)
                 {
                     itemIndexlist.Add(itemModellist[i].itemPlace);
                     count += itemModellist[i].count;
@@ -191,7 +181,7 @@
                 {
                     break;
                 }
-             
+
             }
 
             return itemIndexlist;
@@ -203,11 +193,11 @@
         /// <param name="itemId"></param>
         /// <param name="isBind"></param>
         /// <returns></returns>
-        public List<int> ItemIndexlistByIsBind(int itemId,int needCnt,int isBind)
+        public List<int> ItemIndexlistByIsBind(int itemId, int needCnt, int isBind)
         {
             List<int> itemIndexlist = new List<int>();
             List<ItemModel> itemModellist = new List<ItemModel>();
-            foreach (ItemModel model in packModelIndexDict.Values)
+            foreach (ItemModel model in items.Values)
             {
                 if (model.itemId == itemId)
                 {
@@ -218,9 +208,9 @@
             int count = 0;
             for (int i = 0; i < itemModellist.Count; i++)
             {
-                if(count < needCnt)
+                if (count < needCnt)
                 {
-                    if(itemModellist[i].isBind == isBind)
+                    if (itemModellist[i].isBind == isBind)
                     {
                         itemIndexlist.Add(itemModellist[i].itemPlace);
                         count += itemModellist[i].count;
@@ -268,9 +258,9 @@
         public int GetNullGridIndex()
         {
             int i = -1;
-            for(i = 0; i < openGridCount; i++)
+            for (i = 0; i < openGridCount; i++)
             {
-               if(!packModelIndexDict.ContainsKey(i))
+                if (!items.ContainsKey(i))
                 {
                     return i;
                 }
@@ -285,19 +275,19 @@
         /// <returns></returns>
         public int GetRemainGridCount()
         {
-            return openGridCount - packModelIndexDict.Count;
+            return openGridCount - items.Count;
         }
         public void ClearItemModelByIndex(int index)
         {
-            if (packModelIndexDict.ContainsKey(index))
+            if (items.ContainsKey(index))
             {
-                packModelIndexDict.Remove(index);
+                items.Remove(index);
             }
         }
 
         public void ClearPackModel()
         {
-            packModelIndexDict.Clear();
+            items.Clear();
         }
     }
 }

--
Gitblit v1.8.0