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); } } }
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); }
//=============================================================================== //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); }
public static bool IsFlore(this SaveLoadData.TypePrefabs model) { return(Storage.GridData.NamesPrefabFlore.Contains(model.ToString())); }
public static bool IsWood(this SaveLoadData.TypePrefabs model) { return(Storage.GridData.NamesPrefabObjects.Contains(model.ToString())); }
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); } }
// 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)); }
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); }
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); }
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); }
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); }
//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); } }
//Texture2D textureMap = null; public Sprite GetBildSpriteMap(out Texture2D textureMap, int scaleCell = 1, bool isRefresh = false, int offsetMapX = 0, int offsetMapY = 0) { string indErr = "start"; int sizeMap = 25; int sizeDraw = sizeMap * scaleCell; int addSize = scaleCell - 1; offsetMapX *= sizeMap; offsetMapY *= sizeMap; textureMap = new Texture2D(sizeDraw, sizeDraw); //textureMap = new Texture2D(sizeDraw, sizeDraw, UnityEngine.Experimental.Rendering.GraphicsFormat.RGBA_DXT5_SRGB, UnityEngine.Experimental.Rendering.TextureCreationFlags.MipChain); //textureMap = new Texture2D(sizeDraw, sizeDraw, UnityEngine.Experimental.Rendering.GraphicsFormat.RGBA_DXT5_UNorm, UnityEngine.Experimental.Rendering.TextureCreationFlags.MipChain); try { indErr = "1"; for (int y = 0; y < sizeMap; y++) { indErr = "2"; for (int x = 0; x < sizeMap; x++) { indErr = "3"; //isPerson = false; indErr = "5"; int mapX = x + offsetMapX; int mapY = y + offsetMapY; string nameField = Helper.GetNameField(mapX, mapY); indErr = "6"; SaveLoadData.TypePrefabs prefabType = SaveLoadData.TypePrefabs.PrefabField; //-------------- if (nameField == Storage.Instance.SelectFieldPosHero) { DrawTextureTo(scaleCell, indErr, addSize, textureMap, y, x, Storage.Map.textureHero); continue; } //-------------- indErr = "7"; if (!ReaderScene.IsGridDataFieldExist(nameField)) { DrawTextureTo(scaleCell, indErr, addSize, textureMap, y, x, prefabType); continue; } indErr = "9"; foreach (ModelNPC.ObjectData datObjItem in ReaderScene.GetObjectsDataFromGrid(nameField)) { indErr = "10"; //Debug.Log("++++++++ : " + datObjItem + " " + datObjItem.TagObject + " =" + datObjItem.TagObject.IsPerson()); if (datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabUfo.ToString() && datObjItem.TypePrefabName != SaveLoadData.TypePrefabs.PrefabBoss.ToString() && datObjItem.TypePoolPrefab != PoolGameObjects.TypePoolPrefabs.PoolPerson) { indErr = "11"; prefabType = (SaveLoadData.TypePrefabs)Enum.Parse(typeof(SaveLoadData.TypePrefabs), datObjItem.TypePrefabName); if (datObjItem.TypePoolPrefab != PoolGameObjects.TypePoolPrefabs.PoolFloor) { break; } } } DrawTextureTo(scaleCell, indErr, addSize, textureMap, y, x, prefabType); indErr = "14"; } } } catch (Exception x) { Debug.Log("############# GetTextureMap: " + indErr + " " + x.Message); return(null); } //textureMap.Apply(); try { textureMap.Apply(); //textureMap.Apply(false, true); } catch (Exception x2) { Debug.Log("############# GetTextureMap: textureMap.Apply " + indErr + " " + x2.Message); return(null); } Sprite _spriteMap = null; try { //spriteMap = Sprite.Create(textureMap, new Rect(0.0f, 0.0f, textureMap.width, textureMap.height), new Vector2(0.5f, 0.5f), 100.0f); _spriteMap = Sprite.Create(textureMap, new Rect(0.0f, 0.0f, textureMap.width, textureMap.height), new Vector2(0.5f, 0.5f), 100.0f); } catch (Exception x2) { Debug.Log("############# GetTextureMap: Sprite.Create " + indErr + " " + x2.Message); return(null); } return(_spriteMap); }
public bool EqualsInv(SaveLoadData.TypePrefabs typeRes) { return(NameInventopyObject == typeRes.ToString()); //return base.Equals(obj); }
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; } }
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); }
//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); }
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; }
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; }
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); }
//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; } //} }