/* * public void RemoveDataObjectInGrid(string nameField, int index, string callFunc, bool isDebug = false, ModelNPC.ObjectData dataObjDel = null) * { * ModelNPC.ObjectData histData = null; * if (Storage.Log.IsSaveHistory) * histData = ReaderScene.GetObjectsDataFromGrid(nameField)[index]; * if (isDebug) * Debug.Log("****** RemoveDataObjectInGrid : start " + histData); * * if(dataObjDel!=null && dataObjDel.NameObject != histData.NameObject) * { * index = ReaderScene.GetObjectsDataFromGrid(nameField).FindIndex(p => p.NameObject == dataObjDel.NameObject); * if (index == -1) * { * Debug.Log("###################### RemoveDataObjectInGrid Data Del: " + dataObjDel.NameObject + " Data Find: " + histData.NameObject + " ... NOT find in Field: " + nameField); * Storage.Log.SaveHistory(histData.NameObject, "ERROR RemoveDataObjectInGrid", callFunc, nameField, "Conflict Name", dataObjDel, histData); * return; * } * histData = ReaderScene.GetObjectsDataFromGrid(nameField)[index]; * if(dataObjDel.NameObject != histData.NameObject) * { * Debug.Log("###################### RemoveDataObjectInGrid Data Del: " + dataObjDel.NameObject + " Data Find: " + histData.NameObject + " ... NOT find in Field: " + nameField); * Storage.Log.SaveHistory(histData.NameObject, "ERROR RemoveDataObjectInGrid", callFunc, nameField, "Conflict Name", dataObjDel, histData); * return; * } * } * * //ReaderScene.GetObjecsDataFromGrid(nameField).RemoveAt(index); * RemoveObjecDataGridByIndex(nameField, index); * * if (Storage.Log.IsSaveHistory) * { * if (histData == null) * { * Debug.Log("##################### Error RemoveDataObjectInGrid save SaveHistory histData == null "); * return; * } * Storage.Log.SaveHistory(histData.NameObject, "RemoveDataObjectInGrid", callFunc, nameField, "", histData, dataObjDel); * } * * if (Storage.Map.IsGridMap) * Storage.Map.CheckSector(nameField); * } */ public void RemoveDataObjectInGrid(ModelNPC.ObjectData dataObjDel = null) { string nameField = string.Empty; int index = -1; if (dataObjDel != null) { Helper.GetNameFieldByPosit(ref nameField, dataObjDel.Position); //---------- test ------ //var objs = ReaderScene.GetObjectsDataFromGrid(nameField); //index = objs.FindIndex(p => p.NameObject == dataObjDel.NameObject); //--------------------- index = ReaderScene.GetObjectsDataFromGrid(nameField).FindIndex(p => p.NameObject == dataObjDel.NameObject); //--------------------- if (index == -1) { Debug.Log("###################### RemoveDataObjectInGrid Data Del: " + dataObjDel.NameObject + " Data Find: " + dataObjDel.NameObject + " ... NOT find in Field: " + nameField); Storage.Log.SaveHistory(dataObjDel.NameObject, "ERROR RemoveDataObjectInGrid", "", nameField, "Conflict Name", dataObjDel, dataObjDel); return; } } RemoveObjecDataGridByIndex(nameField, index); if (Storage.Log.IsSaveHistory) { Storage.Log.SaveHistory(dataObjDel.NameObject, "RemoveDataObjectInGrid", "RemoveDataObjectInGrid", nameField, "", dataObjDel, dataObjDel); } if (Storage.Map.IsGridMap) { Storage.Map.CheckSector(nameField); } }
public static ModelNPC.ObjectData GetObjectDataFromGrid(string nameGameObject, string nameField) { if (!ReaderScene.IsGridDataFieldExist(nameField)) { Debug.Log("################# Error FindObjectData FIELD NOT FOUND :" + nameField + " find object: " + nameGameObject); //if (!Storage.Instance.IsLoadingWorldThread) //{ //Storage.Data.AddNewFieldInGrid(nameField, "GetObjecsDataFromGrid", true); //} //else //{ // Debug.Log("################# Error FindObjectData FIELD NOT FOUND :" + nameField + " find object: " + nameGameObject); return(null); // //return new ModelNPC.ObjectData(); //} } List <ModelNPC.ObjectData> objects = ReaderScene.GetObjectsDataFromGrid(nameField); int index = objects.FindIndex(p => p.NameObject == nameGameObject); if (index == -1) { Debug.Log("################# Error FindObjectData DATA OBJECT NOT FOUND : " + nameGameObject + " in Field: " + nameField); return(null); } return(objects[index]); }
public void DrawLocationHero(bool isOpenChange = false) { if (!isOpenChange) { return; } if (IsOpen || isOpenChange) { Texture2D textureMap = prefabFrameMap.GetComponent <SpriteRenderer>().sprite.texture; Texture2D textureMapResult = textureMap; //Texture2D textureResult = new Texture2D(textureMap.width, textureMap.height); //Graphics.CopyTexture(textureMap, 0, 0, 0, 0, textureMap.width, textureMap.height, textureResult, 0, 0, 0, 0); //-- Restore --- if (Storage.Instance.SelectFieldPosHero != saveHeroPosField) { if (!string.IsNullOrEmpty(saveHeroPosField)) { SaveLoadData.TypePrefabs prefabType = SaveLoadData.TypePrefabs.PrefabField; string nameField = saveHeroPosField; if (ReaderScene.IsGridDataFieldExist(nameField)) { foreach (ModelNPC.ObjectData datObjItem in ReaderScene.GetObjectsDataFromGrid(nameField)) { if (datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabUfo.ToString() && datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabBoss.ToString()) { prefabType = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), datObjItem.TypePrefabName); break; //@@@+ } } } Vector2 posF = Helper.GetPositByField(nameField); int x = (int)posF.x; int y = (int)posF.y; DrawTextureTo(SizeCellMap, "Restore", SizeCellMap - 1, textureMapResult, y, x, prefabType); } saveHeroPosField = Storage.Instance.SelectFieldPosHero; } //------ //@@@+ textureMapResult = AddTextureHeroOnMap(textureMapResult); //@@@- //Vector2 posHero = Helper.GetPositByField(Storage.Instance.SelectFieldPosHero); //int heroX = (int)posHero.x; //int heroY = (int)posHero.y; //DrawTextureTo(SizeCellMap, "Hero", SizeCellMap - 1, textureResult, heroY, heroX, Storage.Map.textureHero); textureMapResult.Apply(); Sprite spriteMe = Sprite.Create(textureMapResult, new Rect(0.0f, 0.0f, textureMapResult.width, textureMapResult.height), new Vector2(0.5f, 0.5f), 100.0f); prefabFrameMap.GetComponent <SpriteRenderer>().sprite = spriteMe; } }
public void RemoveObjecDataGridByIndex(string nameField, int index) { temp_objsDeletes = ReaderScene.GetObjectsDataFromGrid(nameField); if (Storage.Instance.ReaderSceneIsValid) { temp_string = temp_objsDeletes[index].Id; Storage.ReaderWorld.RemoveObjectInfo(temp_string); } temp_objsDeletes.RemoveAt(index); temp_objsDeletes = null; }
public void ClearObjecsDataFromGrid(string nameField) { if (Storage.Instance.ReaderSceneIsValid) { foreach (var item in ReaderScene.GetObjectsDataFromGrid(nameField)) { Storage.ReaderWorld.RemoveObjectInfo(item.Id); } } ReaderScene.GetObjectsDataFromGrid(nameField).Clear(); }
public void SetObjecDataFromGrid(string nameField, int index, ModelNPC.ObjectData newData) { if (!ReaderScene.IsGridDataFieldExist(nameField)) { Storage.Data.AddNewFieldInGrid(nameField, "SetObjecDataFromGrid"); } ReaderScene.GetObjectsDataFromGrid(nameField)[index] = newData; if (Storage.Instance.ReaderSceneIsValid) { Storage.ReaderWorld.UpdateLinkData(newData, nameField, index); } }
public Texture2D DrawLocationHero(Texture2D textureResult) { //Texture2D textureResult = new Texture2D(textureMap.width, textureMap.height); //Graphics.CopyTexture(textureMap, 0, 0, 0, 0, textureMap.width, textureMap.height, textureResult, 0, 0, 0, 0); //-- Restore --- //if (Storage.Instance.SelectFieldPosHero != saveHeroPosField) //{ //Clear old position Hero if (!string.IsNullOrEmpty(saveHeroPosField)) { SaveLoadData.TypePrefabs prefabType = SaveLoadData.TypePrefabs.PrefabField; string nameField = saveHeroPosField; if (ReaderScene.IsGridDataFieldExist(nameField)) { foreach (ModelNPC.ObjectData datObjItem in ReaderScene.GetObjectsDataFromGrid(nameField)) { if (datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabUfo.ToString() && datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabBoss.ToString()) { prefabType = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), datObjItem.TypePrefabName); } } } Vector2 posF = Helper.GetPositByField(nameField); int x = (int)posF.x; int y = (int)posF.y; DrawTextureTo(SizeCellMap, "Restore", SizeCellMap - 1, textureResult, y, x, prefabType); } saveHeroPosField = Storage.Instance.SelectFieldPosHero; //} //------ //@@@+ textureResult = AddTextureHeroOnMap(textureResult); //@@@- //Vector2 posHero = Helper.GetPositByField(Storage.Instance.SelectFieldPosHero); //int heroX = (int)posHero.x; //int heroY = (int)posHero.y; //DrawTextureTo(SizeCellMap, "Hero", SizeCellMap - 1, textureResult, heroY, heroX, Storage.Map.textureHero); return(textureResult); }
public bool RemoveAllFindDataObject(string nameObj) { //Debug.Log("+++++ RemoveAllFindDataObject +++ start :" + nameObj); bool isRemoved = false; string idObj = Helper.GetID(nameObj); //Debug.Log("+++++ RemoveAllFindDataObject +++ start :" + idObj); //-----------------------FIXED Correct foreach (var item in _GridDataG.FieldsD) { string nameField = item.Key; List <ModelNPC.ObjectData> resListData = ReaderScene.GetObjectsDataFromGrid(nameField).Where(p => { return(p.NameObject.IndexOf(idObj) != -1); }).ToList(); if (resListData != null) { var resListDataTest = ReaderScene.GetObjectsDataFromGrid(nameField).Where(p => { return(p.NameObject.IndexOf(idObj) != -1); }); if (resListDataTest.Count() != resListData.Count()) { Debug.Log("+++++ RemoveAllFindDataObject: resListDataTest.Count(" + resListDataTest.Count() + ") != resListData.Count(" + resListData.Count() + ")"); } //foreach (var obj in resListData) for (int i = 0; i < resListData.Count(); i++) { var obj = resListData[i]; if (obj == null) { Debug.Log("+++++ CORRECT ++++ DELETE (" + idObj + ") >>>> in DATA Object Fields: " + nameField + " obj is null"); continue; } Debug.Log("+++++ CORRECT ++++ DELETE (" + idObj + ") >>>> in DATA Object Fields: " + nameField + " obj=" + obj); RemoveDataObjectInGrid(nameField, i, "NextPosition"); isRemoved = true; } } } return(isRemoved); }
//@DESTROY@ public bool DestroyFullObject(GameObject gObj, bool isCorrect = false, bool isStopReal = false) //???? isStopReal { if (gObj == null) { Debug.Log("+++ DestroyFullObject ++++ object is null"); return(false); } //if (isCorrect) // Debug.Log("++++++++++++ DestroyFullObject ++++ : " + gObj); string setName = gObj.name; string nameField = Helper.GetNameFieldByName(setName); if (nameField == null) { return(false); } bool isExistReal = true; if (!_GamesObjectsReal.ContainsKey(nameField)) { isExistReal = false; if (isStopReal) { Debug.Log("####### DestroyFullObject not field : " + nameField); return(false); } } if (isExistReal) { List <GameObject> listObjInField = _GamesObjectsReal[nameField]; for (int i = listObjInField.Count - 1; i >= 0; i--) { if (listObjInField[i] == null) { _UpdateData.RemoveRealObject(i, nameField, "DestroyRealObject"); } } if (listObjInField.Count > 0) { int indRealData = listObjInField.FindIndex(p => p.name == setName); if (indRealData == -1) { Debug.Log("+++ ------ DestroyFullObject: ------ Hero destroy >>> Not find GamesObjectsReal : " + gObj.name); } else { _UpdateData.RemoveRealObject(indRealData, nameField, "DestroyRealObject"); } } } bool isDestroyOnBild = false; if (gObj != null) { if (PoolGameObjects.IsUsePoolObjects) { var evObj = gObj.GetComponent <EventsObject>(); if (evObj != null && evObj.PoolCase.IsDesrtoy) //Replace Data on Construct when Paint Prafab { isDestroyOnBild = true; } } //@@@- //Destroy(gObj); //@@@+ gObj.GetEvent().PoolCase.Deactivate();// .IsDesrtoy = true; } else { Debug.Log("+++ DestroyFullObject ++++ Destroy ---- object is null"); } KillObjectHistory.Add(setName); //++ history //----------------------------------------------- bool isRemovedCorrect = false; bool isRemReal = false; bool isRemData = false; if (isCorrect) { isRemReal = _UpdateData.RemoveAllFindRealObject(setName); } //Destroy to Data if (false == ReaderScene.IsGridDataFieldExist(nameField)) { Debug.Log("+++++ ------- DestroyRealObject ----- !GridData.FieldsD not field=" + nameField); return(false); } List <ModelNPC.ObjectData> dataObjects = ReaderScene.GetObjectsDataFromGrid(nameField); int indObj = dataObjects.FindIndex(p => p.NameObject == gObj.name); if (!isCorrect) { if (indObj != -1) { //Destroy to Data _UpdateData.RemoveDataObjectInGrid(nameField, indObj, "DestroyRealObject"); } else { if (!isDestroyOnBild) { Debug.Log("!!!! ObjectData GridData not object=" + gObj.name); //RemoveAllFindRealObject(gObj.name); _UpdateData.RemoveAllFindDataObject(gObj.name); } } } else { if (indObj != -1) { //@DD@ dataObjects.RemoveAt(indObj); _UpdateData.RemoveDataObjectInGrid(nameField, indObj, "DestroyRealObject"); } isRemData = _UpdateData.RemoveAllFindDataObject(setName); } if (isRemData || isRemReal) { isRemovedCorrect = true; } return(isRemovedCorrect); }
//Texture2D textureMap = null; public Sprite GetBildSpriteMap(out Texture2D textureMap, int scaleCell = 1, bool isRefresh = false, int offsetMapX = 0, int offsetMapY = 0) { string indErr = "start"; int sizeMap = 25; int sizeDraw = sizeMap * scaleCell; int addSize = scaleCell - 1; offsetMapX *= sizeMap; offsetMapY *= sizeMap; textureMap = new Texture2D(sizeDraw, sizeDraw); //textureMap = new Texture2D(sizeDraw, sizeDraw, UnityEngine.Experimental.Rendering.GraphicsFormat.RGBA_DXT5_SRGB, UnityEngine.Experimental.Rendering.TextureCreationFlags.MipChain); //textureMap = new Texture2D(sizeDraw, sizeDraw, UnityEngine.Experimental.Rendering.GraphicsFormat.RGBA_DXT5_UNorm, UnityEngine.Experimental.Rendering.TextureCreationFlags.MipChain); try { indErr = "1"; for (int y = 0; y < sizeMap; y++) { indErr = "2"; for (int x = 0; x < sizeMap; x++) { indErr = "3"; //isPerson = false; indErr = "5"; int mapX = x + offsetMapX; int mapY = y + offsetMapY; string nameField = Helper.GetNameField(mapX, mapY); indErr = "6"; SaveLoadData.TypePrefabs prefabType = SaveLoadData.TypePrefabs.PrefabField; //-------------- if (nameField == Storage.Instance.SelectFieldPosHero) { DrawTextureTo(scaleCell, indErr, addSize, textureMap, y, x, Storage.Map.textureHero); continue; } //-------------- indErr = "7"; if (!ReaderScene.IsGridDataFieldExist(nameField)) { DrawTextureTo(scaleCell, indErr, addSize, textureMap, y, x, prefabType); continue; } indErr = "9"; foreach (ModelNPC.ObjectData datObjItem in ReaderScene.GetObjectsDataFromGrid(nameField)) { indErr = "10"; //Debug.Log("++++++++ : " + datObjItem + " " + datObjItem.TagObject + " =" + datObjItem.TagObject.IsPerson()); if (datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabUfo.ToString() && datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabBoss.ToString() && datObjItem.TypePoolPrefab != PoolGameObjects.TypePoolPrefabs.PoolPerson) { indErr = "11"; prefabType = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), datObjItem.TypePrefabName); if (datObjItem.TypePoolPrefab != PoolGameObjects.TypePoolPrefabs.PoolFloor) { break; } } } DrawTextureTo(scaleCell, indErr, addSize, textureMap, y, x, prefabType); indErr = "14"; } } } catch (Exception x) { Debug.Log("############# GetTextureMap: " + indErr + " " + x.Message); return(null); } //textureMap.Apply(); try { textureMap.Apply(); //textureMap.Apply(false, true); } catch (Exception x2) { Debug.Log("############# GetTextureMap: textureMap.Apply " + indErr + " " + x2.Message); return(null); } Sprite _spriteMap = null; try { //spriteMap = Sprite.Create(textureMap, new Rect(0.0f, 0.0f, textureMap.width, textureMap.height), new Vector2(0.5f, 0.5f), 100.0f); _spriteMap = Sprite.Create(textureMap, new Rect(0.0f, 0.0f, textureMap.width, textureMap.height), new Vector2(0.5f, 0.5f), 100.0f); } catch (Exception x2) { Debug.Log("############# GetTextureMap: Sprite.Create " + indErr + " " + x2.Message); return(null); } return(_spriteMap); }
public void CreateTextureMap(int scaleCell = 1, bool isRefresh = false) { string indErr = "start"; int sizeMap = Helper.HeightLevel; int sizeDraw = Helper.HeightLevel * scaleCell; int addSize = scaleCell - 1; //List<Color> colorsPersons = new List<Color>(); //List<SaveLoadData.TypePrefabs> listPersonsTypes = new List<SaveLoadData.TypePrefabs>(); //List<Texture2D> listPersonsPrefabTexture = new List<Texture2D>(); //List<Texture2D> listPersonsMapTexture = new List<Texture2D>(); if (!isRefresh) { CreateFrameMap(); } //Storage.Events.ListLogAdd = "Loaded map.." + DateTime.Now.ToLongTimeString(); bool isPerson = false; //Texture2D texture = new Texture2D(sizeDraw, sizeDraw); //textureMap = new Texture2D(sizeDraw, sizeDraw); //------- GRID MAP if (IsGridMap) { //var spriteMapC = Sprite.Create(textureMap, new Rect(0.0f, 0.0f, sizeDraw, sizeDraw), new Vector2(0.5f, 0.5f), 100.0f); //prefabFrameMap.GetComponent<SpriteRenderer>().sprite = spriteMapC; if (m_isGridMapLoaded) { BoxCollider2D colliderMapC = prefabFrameMap.GetComponent <BoxCollider2D>(); if (colliderMapC != null) { prefabFrameMap.GetComponent <BoxCollider2D>().size = new Vector3(sizeDraw / Helper.WidthLevel, sizeDraw / Helper.HeightLevel, 0); } } LoadGrid(); return; } //---------------------- //textureMap //textureMap = null; // textureMap = new Texture2D(sizeDraw, sizeDraw); //# fix mem 2. Texture2D textureMap = new Texture2D(sizeDraw, sizeDraw); try { indErr = "1"; for (int y = 0; y < sizeMap; y++) { indErr = "2"; for (int x = 0; x < sizeMap; x++) { indErr = "3"; isPerson = false; indErr = "5"; string nameField = Helper.GetNameField(x, y); indErr = "6"; SaveLoadData.TypePrefabs prefabType = SaveLoadData.TypePrefabs.PrefabField; indErr = "7"; if (!ReaderScene.IsGridDataFieldExist(nameField)) { DrawTextureTo(scaleCell, indErr, addSize, textureMap, y, x, prefabType); continue; } indErr = "9"; foreach (ModelNPC.ObjectData datObjItem in ReaderScene.GetObjectsDataFromGrid(nameField)) { indErr = "10"; //Debug.Log("++++++++ : " + datObjItem + " " + datObjItem.TagObject + " =" + datObjItem.TagObject.IsPerson()); if (datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabUfo.ToString() && datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabBoss.ToString()) { indErr = "11"; prefabType = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), datObjItem.TypePrefabName); } else { indErr = "12"; ModelNPC.GameDataBoss bossObj = datObjItem as ModelNPC.GameDataBoss; if (bossObj != null) { indErr = ""; prefabType = SaveLoadData.TypePrefabs.PrefabBoss; ////+++DRAW PERSON --------------------------------- // //Texture2D personTexture = Storage.GridData.GetSpriteBoss(bossObj.Level).texture; // //listPersonsPrefabTexture.Add(personTexture); ////>>>> Texture2D personMapTexture_True = Storage.GridData.GetTextuteMapBoss(bossObj.Level); //Texture2D personMapTexture = TypeBoss.Instance.GetNameTextureMapForIndexLevel(bossObj.Level); //listPersonsMapTexture.Add(personMapTexture); //----------------------------------------------------- isPerson = true; } } } indErr = "14"; ////----- DRAW if (!isPerson) { DrawTextureTo(scaleCell, indErr, addSize, textureMap, y, x, prefabType); } //----------------- //else //{ indErr = "22"; //---- Draw Person //+++DRAW PERSON //for (int indMap2D = 0; indMap2D < listPersonsMapTexture.Count(); indMap2D++) //{ // Texture2D texturePerson = listPersonsMapTexture[indMap2D]; // DrawTextureTo(scaleCell, indErr, addSize, texture, y, x, texturePerson); //} } } } catch (Exception x) { Debug.Log("############# CreateTextureMap: " + indErr + " " + x.Message); return; } textureMap = DrawLocationHero(textureMap); textureMap.Apply(); //#fix mem var _spriteMap = Sprite.Create(textureMap, new Rect(0.0f, 0.0f, textureMap.width, textureMap.height), new Vector2(0.5f, 0.5f), 100.0f); prefabFrameMap.GetComponent <SpriteRenderer>().sprite = _spriteMap; BoxCollider2D colliderMap = prefabFrameMap.GetComponent <BoxCollider2D>(); if (colliderMap != null) { prefabFrameMap.GetComponent <BoxCollider2D>().size = new Vector3(textureMap.width / Helper.WidthLevel, textureMap.height / Helper.HeightLevel, 0); } }
private void SaveListObjectsToData(string p_nameField, bool isDestroy = false) { if (!ConfigDebug.IsTestDUBLICATE) { SaveListObjectsToData_Cache(p_nameField, isDestroy); return; } var _gamesObjectsReal = Storage.Instance.GamesObjectsReal; var _gridData = Storage.Instance.GridDataG; string indErr = "start"; if (!_gamesObjectsReal.ContainsKey(p_nameField)) { Debug.Log("################# SaveListObjectsToData GamesObjectsReal Not field=" + p_nameField); return; } indErr = "start"; List <GameObject> realObjects = _gamesObjectsReal[p_nameField]; if (_gridData == null) { Debug.Log("################# SaveListObjectsToData GridData is EMPTY"); return; } if (!_gridData.FieldsD.ContainsKey(p_nameField)) { Debug.Log("################# SaveListObjectsToData !GridData.FieldsD not field=" + p_nameField); return; } List <ModelNPC.ObjectData> dataObjects = ReaderScene.GetObjectsDataFromGrid(p_nameField); int indLast = -1; try { indErr = "1."; for (int i = realObjects.Count - 1; i >= 0; i--) //+FIX { indErr = "2."; GameObject gobj = realObjects[i]; if (gobj == null || !gobj.activeSelf) { Debug.Log("***************** SaveListObjectsToData DESTROY GameObject field:" + p_nameField + " ind:" + i); continue; } indErr = "3."; int indData = dataObjects.FindIndex(p => p.NameObject == gobj.name); if (indData == -1) { indData = 0; bool isFind = false; foreach (var itemObj in ReaderScene.GetObjectsDataFromGrid(p_nameField)) { Debug.Log("[" + p_nameField + "] :: " + itemObj.NameObject); if (itemObj.NameObject == gobj.name) { Debug.Log(")))))))))))))))))))) [" + p_nameField + "] :: " + itemObj.NameObject + " index: " + indData); isFind = true; break; } indData++; } if (!isFind) { Debug.Log("################# SaveListObjectsToData 1. DataObject (" + gobj.name + ") not Find in DATA field: " + p_nameField); int newIndex = Storage.Log.ConflictLog(gobj, p_nameField, dataObjects); if (newIndex == -1) { Debug.Log("################# SaveListObjectsToData 2. DataObject (" + gobj.name + ") not Find in DATA field: " + p_nameField); continue; } else { indData = newIndex; } } } ModelNPC.ObjectData dataObj = dataObjects[indData]; if (ConfigDebug.IsTestDUBLICATE) { if (dataObj == null) { Debug.Log("################# SaveListObjectsToData 2. DataObject (" + gobj.name + ") not Find in DATA field: " + p_nameField); Storage.Log.GetHistory(gobj.name); continue; } if (dataObj.NameObject != gobj.name) { Debug.Log("################# SaveListObjectsToData 2. DataObject (" + gobj.name + ") <> (" + gobj.name + ") Gobj)"); Storage.Log.GetHistory(gobj.name); continue; } } indErr = "3.7."; var posD = dataObj.Position; var posR = gobj.transform.position; //!!!! indErr = "6."; string posFieldOld = Helper.GetNameFieldPosit(posD.x, posD.y); indErr = "7."; string posFieldReal = Helper.GetNameFieldPosit(posR.x, posR.y); if (posFieldOld != p_nameField) { Debug.Log("###### SaveListObjectsToData [" + gobj.name + "] posFieldOld(" + posFieldOld + ") != (" + p_nameField + ")p_nameField "); } indErr = "8."; //--------------------------------------------- if (posFieldOld != posFieldReal) { if (isDestroy) { dataObj.IsReality = false; gobj.SetActive(false); } indErr = "10. posFieldReal=" + posFieldReal + " <> posFieldOld=" + posFieldOld + " " + gobj.name; if (ReaderScene.IsGridDataFieldExist(posFieldReal)) { int indValid = ReaderScene.GetObjectsDataFromGrid(posFieldReal).FindIndex(p => p.NameObject == gobj.name); if (indValid != -1) { Debug.Log("################# SaveListObjectsToData )))))))))))))) Find " + gobj.name + " in " + posFieldReal); Storage.Data.UpdateDataObect(p_nameField, indData, dataObj, "SaveListObjectsToData", posR); //@<<@ continue; } } indErr = "11."; ModelNPC.ObjectData dataObjNew = (ModelNPC.ObjectData)dataObj.Clone(); var name = Helper.CreateName(dataObj.TypePrefabName, posFieldReal, "", gobj.name); indErr = "12."; indLast = -1; //---------- FIX@@DUBLICATE REM# if (!ConfigDebug.IsTestDUBLICATE) { indLast = ReaderScene.GetObjectsDataFromGrid(posFieldOld).FindIndex(p => p.NameObject == gobj.name); Storage.Data.RemoveDataObjectInGrid(posFieldOld, indData, "SaveListObjectsToData"); } else //------------------------------------------------------------------------- { if (ReaderScene.IsGridDataFieldExist(posFieldOld)) { indLast = ReaderScene.GetObjectsDataFromGrid(posFieldOld).FindIndex(p => p.NameObject == gobj.name); // FIX@@DUBLICATE REM# ------------------- if (indLast == -1) { indLast = ReaderScene.GetObjectsDataFromGrid(posFieldOld).FindIndex(p => p.Id == dataObj.Id); } if (indLast != -1) { Storage.Data.RemoveDataObjectInGrid(posFieldOld, indLast, "SaveListObjectsToData"); ////@<<@ } else { Debug.Log("#### SaveListObjectsToData DUBLICATE ERROR - not index " + dataObj.Id + " and " + gobj.name); } //-------------------- } else { Debug.Log("#### SaveListObjectsToData DUBLICATE ERROR - not field " + posFieldOld); } } //-------------------- indErr = "14."; dataObj = dataObjNew; indErr = "15."; dataObj.NameObject = name; indErr = "17."; //@SAVE@ ------ RESAVE PROPERTIES if (dataObj.NameObject != gobj.name) { if (!isDestroy) { dataObj.UpdateGameObject(gobj); } indErr = "18."; dataObj.SetPosition(gobj.transform.position); indErr = "19."; dataObj.UpdateGameObjectAndID(gobj); } dataObj.IsReality = false; indErr = "20."; Storage.Data.AddDataObjectInGrid(dataObj, posFieldReal, "SaveListObjectsToData"); indErr = "21."; //RESAVE REAL +++++++++++++++++++++++++++++++++++++++++++++++++++++ if (!Storage.Instance.GamesObjectsReal.ContainsKey(posFieldReal)) { indErr = "22."; Storage.Data.AddNewFieldInRealObject(posFieldReal, "SaveListObjectsToData"); } indErr = "23."; if (!isDestroy) { Debug.Log("SaveListObjectsToData -- AddRealObject -- " + gobj.name + " : " + posFieldReal); Storage.Data.AddRealObject(gobj, posFieldReal, "SaveListObjectsToData"); } indErr = "24."; Storage.Data.RemoveRealObject(i, p_nameField, "SaveListObjectsToData"); //+++++++++++++++++++++++++++++++++++++++++++++++++++++ indErr = "25."; //@SAVE@ if (!isDestroy) { GameObjectUpdatePersonData(gobj); } } else { //update if (isDestroy) { dataObj.IsReality = false; } //@@@TEST Storage.Data.UpdateDataObect(p_nameField, indData, dataObj, "SaveListObjectsToData", posR); //@<<@ //------------------------------------ } } } catch (Exception x) { Debug.Log("################# ERROR SaveListObjectsToData : " + x.Message + " #" + indErr); } }
private void SaveListObjectsToData_Cache(string p_nameField, bool isDestroy = false) { var _gamesObjectsReal = Storage.Instance.GamesObjectsReal; var _gridData = Storage.Instance.GridDataG; int indLast = -1; int indData = 0; GameObject gobj; ModelNPC.ObjectData dataObj; List <GameObject> realObjects = _gamesObjectsReal[p_nameField]; List <ModelNPC.ObjectData> dataObjects = ReaderScene.GetObjectsDataFromGrid(p_nameField); Vector3 posD; Vector3 posR; string posFieldOld; string posFieldReal; string name; for (int i = realObjects.Count - 1; i >= 0; i--) { gobj = realObjects[i]; if (gobj == null || !gobj.activeSelf) { continue; } indData = dataObjects.FindIndex(p => p.NameObject == gobj.name); dataObj = dataObjects[indData]; posD = dataObj.Position; posR = gobj.transform.position; posFieldOld = Helper.GetNameFieldPosit(posD.x, posD.y); posFieldReal = Helper.GetNameFieldPosit(posR.x, posR.y); if (posFieldOld != posFieldReal) { if (isDestroy) { dataObj.IsReality = false; gobj.SetActive(false); } ModelNPC.ObjectData dataObjNew = (ModelNPC.ObjectData)dataObj.Clone(); name = Helper.CreateName(dataObj.TypePrefabName, posFieldReal, "", gobj.name); indLast = -1; indLast = ReaderScene.GetObjectsDataFromGrid(posFieldOld).FindIndex(p => p.NameObject == gobj.name); Storage.Data.RemoveDataObjectInGrid(posFieldOld, indData, "SaveListObjectsToData"); //-------------------- dataObj = dataObjNew; dataObj.NameObject = name; //@SAVE@ ------ RESAVE PROPERTIES if (dataObj.NameObject != gobj.name) { if (!isDestroy) { dataObj.UpdateGameObject(gobj); } dataObj.SetPosition(gobj.transform.position); dataObj.UpdateGameObjectAndID(gobj); } dataObj.IsReality = false; Storage.Data.AddDataObjectInGrid(dataObj, posFieldReal, "SaveListObjectsToData"); if (!Storage.Instance.GamesObjectsReal.ContainsKey(posFieldReal)) { Storage.Data.AddNewFieldInRealObject(posFieldReal, "SaveListObjectsToData"); } if (!isDestroy) { Storage.Data.AddRealObject(gobj, posFieldReal, "SaveListObjectsToData"); } Storage.Data.RemoveRealObject(i, p_nameField, "SaveListObjectsToData"); if (!isDestroy) { GameObjectUpdatePersonData(gobj); } } else { if (isDestroy) { dataObj.IsReality = false; } Storage.Data.UpdateDataObect(p_nameField, indData, dataObj, "SaveListObjectsToData", posR); //@<<@ } } }
//загрузка из данныx объектов из памяти и создание их на поле ADDED FOR LOOK - DATA 2 public void LoadObjectToReal(string p_nameField) { if (Storage.Instance.IsCorrectData) { Debug.Log("_______________ RETURN LoadGameObjectDataForLook ON CORRECT_______________"); return; } //#TEST string indErr = ""; try { indErr = "1."; //GridData if (_gridData == null || _gridData.FieldsD == null) { Debug.Log(" LoadGameObjectDataForLook_2 GridData IS EMPTY !!!"); return; } indErr = "2."; if (!_gridData.FieldsD.ContainsKey(p_nameField)) { return; } indErr = "3."; List <ModelNPC.ObjectData> listDataObjectInField = ReaderScene.GetObjectsDataFromGrid(p_nameField); indErr = "4."; List <GameObject> listGameObjectReal = new List <GameObject>(); indErr = "5."; if (!_gamesObjectsReal.ContainsKey(p_nameField)) { indErr = "6."; _gamesObjectsReal.Add(p_nameField, listGameObjectReal); } else { indErr = "7."; listGameObjectReal = _gamesObjectsReal[p_nameField]; } //#TEST string saveNextName = ""; indErr = "8."; if (listDataObjectInField.Count == 0) { return; } for (int i = listDataObjectInField.Count - 1; i >= 0; i--) { indErr = "9. ind=" + i; var dataObj = listDataObjectInField[i]; indErr = "10."; //TEST ------- if (saveNextName != dataObj.NameObject) { indErr = "11."; saveNextName = dataObj.NameObject; } else { indErr = "12."; Debug.Log("LoadGameObjectDataForLook ********************** " + saveNextName + " is dublicate !!!!"); foreach (var obj in listDataObjectInField) { Debug.Log("listDataObjectInField: --------------------------------------------- " + obj.ToString()); } //fix @KOSTIL@ Storage.Data.RemoveObjecDataGridByIndex(ref listDataObjectInField, i); continue; } //-------------- indErr = "13."; //TEST ------- if (dataObj.IsReality) { indErr = "13.1"; var realObj = listGameObjectReal.Find(p => p != null && p.name == dataObj.NameObject); indErr = "13.2"; if (realObj != null) { continue; } else { Debug.Log("????????????????? LoadGameObjectDataForLook ****** IsReality DO:" + dataObj + " NOT in Real"); } } //------------------------------------------ TEST DUBLICATE HARD //if (!string.IsNullOrEmpty(dataObj.Id)) //{ // foreach (var item in Storage.Person.GetAllRealPersonsForID(dataObj.Id)) // { // Debug.Log(Storage.EventsUI.ListLogAdd = "#### LoadObjectToReal FIX@@DUBLICATE >> " + item.name + " ME: " + dataObj); // continue; // } //} //------------------- indErr = "14."; dataObj.IsReality = true; indErr = "15. dataObj = " + dataObj.NameObject + " " + dataObj.ToString(); GameObject gobj = CreateGameObjectByData(dataObj); indErr = "16."; listGameObjectReal.Add(gobj); //---------- ACTIVATE if (PoolGameObjects.IsUsePoolObjects) { var movement = gobj.GetComponent <MovementBoss>(); //var movement = newField.GetComponent<MovementNPC>(); if (movement != null) { //Debug.Log("~~~~~~~~~~~~~~~ GenGrid Activate UpdateData " + newField.name); movement.UpdateData("Activate"); //@@@< gobj.SetActive(true); movement.InitNPC(); } else { var movementNPC = gobj.GetComponent <MovementNPC>(); if (movementNPC != null) { movementNPC.UpdateData("Activate"); gobj.SetActive(true); movementNPC.InitNPC(); } } //#fix color // newField.GetComponent<SpriteRenderer>().color = Color.white; //newField.SetActive(true); } //------------ Counter++; } indErr = "17.end."; } catch (Exception x) { Debug.Log("################ ERROR LoadGameObjectDataForLook_2 : " + x.Message + " #" + indErr); } }