Ejemplo n.º 1
0
    /*
     * 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);
        }
    }
Ejemplo n.º 2
0
    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]);
    }
Ejemplo n.º 3
0
    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;
        }
    }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
 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();
 }
Ejemplo n.º 6
0
    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);
        }
    }
Ejemplo n.º 7
0
    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);
    }
Ejemplo n.º 8
0
    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);
    }
Ejemplo n.º 9
0
    //@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);
    }
Ejemplo n.º 10
0
    //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);
    }
Ejemplo n.º 11
0
    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);
        }
    }
Ejemplo n.º 12
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);
        }
    }
Ejemplo n.º 13
0
    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); //@<<@
            }
        }
    }
Ejemplo n.º 14
0
    //загрузка из данны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);
        }
    }