InventorySystem.InventorySort์ต๊ทผ ์ด๋ฆ์ด๋ ํน์ ์๋ฃ ์์๋ก ์ ๋ ฌ ๊ฐ๋ฅํ ์ธ๋ฒคํ ๋ฆฌ๊ฐ ํ์ํด์ง
๊ทผ๋ฐ List๋ ๋ฐฐ์ด์ย ์ด์ฉํด์ ์ ์ฅํ๋ ๋ฐฉ์์ ์ค๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋ฉด ์ ๋ ฌ๋ ๋ฐ์ดํฐ๊ฐย ๊ผฌ์ด๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํจ
๊ทธ๋์ ๋์
๋๋ฆฌ๋ฅผ ์ฐ๊ธฐ๋ก ํ์ย ย
public struct Inventory_Struct{
ย ย public sbyte Level;
ย ย public ItemType Type;
}
์ผ๋จ ์ธ๋ฒคํ ๋ฆฌ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ง๋ค์์
ย ย public int ItemCode;
๊ทธ ๋ค์ ์ธ๋ฒคํ ๋ฆฌ์ ๋ค์ด๊ฐ ์์ดํ
์ ์ฝ๋๋ฅผ ์ ์ฅํ ๋ณ์๋ฅผ ๋ง๋ค๊ณ
ย ย public Dictionary<int,Inventory_Struct> Inventory;
๋์
๋๋ฆฌ๋ก ์ธ๋ฒคํ ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ
public static void GetItem(ItemType Type){
ย ย ย ย var data=new Inventory_Struct();
ย ย ย ย var select=Resource.TreasureData.Lists[Type];
ย ย ย ย data.Level=0;
ย ย ย ย data.Type=Type;
ย ย ย ย DataManager.DataSave.Inventory.Add( Resource.PlayerData.Datas.TreausreCode,data);
ย ย ย ย DataManager.DataSave.ItemCode++;
ย ย }
์์ดํ
์ ์ธ๋ฒคํ ๋ฆฌ์ ์ถ๊ฐ ํ ๋๋ ์์ดํ
์ฝ๋๋ฅผ ์ค๋ค์ ์ ์ฅํ ๋ณ์์ ๊ฐ์ ๋ํด์ฃผ๋ฉด ํด๋น ์ธ๋ฒคํ ๋ฆฌ ์์ดํ
์ ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง๊ฒ๋จ
public static class InventorySystem
{
public static List<int>InventorySort;
์ธ๋ฒคํ ๋ฆฌ ์ ๋ ฌ์ ์ฌ์ฉํ ๋ฆฌ์คํธ๋ฅผ ํ๋ ๋ง๋ฌ
public enum ItemTpye{
ย ย ์ด๋ฆ์,
ย ย ๋ ๋ฒจ๋์์,
ย ย ๋ ๋ฒจ๋ฎ์์,
ย ย ํฌ๊ท๋๋์์,
ย ย ํฌ๊ท๋๋ฎ์์,
}
ย ย public void InvetorySort(ItemTpye Sort){
ย ย ย ย InventorySort.Clear();
ย ย ย ย foreach(var Inv in DataManager.DataSave.Inventory){
ย ย ย ย ย ย InventorySort.Add(Inv.Key);
ย ย ย ย }
ย ย ย ย switch(Sort){
ย ย ย ย ย ย case SortEnum.์ด๋ฆ์:
ย ย ย ย ย ย ย ย InventorySort=
InventorySort.OrderBy(X=>DataManager. ItemData.IData[DataManager.DataSave.Inventory[X].Type].Name).ToList();
ย ย ย ย ย ย break;
ย ย ย ย ย ย case SortEnum.๋ ๋ฒจ๋ฎ์์:
ย ย ย ย ย ย ย ย InventorySort=InventorySort.OrderByDescending(X=>DataManager.DataSave.Inventory[X].Level).ToList();
ย ย ย ย ย ย break;
ย ย ย ย ย ย case SortEnum.๋ ๋ฒจ๋์์:
ย ย ย ย ย ย ย ย InventorySort=InventorySort.OrderBy(X=>DataManager.DataSave.Inventory[X].Level).ToList();
ย ย ย ย ย ย break;
ย ย ย ย ย ย case SortEnum.ํฌ๊ท๋๋ฎ์์:
ย ย ย ย ย ย ย ย InventorySort=
InventorySort.
OrderByDescending(X=>DataManager. ItemData.IData[DataManager.DataSave.Inventory[X].Type].Rare).ToList();
ย ย ย ย ย ย break;
ย ย ย ย ย ย case SortEnum.ํฌ๊ท๋๋์์:
ย ย ย ย ย ย ย ย InventorySort=
InventorySort.OrderBy(X=>DataManager. ItemData.IData[DataManager.DataSave.Inventory[X].Type].Rare).ToList();
ย ย ย ย ย ย break;
ย ย ย ย }
ย ย }
๊ทธ๋ค์ ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ์ ๋ ฌํ๊ณ ์ถ์ผ๋ฉดย ์์ดํ
ํค ๊ฐ์ List<Int>์ ๋ฃ๊ณ List๋ฅผย ์ ๋ ฌํจ
์ด๋ฌ๋ฉด List<Int>์ย ์ ๊ทผํด์ย ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง ์ธ๋ฒคํ ๋ฆฌ์ ์์ดํ
์ ๊ฐ์ ธ์ฌ ์ ์์
DataManager.DataSave.Inventory[InventorySystem.InventorySort[0]]
์ธ๋ฒคํ ๋ฆฌ์ ์ฒซ๋ฒ์งธ ์์ดํ
์ ๊ฐ์ง๊ณ ์ค๋ ค๋ฉด ์ด๋ฐ์์ธ๋ฐ
public static Inventory_Struct GetItem(int num){
return DataManager.DataSave.Inventory[InventorySort[num]];ย ย ย ย
}
๊ทธ๋ฅ ํธํ๊ฒ ์ด๋ ๊ฒ ํด๋๊ณ ย
InventorySystem.GetItem(0)
๊ฐ์ ธ์ด
๊ฐ์ธ์ ์ผ๋ก ์ธ๋ฒคํ ๋ฆฌ์ ๋ฌด์์ด ์ ์ ์ฅ๋น์ฌ๋กฏ์ด๋ ํต์ฌ๋กฏ๋ฑ ๋ค๋ฅธ ์ฌ๋กฏ๊ฐ์ ์ํธ์์ฉํ ๋์ธ๋ฏ
๊ทธ๋์ ๋์ ๋๋ฆฌ ์ฐ๊ฒ๋จ ๊ณ ์ ํ ํค๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ค๋ฅธ ์ฌ๋กฏ์ด๋ ์ํธ์์ฉํ๋ฉด ๊ผฌ์ผ์ผ ์์ผ๋๊น
์ข์ ์ฝ๋ ๊ฐ์จํฉ๋๋ค. ๊พธ๋ฒ ๊พธ๋ฒ
๋ ์ต๊ณ ์ผ ์ฝ