Ejemplo n.º 1
0
    private void SortingInventory()
    {
        var cases     = collectionCases.Values.Select(p => p).ToList <GameObject>();
        int indexMove = cases.Count - 1;

        foreach (GameObject caseInv in collectionCases.Values)                             //<< find case
        {
            CaseInventoryData dataInvCase    = caseInv.GetComponent <CaseInventoryData>(); //<< data case
            string            nameCaseObject = dataInvCase.NameInventopyObject;            //<< object
            if (string.IsNullOrEmpty(nameCaseObject))                                      //<< is empty case
            {
                //var cases = collectionCases.Values.Select(p=>p).ToList<GameObject>();

                //for (int i = cases.Count -1; i<0; i--) //<< finding full case
                //{
                //    GameObject caseInvFull = cases[i];
                //    CaseInventoryData dataInvCaseMove = caseInvFull.GetComponent<CaseInventoryData>(); //<< data case
                //    if(dataInvCaseMove == null)
                //    {
                //        Debug.Log("##### CaseInventoryData not found in caseInv (Full) = " + caseInvFull.name);
                //        continue;
                //    }
                //    DataObjectInventory caseObjectMove = dataInvCaseMove.DataObjectInv; //<< object
                //    if (false == string.IsNullOrEmpty(caseObjectMove.NameInventopyObject)) //<< is full case
                //    {
                //        //Fragment sorting  - move object full to empty
                //        UpdateCase(caseInv.name, caseObjectMove); //<< move object in empty case
                //        UpdateCase(caseInvFull.name, null); //<< clear object in full case
                //        break;
                //    }
                //}
                //for (int i = cases.Count - 1; i < 0; i--) //<< finding full case
                //{
                GameObject        caseInvFull     = cases[indexMove--];
                CaseInventoryData dataInvCaseMove = caseInvFull.GetComponent <CaseInventoryData>();    //<< data case
                if (dataInvCaseMove == null)
                {
                    Debug.Log("##### CaseInventoryData not found in caseInv (Full) = " + caseInvFull.name);
                    continue;
                }
                DataObjectInventory caseObjectMove = dataInvCaseMove.DataObjectInv;     //<< object
                if (false == string.IsNullOrEmpty(caseObjectMove.NameInventopyObject))  //<< is full case
                {
                    //Fragment sorting  - move object full to empty
                    UpdateCase(caseInv.name, caseObjectMove); //<< move object in empty case
                    UpdateCase(caseInvFull.name, null);       //<< clear object in full case
                    break;
                }
                //}
                break;
            }
        }
    }
Ejemplo n.º 2
0
 public void ClearFullCase(string caseInvName)
 {
     foreach (GameObject caseInv in collectionCases.Values)                             //<< find case
     {
         CaseInventoryData dataInvCase    = caseInv.GetComponent <CaseInventoryData>(); //<< data case
         string            nameCaseObject = dataInvCase.NameInventopyObject;            //<< object
         if (!string.IsNullOrEmpty(nameCaseObject) && caseInvName == caseInv.name)      //<< exit object
         {
             UpdateCase(caseInv.name, null);                                            //<< clear object in case
             break;
         }
     }
 }
Ejemplo n.º 3
0
    // --- ADD
    //public void AddCase(SaveLoadData.TypeInventoryObjects inventoryObject) // << add Object in first empty case
    public void AddCase(DataObjectInventory inventoryObject) // << add Object in first empty case
    {
        //SaveLoadData.TypeInventoryObjects inventoryObjectType =

        foreach (GameObject caseInv in collectionCases.Values)                             //<< find case
        {
            CaseInventoryData dataInvCase    = caseInv.GetComponent <CaseInventoryData>(); //<< data case
            string            nameCaseObject = dataInvCase.NameInventopyObject;            //<< object
            if (string.IsNullOrEmpty(nameCaseObject))                                      //<< exit object
            {
                UpdateCase(caseInv.name, inventoryObject);                                 //<< add new object
                break;
            }
        }
    }
Ejemplo n.º 4
0
    public DataObjectInventory UpdateCase(string nameCase, DataObjectInventory inventoryObject)
    {
        if (inventoryObject == null)
        {
            inventoryObject = new DataObjectInventory("");
        }

        DataObjectInventory oldDataObjCase = new DataObjectInventory("");

        if (!collectionCases.ContainsKey(nameCase))
        {
            Debug.Log("####### Not in Inventory nameCase = " + nameCase);
            return(oldDataObjCase);
        }
        GameObject        caseInv     = collectionCases[nameCase];
        GameObject        invCaseIcon = caseInv.transform.GetChild(0).gameObject;
        CaseInventoryData dataInvCase = caseInv.GetComponent <CaseInventoryData>();

        //SaveLoadData.TypeInventoryObjects typeInvObj = dataInvCase.DataObjectInv.TypeInventopyObject;
        //string NameInventopyObject = dataInvCase.NameInventopyObject;
        //if (typeInvObj == SaveLoadData.TypeInventoryObjects.PrefabField)

        if (string.IsNullOrEmpty(inventoryObject.NameInventopyObject))
        {
            oldDataObjCase            = dataInvCase.DataObjectInv;
            dataInvCase.DataObjectInv = new DataObjectInventory("");
            invCaseIcon.SetActive(false);
        }
        else
        {
            string striteInvName = inventoryObject.NameInventopyObject + "Inv";
            if (!Storage.Palette.SpritesInventory.ContainsKey(striteInvName))
            {
                Debug.Log("####### Not in SpritesInventory striteInvName = " + striteInvName);
                return(oldDataObjCase);
            }

            Sprite spriteObjectInv = Storage.Palette.SpritesInventory[striteInvName];
            dataInvCase.DataObjectInv = inventoryObject;
            invCaseIcon.GetComponent <SpriteRenderer>().sprite = spriteObjectInv;
            invCaseIcon.SetActive(true);
        }
        return(oldDataObjCase);
    }