Example #1
0
    private void LoadModelsView()
    {
        if (m_ListViewModels == null)
        {
            m_ListViewModels = new Dictionary <SaveLoadData.TypePrefabs, GameObject>();

            foreach (Transform child in transform)
            {
                GameObject modelView = child.gameObject;
                SaveLoadData.TypePrefabs typeModel = SaveLoadData.TypePrefabs.PrefabField;
                string nameModelView = modelView.name.Replace("ModelView", "");
                try
                {
                    typeModel = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), nameModelView);
                }
                catch (Exception x)
                {
                    Debug.Log("########## Error ModelView " + nameModelView + " " + x.Message);
                    continue;
                }
                m_ListViewModels.Add(typeModel, modelView);
            }
        }
    }
Example #2
0
    public static DataInfoFinder GetDataInfoLocationFromID(int x, int y, int distantion, SaveLoadData.TypePrefabs typeObserver, string id_Observer)
    {
        int            distantionLocalObjects = 50;
        DataInfoFinder finder = new DataInfoFinder();

        //---------------------------- CASH
        if (IsUseCashFinderPriorityNPC)
        {
            var listFindedLocalObjectsID = Storage.ReaderWorld.CollectionInfoID
                                           .Where(p =>
            {
                Vector2 posT     = p.Value.Data.Position;
                int distToTatget = Math.Max(Math.Abs(x - (int)posT.x), Math.Abs(y - (int)posT.y));
                return(distToTatget <= distantionLocalObjects);
            })
                                           .Select(p => p.Key)
                                           .ToList();
        }
        //-----------------------------------

        var listPowers = Storage.ReaderWorld.CollectionInfoID
                         .Where(p => {
            //Vector2 posT = p.Value.Data.Position;
            Vector2 posT     = p.Value.FiledPos;
            int distToTatget = Math.Max(Math.Abs(x - (int)posT.x), Math.Abs(y - (int)posT.y));
            return(distToTatget <= distantion);
        })
                         .Select(p => {
            Vector2 posT             = p.Value.FiledPos;
            DataInfoFinder resFinder = new DataInfoFinder()
            {
                DistantionToTarget = Math.Max(Math.Abs(x - (int)posT.x), Math.Abs(y - (int)posT.y)),
                ResultData         = p.Value.Data,
                PowerTarget        = Storage.Person.GetPriorityPowerByJoin(typeObserver, p.Value.Data.TypePrefab)
            };
            return(resFinder);
        })
                         .ToList();
        string id;
        int    power     = 0;
        int    powerDist = 0;

        foreach (DataInfoFinder objDataPower in listPowers)
        {
            id = Helper.GetID(objDataPower.ResultData.NameObject);
            //string id = objDataPower.ResultData;
            if (id == id_Observer)
            {
                continue;
            }

            power     = objDataPower.PowerTarget;
            powerDist = (distantion - objDataPower.DistantionToTarget) * 3;
            power    += powerDist;

            if (finder.ResultPowerData.ContainsKey(id))
            {
                Debug.Log("######### Error finder.ResultPowerData.ContainsKey(id)");
            }
            else
            {
                finder.ResultPowerData.Add(id, power);
            }
        }

        int    priorityIndex = 0;
        string selId         = string.Empty;

        foreach (var item in finder.ResultPowerData)
        {
            if (priorityIndex < item.Value)
            {
                priorityIndex = item.Value;
                selId         = item.Key;
            }
        }
        if (!string.IsNullOrEmpty(selId))
        {
            if (Storage.ReaderWorld.CollectionInfoID.ContainsKey(selId))
            {
                finder.ResultData = Storage.ReaderWorld.CollectionInfoID[selId].Data;
            }
        }


        return(finder);
    }
Example #3
0
    //===============================================================================
    //public static DataInfoFinder GetDataInfoLocation(Vector2Int fieldPosit, int distantion, PriorityFinder priority, string id_Observer, SaveLoadData.TypePrefabs typeObserver, string id_PrevousTarget)
    //public static DataInfoFinder GetDataInfoLocation(Vector2Int fieldPosit, int distantion, string id_Observer, SaveLoadData.TypePrefabs typeObserver, string id_PrevousTarget, bool isFoor)
    public static DataInfoFinder GetDataInfoLocation(int xPos, int yPos, int distantion, string id_Observer, SaveLoadData.TypePrefabs typeObserver, string id_PrevousTarget, bool isFoor)
    {
        DataInfoFinder finder = new DataInfoFinder();
        Dictionary <string, ModelNPC.ObjectData> locationObjects = new Dictionary <string, ModelNPC.ObjectData>();

        int startX = xPos - distantion;
        int startY = yPos - distantion;
        int endX   = xPos + distantion;
        int endY   = yPos + distantion;

        if (startX < 1)
        {
            startX = 1;
        }
        if (startY < 1)
        {
            startY = 1;
        }
        string id        = "";
        int    power     = 0;
        int    powerDist = 0;

        for (int y = startY; y < endY; y++)
        {
            for (int x = startX; x < endX; x++)
            {
                string field = Helper.GetNameField(x, y);
                List <ModelNPC.ObjectData> objects = GetObjectsDataFromGridTest(field); //TEST
                foreach (ModelNPC.ObjectData objData in objects)
                {
                    id = Helper.GetID(objData.NameObject);
                    if (id == id_Observer || id == id_PrevousTarget)
                    {
                        continue;
                    }

                    //int power = Storage.Person.GetPriorityPower(objData, priority);
                    if (isFoor)
                    {
                        power = Storage.GenWorld.GetPriorityPowerByJoin(typeObserver, objData.TypePrefab);
                    }
                    else
                    {
                        power = Storage.Person.GetPriorityPowerByJoin(typeObserver, objData.TypePrefab);
                    }

                    //~TEST PRIORITY~
                    //powerDist = (distantion - Math.Max(Math.Abs(xPos - x), Math.Abs(yPos - y))) * 3;
                    //power += powerDist;

                    if (!finder.ResultPowerData.ContainsKey(id))
                    {
                        finder.ResultPowerData.Add(id, power);
                        if (!locationObjects.ContainsKey(id))
                        {
                            locationObjects.Add(id, objData);
                        }
                    }
                }
            }
        }

        string        selId     = string.Empty;
        int           top       = 20; // 10; //~TEST PRIORITY~
        List <string> listTopId = new List <string>();

        foreach (var item in finder.ResultPowerData.OrderByDescending(p => p.Value))
        {
            listTopId.Add(item.Key);
            if (listTopId.Count > top) //top
            {
                break;
            }
        }
        if (listTopId.Count() > 0)
        {
            int indRnd = UnityEngine.Random.Range(0, listTopId.Count() - 1);
            selId = listTopId[indRnd];
        }
        //--------------------------
        if (!string.IsNullOrEmpty(selId))
        {
            finder.ResultData = locationObjects[selId];
        }
        return(finder);
    }
Example #4
0
 public static bool IsFlore(this SaveLoadData.TypePrefabs model)
 {
     return(Storage.GridData.NamesPrefabFlore.Contains(model.ToString()));
 }
Example #5
0
 public static bool IsWood(this SaveLoadData.TypePrefabs model)
 {
     return(Storage.GridData.NamesPrefabObjects.Contains(model.ToString()));
 }
Example #6
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);
        }
    }
Example #7
0
    // Use this for initialization
    //void Start () {

    //}

    //// Update is called once per frame
    //void Update () {

    //}

    public static ModelNPC.ObjectData BildObjectData(string prefabTypeStr)
    {
        SaveLoadData.TypePrefabs prefabType = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), prefabTypeStr);
        return(BildObjectData(prefabType));
    }
Example #8
0
 public static ModelNPC.ObjectData FindFromLocationType(SaveLoadData.TypePrefabs typeRequested, Vector3 posRequested, int distantion, bool isFoor)
 {
     GetFieldPositByWorldPosit(ref posFieldInt_FindFromLocation_X, ref posFieldInt_FindFromLocation_Y, posRequested.x, posRequested.y);
     ReaderScene.DataInfoFinder finder = ReaderScene.GetDataInfoLocation(posFieldInt_FindFromLocation_X, posFieldInt_FindFromLocation_Y, distantion, string.Empty, typeRequested, string.Empty, isFoor);
     return(finder.ResultData);
 }
Example #9
0
    public bool CheckStorageResourceForAlien(ModelNPC.PortalData portal, ModelNPC.GameDataAlien alien)
    {
        string strErr = "0";

        ;
        if (portal.Resources == null || portal.Resources.Count == 0)
        {
            return(false); //pessimistic job
        }
        if (!alien.Inventory.IsEmpty)
        {
            return(true); //optimistic job
        }
        DataObjectInventory resNext = null;
        List <AlienJob>     temp_listJobs;

        SaveLoadData.TypePrefabs typeAlien = alien.TypePrefab;
        int limitRes = 0;

        Storage.Person.CollectionAlienJob.TryGetValue(typeAlien, out temp_listJobs);
        List <int> randomIndex;

        //>INV>
        try
        {
            //Randomize resources
            System.Random rnd = new System.Random();
            portal.Resources = portal.Resources.OrderBy(x => rnd.Next()).ToList();

            for (int indRes = portal.Resources.Count - 1; indRes >= 0; indRes--)
            {
                //strErr = "2";
                resNext = portal.Resources[indRes];
                //resNext = storageResources.Dequeue();
                //strErr = "3";
                if (temp_listJobs != null && resNext != null)
                {
                    //strErr = "4";
                    foreach (var itemJob in temp_listJobs)
                    {
                        if (itemJob == null)
                        {
                            Debug.Log(Storage.EventsUI.ListLogAdd = "### CheckStorageResourceForAlien itemJob is null");
                            continue;
                        }
                        //trErr = "5";
                        if (itemJob.ResourceResult.ToString() == resNext.NameInventopyObject)
                        {
                            //strErr = "6";
                            limitRes = itemJob.LimitResourceCount == 0 ? 1 : itemJob.LimitResourceCount;
                            //strErr = "7";
                            alien.AddToInventory(portal, indRes, limitRes);
                            //alien.AddToInventory(portal, resNext, limitRes);
                            //strErr = "8";
                            alien.Job = itemJob;
                            //strErr = "9";
                            alien.CurrentAction = GameActionPersonController.NameActionsPerson.Target.ToString();
                            //strErr = "10";
                            Storage.EventsUI.ListLogAdd = "Storage To Alien >> " + resNext.NameInventopyObject + " >> " + itemJob.TargetResource;
                            return(true);
                        }
                    }
                }
            }
        }catch (System.Exception ex)
        {
            Debug.Log(Storage.EventsUI.ListLogAdd = string.Format("###### CheckStorageResourceForAlien #{1} error: {0}", ex, strErr));
        }
        //alien.Inventory.Clear();
        return(false);
    }
Example #10
0
    public static bool CheckJobAlien(ModelNPC.GameDataAlien p_dataNPC, GameActionPersonController controller = null, bool isCheckDistance = true)
    {
        AlienJob job = p_dataNPC.Job;

        if (job == null)
        {
            return(false);
        }

        ReaderScene.DataObjectInfoID targetInfo = ReaderScene.GetInfoID(p_dataNPC.TargetID);
        if (targetInfo == null)
        {
            return(false);
        }

        if (!targetInfo.TestIsValud())
        {
            p_dataNPC.TargetID = null;
            return(false);
        }

        if (isCheckDistance)
        {
            if (!Helper.DistanceIsFinish(targetInfo.Data.Position, p_dataNPC.Position))
            {
                return(true);
            }
        }

        string fieldTarget          = string.Empty;
        string fieldAlien           = string.Empty;
        bool   isExitTargetResource = false;

        Helper.GetNameFieldByPosit(ref fieldTarget, targetInfo.Data.Position);
        ModelNPC.PortalData      portal            = targetInfo.Data as ModelNPC.PortalData;
        SaveLoadData.TypePrefabs jobResourceTarget = job.TargetResource;
        Helper.GetNameFieldByPosit(ref fieldAlien, p_dataNPC.Position);

        if (p_dataNPC.Inventory == null)
        {
            p_dataNPC.Inventory = DataObjectInventory.EmptyInventory();
            //Debug.Log(Storage.EventsUI.ListLogAdd = "## JOB: dataNPC.Inventory is null");
        }
        else
        {
            isExitTargetResource = job.TargetResource.ToString() == p_dataNPC.Inventory.TypeInventoryObject.ToString();
        }

        // --- TO PORTAL
        if (portal != null)
        {
            if (isExitTargetResource)
            {
                //***** Back to HOME **** (trget is Portal)
                //p_dataNPC.InventoryObject is ModelNPC;
                Storage.PortalsManager.AddResourceFromAlien(portal, p_dataNPC);
            }
            // --- TAKE RESOURCE
            bool checkStorageResource = Storage.PortalsManager.CheckStorageResourceForAlien(portal, p_dataNPC);
            if (!checkStorageResource && isExitTargetResource)
            {
                //End job
                p_dataNPC.Job            = null;
                p_dataNPC.TargetID       = string.Empty;
                p_dataNPC.TargetPosition = Vector3.zero;
            }
            //Continue job
            if (p_dataNPC.Job != null && p_dataNPC.Job.Job != TypesJobs.Bathering)
            {
                return(true);
            }
        }
        // --- TO LOOT && BUILD
        else
        {
            //Test job on target //@JOB@
            if (targetInfo.Data.TypePrefab != jobResourceTarget)
            {
                return(false);
            }

            if (p_dataNPC.CurrentAction != GameActionPersonController.NameActionsPerson.CompletedLoot.ToString() &&
                p_dataNPC.CurrentAction != GameActionPersonController.NameActionsPerson.Work.ToString())
            {
                GameActionPersonController.ExecuteActionNPC(p_dataNPC, GameActionPersonController.NameActionsPerson.Work, controller, true);
            }
            if (p_dataNPC.CurrentAction == GameActionPersonController.NameActionsPerson.CompletedLoot.ToString())
            {
                if (job.Job == TypesJobs.Build)
                {
                    if (p_dataNPC.Inventory == null || p_dataNPC.Inventory.IsEmpty || p_dataNPC.Inventory.TypeInventoryObject.ToString() != job.ResourceResult.ToString())
                    {
                        Debug.Log(Storage.EventsUI.ListLogAdd = "### JOB BUILD: Inventory is Empty >> " + job.Job.ToString() + " " + job.TargetResource + " R:" + job.ResourceResult);
                        //p_dataNPC.Inventory = DataObjectInventory.EmptyInventory();
                        return(false);
                    }
                }
                GameActionPersonController.ExecuteActionNPC(p_dataNPC, GameActionPersonController.NameActionsPerson.Move, controller, true);
                // **** FIND RESOURCE ****
                //---Replace object
                //1. Remove resource
                //Vector3 posTarget = targetInfo.Data.Position;

                bool isTargetTypeTrue = false;
                PoolGameObjects.TypePoolPrefabs typePoolResource = CheckFieldJobValid(ref isTargetTypeTrue, job, targetInfo.Data);
                if (job.Job == TypesJobs.Build)
                {
                    if (typePoolResource == PoolGameObjects.TypePoolPrefabs.PoolFloor)
                    {
                        GenericWorldManager.ClearLayerObject(targetInfo.Data);
                    }
                    //---- TEST
                    //else
                    //    Debug.Log(Storage.EventsUI.ListLogAdd = "TypesJobs.Build .. Not Remove resource: " + job.ResourceResult.ToString() + " >> " + targetInfo.Data.NameObject);
                }
                else
                {
                    GenericWorldManager.ClearLayerObject(targetInfo.Data);
                }

                //2. Create new resource
                if (job.ResourceResult != SaveLoadData.TypePrefabs.PrefabField)
                {
                    CreateNewResource(typePoolResource, job, targetInfo, p_dataNPC);
                }

                bool isZonaReal = Helper.IsValidPiontInZona(targetInfo.Data.Position.x, targetInfo.Data.Position.y);
                if (isZonaReal)
                {
                    Storage.GenGrid.LoadObjectToReal(targetInfo.Field);
                }

                //3. Add resource in Inventory (where not Ground)
                p_dataNPC.Inventory = targetInfo.Data.LootObjectToInventory(p_dataNPC);

                //4. Set target to target location
                //if (job.JobTo == TypesJobTo.ToPortal)
                //{
                //GameActionPersonController.RequestActionNPC(p_dataNPC, GameActionPersonController.NameActionsPerson.Idle, null);
                //GameActionPersonController.RequestActionNPC(p_dataNPC, GameActionPersonController.NameActionsPerson.Target, null);
                //}
            }
            //continue work...
            return(true);
        }
        return(false);
    }
Example #11
0
    public Texture2D GetPrefabTexture(SaveLoadData.TypePrefabs typePredab)
    {
        //switch(typePredab)
        //{
        //    case SaveLoadData.TypePrefabs.PrefabElka:
        //        break;
        //    case SaveLoadData.TypePrefabs.PrefabRock:
        //        break;
        //    case SaveLoadData.TypePrefabs.PrefabVood:
        //        break;
        //    case SaveLoadData.TypePrefabs.PrefabWallRock:
        //        break;
        //    case SaveLoadData.TypePrefabs.PrefabWallWood:
        //        break;
        //}
        string strTypePref = typePredab.ToString();

        //if (Storage.Palette == null || Storage.Palette.TexturesPrefabs == null)
        if (Storage.Palette == null)
        {
            Debug.Log("############# GetPrefabTexture  Palette Or TexturesPrefabs is Empty !!!");
            return(null);
        }

        //Sprite[] _sprites = GetSpritesAtlasMapPrefab();

        if (!Storage.Palette.SpritesMaps.ContainsKey(strTypePref))
        //if (!Storage.Palette.TexturesMaps.ContainsKey(strTypePref))
        {
            //Debug.Log("############# GetPrefabTexture   TexturesPrefabs not found type: " + typePredab.ToString());
            Debug.Log("############# GetPrefabTexture   Palette.SpritesMaps not found type: " + typePredab.ToString());
            return(Storage.Palette.TexturesMaps["PrefabField"]); //fix
        }

        //------- test
        List <string> strFilter = new List <string>()
        {
            "PrefabVood",
            "PrefabElka",
            "PrefabRock",
            "PrefabWallRock",
            "PrefabWallWood",
            "PrefabField",
            "PrefabHero",
        };

        //------------------------------
        //Texture2D textureRes = Storage.Palette.TexturesMaps[strTypePref];
        Texture2D textureRes = Storage.Palette.SpritesMaps[strTypePref].texture;

        if (!strFilter.Contains(strTypePref))
        {
            if (test_textureType != strTypePref)
            {
                test_textureType = strTypePref;
                Debug.Log("---- DRAW ICON >> " + strTypePref);
            }
            //textureRes = Storage.Palette.SpritesMaps[strTypePref].texture;

            //var spriteRes = Storage.Palette.SpriteAtlasMapPrefab.GetSprite(strTypePref + "Map");
            //if (spriteRes == null)
            //    Debug.Log("---- DRAW ICON >> spriteRes = null");
            //else
            //    textureRes = spriteRes.texture;
        }

        //Texture2D textureRes = Storage.GridData.PrefabElka.GetComponent<SpriteRenderer>().sprite.texture;
        return(textureRes);
    }
Example #12
0
    //DrawTextureTo(SizeCellMap, "Restore", SizeCellMap - 1, textureResult, y, x, prefabType);
    public void DrawTextureTo(int scaleCell, string indErr, int addSize, Texture2D texture, int y, int x, SaveLoadData.TypePrefabs prefabType)
    {
        //------------------
        Texture2D texturePrefab = GetPrefabTexture(prefabType);

        //------------------
        //string nameTexture = NamesTexturesMaps[prefabType.ToString()];
        //Texture2D texturePrefab = TexturesMaps[nameTexture];
        //------------------
        //Texture2D texturePrefab = GetSpriteAtlasPrefab(prefabType.ToString()).texture;
        //------------------

        if (texturePrefab == null)
        {
            Debug.Log("###### CreateTextureMap.ManagerPalette: " + indErr + "   prefabType:" + prefabType + " texturePrefab Is NULL ");
            //return;
        }

        int startX1 = x * scaleCell;
        int startY1 = y * scaleCell;

        // Correct .............
        startY1 = texture.height - startY1 - addSize;
        //.................

        if (texturePrefab != null && texture.format.ToString() != texturePrefab.format.ToString())
        {
            //Debug.Log(".......... Start CopyTexture   prefabType:" + prefabType + " : " + startX1 + "x" + startY1 + " Size=" + addSize);
            //Debug.Log(".......... Start CopyTexture   Formats source:" + texture.format.ToString());
            //Debug.Log(".......... Start CopyTexture " + prefabType + "  Formats texturePrefab:" + texturePrefab.format.ToString());
            Debug.Log(".......... CopyTexture Type:" + prefabType + " Formats source:" + texture.format.ToString() + " Formats texturePrefab: " + texturePrefab.format.ToString());
            return;
        }

        try
        {
            Graphics.CopyTexture(texturePrefab, 0, 0, 0, 0, addSize, addSize, texture, 0, 0, (int)startX1, (int)startY1);
        }catch (Exception ex)
        {
            Debug.Log("############## DrawTextureTo " + ex.Message);
        }
    }
Example #13
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);
    }
Example #14
0
 public bool EqualsInv(SaveLoadData.TypePrefabs typeRes)
 {
     return(NameInventopyObject == typeRes.ToString());
     //return base.Equals(obj);
 }
Example #15
0
    public static void IncubationProcess(ModelNPC.PortalData p_portal, bool isCallFromReality = false)
    {
        p_portal.CurrentProcess = TypeResourceProcess.Incubation;
        bool isDreamworker = !p_portal.IsReality;

        if (isDreamworker || isCallFromReality)
        {
            GenericWorldManager.GenObjectWorldMode nodeGen = GenericWorldManager.GenObjectWorldMode.NPC;
            Vector3 posGen = p_portal.Position;

            GetGenericModeNPC.TryGetValue(p_portal.TypeBiom, out nodeGen);
            if (nodeGen.Equals(null))
            {
                Debug.Log("######### GetGenericModeNPC not found = " + p_portal.TypeBiom.ToString());
                return;
            }

            string  fieldName     = string.Empty;
            Vector3 positGen      = new Vector3();
            bool    isParkingFree = p_portal.ChildrenPreparationIncubation();
            if (isParkingFree)
            {
                positGen = p_portal.Position;
            }
            else
            {
                positGen = p_portal.SearchParking(ref fieldName);
            }

            if (positGen == Vector3.zero)
            {
                return;
            }

            if (fieldName == string.Empty)
            {
                Helper.GetNameFieldByPosit(ref fieldName, positGen);
            }

            SaveLoadData.TypePrefabs genNPC = Storage.GenWorld.GenObjectWorld(nodeGen);
            //TEST BILD
            genNPC = SaveLoadData.TypePrefabs.Inspector;

            ModelNPC.ObjectData objDataNPC = Storage.GenWorld.GenericPrefabOnWorld(genNPC, positGen);
            if (objDataNPC != null)
            {
                objDataNPC.PortalId = p_portal.Id;
                //p_portal.ChildrensId.Add(objDataNPC.Id);
                p_portal.AddChild(objDataNPC.Id);
                bool isZonaReal = Helper.IsValidPiontInZona(objDataNPC.Position.x, objDataNPC.Position.y);
                if (!isZonaReal)
                {
                    objDataNPC.IsReality = false;
                }
                if (!objDataNPC.IsReality && isZonaReal)
                {
                    Storage.GenGrid.LoadObjectToReal(fieldName);
                    Storage.EventsUI.ListLogAdd = ">>>>> IncubationProcess >>> LoadObjectToReal...";
                }
            }
            p_portal.CurrentProcess = TypeResourceProcess.None;
        }
    }
Example #16
0
 public static void GenericOnPriorityByType_Cash(ref ModelNPC.ObjectData result, SaveLoadData.TypePrefabs typeRequested, Vector3 posRequested, int distantionFind, Dictionary <SaveLoadData.TypePrefabs, PriorityFinder> p_prioritys, bool isFoor)
 {
     FindFromLocationType_Cache(ref result, typeRequested, posRequested, distantionFind, isFoor);
 }
Example #17
0
    //public static void GetJobJoin(ref string jeyJoin, SaveLoadData.TypePrefabs alienType, AlienJob job)
    //{
    //    jeyJoin = string.Format("{0}_{1}_{2}", alienType, job.TargetResource.ToString(), job.ResourceResult.ToString());
    //}

    public static void GetJobJoin(ref string jeyJoin, SaveLoadData.TypePrefabs alienType, string TargetResource)
    {
        jeyJoin = string.Format("{0}_{1}", alienType, TargetResource);
    }
Example #18
0
 public static void FindFromLocationType_Cache(ref ModelNPC.ObjectData result, SaveLoadData.TypePrefabs typeRequested, Vector3 posRequested, int distantion, bool isFoor)
 {
     GetFieldPositByWorldPosit(ref posFieldInt_FindFromLocation_X, ref posFieldInt_FindFromLocation_Y, posRequested.x, posRequested.y);
     result = ReaderScene.GetDataInfoLocation(posFieldInt_FindFromLocation_X, posFieldInt_FindFromLocation_Y, distantion, string.Empty, typeRequested, string.Empty, isFoor).ResultData;
 }
Example #19
0
    public void FindJobBuildLocation(ref ModelNPC.ObjectData result, ref AlienJob job, ModelNPC.GameDataAlien dataAien, int distantionWay)
    {
        if (!Storage.Person.CollectionAlienJob.ContainsKey(dataAien.TypePrefab))
        {
            return;
        }

        ReaderScene.DataObjectInfoID info;
        ModelNPC.PortalData          portal = null;
        List <string> listId;
        TypesBiomNPC  biomType = Helper.GetBiomByTypeModel(dataAien.TypePrefab);

        SaveLoadData.TypePrefabs floorType = PortalBiomFloorsBase[biomType];

        result = null;
        if (string.IsNullOrEmpty(dataAien.PortalId))
        {
            return;
        }
        info = ReaderScene.GetInfoID(dataAien.PortalId);
        if (info == null)
        {
            return;
        }

        portal = info.Data as ModelNPC.PortalData;
        portal.ConstructionsId.TryGetValue(floorType, out listId);
        if (listId == null)
        {
            return;
        }

        List <AlienJob> jobs          = null;
        Vector2Int      test_fieldPos = Vector2Int.zero;
        Vector2Int      keyField;
        int             x                                = 0;
        int             y                                = 0;
        string          nameField                        = string.Empty;
        string          key                              = string.Empty;
        bool            isFieldJobValid                  = true;
        bool            isValidFieldBuildFar             = true;
        bool            isValidFar                       = true;
        bool            isInventoryContainTargetResource = false;

        temp_excludedFreeFileds.Clear();
        //Get jobs
        Storage.Person.CollectionAlienJob.TryGetValue(dataAien.TypePrefab, out jobs);

        Helper.GetFieldPositByWorldPosit(ref x, ref y, dataAien.Position);
        temp_findedFloorsIdForBuild.Clear();

        //Fill floors portal for building
        System.Random rnd = new System.Random();
        temp_findedFloorsIdForBuild = listId.OrderBy(p => rnd.Next()).ToList();

        List <ModelNPC.TerraData> floorsData = new List <ModelNPC.TerraData>();

        foreach (string nextRndID in temp_findedFloorsIdForBuild)
        {
            info = ReaderScene.GetInfoID(nextRndID);
            if (info == null)
            {
                continue;
            }
            if (!(info.Data is ModelNPC.TerraData))
            {
                continue;
            }
            floorsData.Add(info.Data as ModelNPC.TerraData);
        }
        //Floors portal
        foreach (ModelNPC.TerraData floorData in floorsData.OrderBy(p => p.ClusterFillSize))
        {
            isValidFieldBuildFar = true;
            isFieldJobValid      = true;
            keyField             = Helper.GetFieldPositByWorldPosit(floorData.Position);
            //Select job by target resource
            foreach (AlienJob jobItem in jobs.Where(p => p.TargetResource == floorData.TypePrefab)) //fix all jobs for type Resource
            {
                job = jobItem;
                if (job != null)
                {
                    if (job.Job != TypesJobs.Build)
                    {
                        continue;
                    }

                    // Test field on free
                    PoolGameObjects.TypePoolPrefabs typePoolResult = AlienJobsManager.CheckFieldJobValid(ref isFieldJobValid, job, floorData);
                    //Filter: Build
                    switch (job.Job)
                    {
                    case TypesJobs.Build:
                        isValidFar = false;
                        //Test inventory filled
                        isInventoryContainTargetResource = dataAien.Inventory != null && dataAien.Inventory.EqualsInv(job.ResourceResult);
                        if (!isInventoryContainTargetResource)
                        {
                            isValidFar = false;
                        }
                        else if (typePoolResult == PoolGameObjects.TypePoolPrefabs.PoolFloor)
                        {
                            //test near objects type of me (Cluster)
                            //AlienJobsManager.IsMeCluster(ref isValidFar, keyField.x, keyField.y, job.ResourceResult, job.ClusterSize);
                            job = null;
                            continue;
                        }
                        else
                        {
                            //Build Prefab
                            if (isValidFieldBuildFar)     //Test Free location
                            {
                                //isValidFieldBuildFar = IsFreeLocationPortalConstruction(ref temp_excludedFreeFileds,
                                //    keyField.x, keyField.y, job.BuildingyardSize, dataAien.Inventory.TypePrefabObject, portal); //TypesBiomNPC
                                isValidFieldBuildFar = IsFreeLocationPortalConstruction(ref temp_excludedFreeFileds,
                                                                                        keyField.x, keyField.y, job.BuildingyardSize, job.ResourceResult, portal); //TypesBiomNPC
                            }
                            isValidFar = isValidFieldBuildFar;
                        }
                        if (!isValidFar || !isFieldJobValid)
                        {
                            job = null;
                            continue;
                        }
                        break;
                    }
                    result = floorData;
                    return;
                }
            }
        }

        temp_findedFloorsIdForBuild.Clear();
        dataAien.JobPass = 0;
        job = null;
    }
Example #20
0
    public static ModelNPC.ObjectData BildObjectData(SaveLoadData.TypePrefabs prefabType)
    {
        switch (prefabType)
        {
        case SaveLoadData.TypePrefabs.PrefabRock:
            objGameBild = new ModelNPC.Rock();
            break;

        case SaveLoadData.TypePrefabs.PrefabVood:
            objGameBild = new ModelNPC.Vood();
            break;

        case SaveLoadData.TypePrefabs.PrefabElka:
            objGameBild = new ModelNPC.Elka();
            break;

        case SaveLoadData.TypePrefabs.PrefabWallRock:
            objGameBild = new ModelNPC.WallRock();
            break;

        case SaveLoadData.TypePrefabs.PrefabWallWood:
            objGameBild = new ModelNPC.WallWood();
            break;

        case SaveLoadData.TypePrefabs.PrefabUfo:
            objGameBild = new ModelNPC.GameDataUfo();
            break;

        case SaveLoadData.TypePrefabs.PrefabBoss:
            objGameBild = new ModelNPC.GameDataBoss();
            break;

        case SaveLoadData.TypePrefabs.PrefabField:
            objGameBild = new ModelNPC.TerraData();
            break;

        case SaveLoadData.TypePrefabs.PrefabFloor:
            objGameBild = new ModelNPC.TerraData();
            break;

        case SaveLoadData.TypePrefabs.PrefabPerson:
            objGameBild = new ModelNPC.GameDataAlien();
            break;

        case SaveLoadData.TypePrefabs.PrefabFlore:
            objGameBild = new ModelNPC.ObjectData();
            break;

        case SaveLoadData.TypePrefabs.Inspector:
            objGameBild = new ModelNPC.GameDataAlienInspector();
            break;

        case SaveLoadData.TypePrefabs.Machinetool:
            objGameBild = new ModelNPC.GameDataAlienMachinetool();
            break;

        case  SaveLoadData.TypePrefabs.Mecha:
            objGameBild = new ModelNPC.GameDataAlienMecha();
            break;

        case  SaveLoadData.TypePrefabs.Dendroid:
            objGameBild = new ModelNPC.GameDataAlienDendroid();
            break;

        case SaveLoadData.TypePrefabs.Gary:
            objGameBild = new ModelNPC.GameDataAlienGarry();
            break;

        case SaveLoadData.TypePrefabs.Lollipop:
            objGameBild = new ModelNPC.GameDataAlienLollipop();
            break;

        case SaveLoadData.TypePrefabs.Blastarr:
            objGameBild = new ModelNPC.GameDataAlienBlastarr();
            break;

        case SaveLoadData.TypePrefabs.Hydragon:
            objGameBild = new ModelNPC.GameDataAlienHydragon();
            break;

        case SaveLoadData.TypePrefabs.Pavuk:
            objGameBild = new ModelNPC.GameDataAlienPavuk();
            break;

        case SaveLoadData.TypePrefabs.Skvid:
            objGameBild = new ModelNPC.GameDataAlienSkvid();
            break;

        case SaveLoadData.TypePrefabs.Fantom:
            objGameBild = new ModelNPC.GameDataAlienFantom();
            break;

        case SaveLoadData.TypePrefabs.Mask:
            objGameBild = new ModelNPC.GameDataAlienMask();
            break;

        case SaveLoadData.TypePrefabs.Vhailor:
            objGameBild = new ModelNPC.GameDataAlienVhailor();
            break;

        case SaveLoadData.TypePrefabs.Swamp:
            objGameBild = new ModelNPC.Swamp();
            break;

        case SaveLoadData.TypePrefabs.Chip:
            objGameBild = new ModelNPC.Chip();
            break;

        case SaveLoadData.TypePrefabs.Gecsagon:
            objGameBild = new ModelNPC.Gecsagon();
            break;

        case SaveLoadData.TypePrefabs.Kamish:
            objGameBild = new ModelNPC.Kamish();
            break;

        case SaveLoadData.TypePrefabs.Kishka:
            objGameBild = new ModelNPC.Kishka();
            break;

        case SaveLoadData.TypePrefabs.Nerv:
            objGameBild = new ModelNPC.Nerv();
            break;

        case SaveLoadData.TypePrefabs.Orbits:
            objGameBild = new ModelNPC.Orbits();
            break;

        case SaveLoadData.TypePrefabs.Shampinion:
            objGameBild = new ModelNPC.Shampinion();
            break;

        case SaveLoadData.TypePrefabs.Berry:
            objGameBild = new ModelNPC.Berry();
            break;

        case SaveLoadData.TypePrefabs.Mashrooms:
            objGameBild = new ModelNPC.Mashrooms();
            break;

        case SaveLoadData.TypePrefabs.Weed:
            objGameBild = new ModelNPC.Weed();
            break;

        case SaveLoadData.TypePrefabs.Weedflower:
            objGameBild = new ModelNPC.Weedflower();
            break;

        case SaveLoadData.TypePrefabs.Corals:
            objGameBild = new ModelNPC.Corals();
            break;

        case SaveLoadData.TypePrefabs.Desert:
            objGameBild = new ModelNPC.Desert();
            break;

        case SaveLoadData.TypePrefabs.Diods:
            objGameBild = new ModelNPC.Diods();
            break;

        case SaveLoadData.TypePrefabs.Parket:
            objGameBild = new ModelNPC.Parket();
            break;

        //--------- Wall
        case SaveLoadData.TypePrefabs.Kolba:
            objGameBild = new ModelNPC.Kolba();
            break;

        case SaveLoadData.TypePrefabs.Lantern:
            objGameBild = new ModelNPC.Lantern();
            break;

        case SaveLoadData.TypePrefabs.Bananas:
            objGameBild = new ModelNPC.Bananas();
            break;

        case SaveLoadData.TypePrefabs.Cluben:
            objGameBild = new ModelNPC.Cluben();
            break;

        case SaveLoadData.TypePrefabs.Chpok:
            objGameBild = new ModelNPC.Chpok();
            break;

        case SaveLoadData.TypePrefabs.Pandora:
            objGameBild = new ModelNPC.Pandora();
            break;

        case SaveLoadData.TypePrefabs.Nadmozg:
            objGameBild = new ModelNPC.Nadmozg();
            break;

        case SaveLoadData.TypePrefabs.Triffid:
            objGameBild = new ModelNPC.Triffid();
            break;

        case SaveLoadData.TypePrefabs.Aracul:
            objGameBild = new ModelNPC.Aracul();
            break;

        case SaveLoadData.TypePrefabs.Cloudwood:
            objGameBild = new ModelNPC.Cloudwood();
            break;

        case SaveLoadData.TypePrefabs.BlueBerry:
            objGameBild = new ModelNPC.BlueBerry();
            break;

        case SaveLoadData.TypePrefabs.Sosna:
            objGameBild = new ModelNPC.Sosna();
            break;

        case SaveLoadData.TypePrefabs.Iva:
            objGameBild = new ModelNPC.Iva();
            break;

        case SaveLoadData.TypePrefabs.Klen:
            objGameBild = new ModelNPC.Klen();
            break;

        case SaveLoadData.TypePrefabs.RockBrown:
            objGameBild = new ModelNPC.RockBrown();
            break;

        case SaveLoadData.TypePrefabs.RockValun:
            objGameBild = new ModelNPC.RockValun();
            break;

        case SaveLoadData.TypePrefabs.RockDark:
            objGameBild = new ModelNPC.RockDark();
            break;

        case SaveLoadData.TypePrefabs.Grass:
            objGameBild = new ModelNPC.Grass();
            break;

        case SaveLoadData.TypePrefabs.GrassMedium:
            objGameBild = new ModelNPC.GrassMedium();
            break;

        case SaveLoadData.TypePrefabs.GrassSmall:
            objGameBild = new ModelNPC.GrassSmall();
            break;

        case SaveLoadData.TypePrefabs.Ground:
            objGameBild = new ModelNPC.Ground();
            break;

        case SaveLoadData.TypePrefabs.Ground02:
            objGameBild = new ModelNPC.Ground02();
            break;

        case SaveLoadData.TypePrefabs.Ground03:
            objGameBild = new ModelNPC.Ground03();
            break;

        case SaveLoadData.TypePrefabs.Ground04:
            objGameBild = new ModelNPC.Ground04();
            break;

        case SaveLoadData.TypePrefabs.Ground05:
            objGameBild = new ModelNPC.Ground05();
            break;

        case SaveLoadData.TypePrefabs.Tussock:
            objGameBild = new ModelNPC.Tussock();
            break;

        case SaveLoadData.TypePrefabs.Osoka:
            objGameBild = new ModelNPC.Osoka();
            break;

        case SaveLoadData.TypePrefabs.Iris:
            objGameBild = new ModelNPC.Iris();
            break;

        case SaveLoadData.TypePrefabs.Ej:
            objGameBild = new ModelNPC.GameDataAlienEj();
            break;


        case SaveLoadData.TypePrefabs.PortalBlue:
            objGameBild = new ModelNPC.PortalBlue();
            break;

        case SaveLoadData.TypePrefabs.PortalGreen:
            objGameBild = new ModelNPC.PortalGreen();
            break;

        case SaveLoadData.TypePrefabs.PortalRed:
            objGameBild = new ModelNPC.PortalRed();
            break;

        case SaveLoadData.TypePrefabs.PortalViolet:
            objGameBild = new ModelNPC.PortalViolet();
            break;

        default:
            objGameBild = new ModelNPC.ObjectData();
            break;
        }

        //objGameBild.Id = Guid.NewGuid().ToString();
        return(objGameBild);
    }
Example #21
0
    //Draw Icon on Cell Map
    private void DrawIconCell(string nameField)
    {
        SaveLoadData.TypePrefabs        prefabType      = SaveLoadData.TypePrefabs.PrefabField;
        List <SaveLoadData.TypePrefabs> fieldListPrefbs = new List <SaveLoadData.TypePrefabs>();
        List <Texture2D> listPersonsMapTexture          = new List <Texture2D>();


        foreach (ModelNPC.ObjectData datObjItem in ReaderScene.GetObjectsDataFromGridTest(nameField))
        {
            if (datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabUfo.ToString() &&
                datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabBoss.ToString() &&
                datObjItem.TypePoolPrefab != PoolGameObjects.TypePoolPrefabs.PoolPerson)
            {
                prefabType = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), datObjItem.TypePrefabName);
                break;
            }
            //else
            //{
            //    ModelNPC.GameDataBoss bossObj = datObjItem as ModelNPC.GameDataBoss;
            //    if (bossObj != null)
            //    {
            //        prefabType = SaveLoadData.TypePrefabs.PrefabBoss;

            //        fieldListPrefbs.Add(prefabType);

            //        ////+++DRAW PERSON ---------------------------------
            //        Texture2D personMapTexture = TypeBoss.Instance.GetTextureMapForIndexLevel(bossObj.Level);
            //        if (personMapTexture == null)
            //        {
            //            Debug.Log("####### ShowSelectorCell Textute is Empty  TypeBoss.Instance.GetNameTextureMapForIndexLevel(" + bossObj.Level + ") ");
            //            break;
            //        }
            //        listPersonsMapTexture.Add(personMapTexture);
            //        //-----------------------------------------------------
            //    }
            //}
            //fieldListPrefbs.Add(prefabType);
        }


        //bool _isPerson = false;

        //for (int indMap2D = 0; indMap2D < listPersonsMapTexture.Count; indMap2D++)
        //{
        //    Texture2D texturePerson = listPersonsMapTexture[indMap2D];
        //    if (texturePerson == null)
        //    {
        //        Debug.Log("####### ShowSelectorCell Textute is Empty    listPersonsMapTexture[" + indMap2D + "] ");
        //        break;
        //    }

        //    // Draw Texture On Map
        //    //Storage.Map.DrawTextureTo(scaleCell, indErr, addSize, texture, y, x, texturePerson);

        //    int cellX = (int)SelectPointField.x;
        //    int cellY = (int)SelectPointField.y;
        //    Storage.Map.DrawMapCell(cellX, cellY, texturePerson);

        //    Sprite spriteCell = Sprite.Create(texturePerson, new Rect(0.0f, 0.0f, texturePerson.width, texturePerson.height), new Vector2(0.5f, 0.5f), 100.0f);
        //    MapIcon.GetComponent<SpriteRenderer>().sprite = spriteCell;
        //    _isPerson = true;
        //    //MapCellFrame.GetComponent<SpriteRenderer>().sprite.texture = texturePerson;
        //    break;
        //}

        //if (!_isPerson)
        //{
        Texture2D texturePrefab = Storage.Map.GetPrefabTexture(prefabType);

        if (texturePrefab == null)
        {
            Debug.Log("###### ShowSelectorCell  prefabType:" + prefabType + " texturePrefab Is NULL ");
            //continue;
        }
        else
        {
            Sprite spriteCell = Sprite.Create(texturePrefab, new Rect(0.0f, 0.0f, texturePrefab.width, texturePrefab.height), new Vector2(0.5f, 0.5f), 100.0f);
            MapIcon.GetComponent <SpriteRenderer>().sprite = spriteCell;
        }

        //}
    }