public Sprite m_ItemSprite;                // 아이템 텍스처


    public EquipItem(E_EQUIPITEMS p_item,
                     E_ITEMTYPE p_itemType,
                     Sprite p_itemSprite)
    {
        m_Item       = p_item;
        m_ItemType   = p_itemType;
        m_ItemSprite = p_itemSprite;
    }
Exemplo n.º 2
0
    // 테이블 정보 갱신
    public void TableInfoRenewal()
    {
        object[] tempArr = new object[transform.childCount]; // 1차원 배열로 가져와서 2차원 배열로 옮길것

        // 배열 채우는 용도
        E_EQUIPITEMS   tempEquipEnum   = E_EQUIPITEMS.None;
        E_CONSUMEITEMS tempConsumeEnum = E_CONSUMEITEMS.None;

        for (int i = 0; i < transform.childCount; i++)
        {
            object tempObj = transform.GetChild(i).GetComponent <Slot>().m_ItemInfo; // 제작대 슬롯 별로 접근

            // null 이면 저장하고 continue
            if (tempObj == null)
            {
                tempArr[i] = tempObj; // 제작대 n번째 슬롯 아이템
                continue;
            }
            // 장비 아이템
            else if (tempObj.GetType() == typeof(EquipItem))
            {
                tempObj = Core.GetFiledInfoToReflectionValueType
                              (tempObj, tempEquipEnum); // 해당 슬롯의 아이템값 저장
            }
            // 소비 아이템
            else
            {
                tempObj = Core.GetFiledInfoToReflectionValueType
                              (tempObj, tempConsumeEnum); // 해당 슬롯의 아이템값 저장
            }


            tempArr[i] = tempObj; // 제작대 n번째 슬롯 아이템
        }

        // 1차원 -> 2차원 옮기기
        for (int y = 0; y < m_Row; y++)
        {
            for (int x = 0; x < m_Col; x++)
            {
                m_CreaftingTable[y, x] = tempArr[(y * m_Row) + x];
                //Debug.Log(m_CreaftingTable[y, x]);
            }
        }

        FinishedItem.GetInstance.FinishedCheak(); // 완성 체크
    }
    /*
     * 리스트에서 매개변수로 전달받은 정보와 같은 아이템 찾아서 반환 해주는 함수
     */
    public T GetItem <T>(string p_item, E_ITEMTYPE p_type) where T : class
    {
        T retItem; // 반환할 아이템

        switch (p_type)
        {
        case E_ITEMTYPE.Equipment:
            // 넘어온 아이템 이름 Enum.Parse 해서 Enum 형식으로 할당
            E_EQUIPITEMS tempEquipEnum = (E_EQUIPITEMS)Enum.Parse(typeof(E_EQUIPITEMS), p_item);     // string -> enum

            for (int i = 0; i < m_EquipItemList.Count; i++)
            {
                if (m_EquipItemList[i].m_Item == tempEquipEnum)         // 리스트에서 같은 아이템 찾기
                {
                    retItem = m_EquipItemList[i] as T;                  // 형 변환
                    return(retItem);
                }
            }
            break;

        case E_ITEMTYPE.Consumption:
            // 넘어온 아이템 이름 Enum.Parse 해서 Enum 형식으로 할당
            E_CONSUMEITEMS tempConsumeEnum = (E_CONSUMEITEMS)Enum.Parse(typeof(E_CONSUMEITEMS), p_item);     // string -> enum

            for (int i = 0; i < m_ConsumeItemList.Count; i++)
            {
                if (m_ConsumeItemList[i].m_Item == tempConsumeEnum)         // 리스트에서 같은 아이템 찾기
                {
                    retItem = m_ConsumeItemList[i] as T;                    // 형 변환
                    return(retItem);
                }
            }
            break;
        }

        return(null);
    }
Exemplo n.º 4
0
    // 장비, 소비 아이템 제작 레시피 설정
    void SetItemRecipe()
    {
        m_ItemList.Add(ItemManager.GetInstance.GetItem <ConsumeItem>(("Stick"), E_ITEMTYPE.Consumption));          // 막대기 추가
        m_ItemList.Add(ItemManager.GetInstance.GetItem <EquipItem>(("WoodenAxe"), E_ITEMTYPE.Equipment));          // 나무 도끼 추가
        m_ItemList.Add(ItemManager.GetInstance.GetItem <EquipItem>(("FishingRod"), E_ITEMTYPE.Equipment));         // 낚싯대 추가
        m_ItemList.Add(ItemManager.GetInstance.GetItem <EquipItem>(("CarrotOnAStick"), E_ITEMTYPE.Equipment));     // 당근 낚싯대 추가

        // 아이템 이름 가져오는 용도
        string         tempstr         = "";
        E_EQUIPITEMS   tempEquipEnum   = E_EQUIPITEMS.None;
        E_CONSUMEITEMS tempConsumeEnum = E_CONSUMEITEMS.None;

        for (int i = 0; i < m_ItemList.Count; i++)
        {
            if (m_ItemList[i].GetType() == typeof(EquipItem)) // 장비
            {
                tempstr = Core.GetFiledInfoToReflectionValueType
                              (m_ItemList[i], tempEquipEnum).ToString(); // i번째 아이템 이름 가져오기
            }
            if (m_ItemList[i].GetType() == typeof(ConsumeItem))          // 소비
            {
                tempstr = Core.GetFiledInfoToReflectionValueType
                              (m_ItemList[i], tempConsumeEnum).ToString(); // i번째 아이템 이름 가져오기
            }


            object[,] recipe = new object[m_Row, m_Col];
            // 막대기
            if (tempstr == "Stick")
            {
                recipe[0, 0] = null;                 recipe[0, 1] = null;                      recipe[0, 2] = null;
                recipe[1, 0] = null;                 recipe[1, 1] = E_CONSUMEITEMS.Wood;       recipe[1, 2] = null;
                recipe[2, 0] = null;                 recipe[2, 1] = E_CONSUMEITEMS.Wood;       recipe[2, 2] = null;
                m_ItemRecipeList.Add(recipe);
                continue;
            }

            // 나무도끼
            if (tempstr == "WoodenAxe")
            {
                recipe[0, 0] = E_CONSUMEITEMS.Wood;  recipe[0, 1] = E_CONSUMEITEMS.Wood;       recipe[0, 2] = null;
                recipe[1, 0] = E_CONSUMEITEMS.Wood;  recipe[1, 1] = E_CONSUMEITEMS.Stick;      recipe[1, 2] = null;
                recipe[2, 0] = null;                 recipe[2, 1] = E_CONSUMEITEMS.Stick;      recipe[2, 2] = null;
                m_ItemRecipeList.Add(recipe);
                continue;
            }

            // 낚싯대
            if (tempstr == "FishingRod")
            {
                recipe[0, 0] = null;                 recipe[0, 1] = null;                      recipe[0, 2] = E_CONSUMEITEMS.Stick;
                recipe[1, 0] = null;                 recipe[1, 1] = E_CONSUMEITEMS.Stick;      recipe[1, 2] = E_CONSUMEITEMS.String;
                recipe[2, 0] = E_CONSUMEITEMS.Stick; recipe[2, 1] = null;                      recipe[2, 2] = E_CONSUMEITEMS.String;
                m_ItemRecipeList.Add(recipe);
                continue;
            }

            // 당근 낚싯대
            if (tempstr == "CarrotOnAStick")
            {
                recipe[0, 0] = null;                recipe[0, 1] = null;                       recipe[0, 2] = null;
                recipe[1, 0] = null;                recipe[1, 1] = E_EQUIPITEMS.FishingRod;    recipe[1, 2] = null;
                recipe[2, 0] = null;                recipe[2, 1] = null;                       recipe[2, 2] = E_CONSUMEITEMS.Carrot;
                m_ItemRecipeList.Add(recipe);
                continue;
            }
        }
    }