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; } } }
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; } } }
// --- 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; } } }
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); }