//Clear location for portal public void ClearLocationAndCreateBiomFloor(int fieldX, int fieldY) { var portal = this; TypesBiomNPC typePortal = portal.TypeBiom; string nameField = string.Empty; List <Vector2Int> findedFileds = new List <Vector2Int>(); Helper.GetSpiralFields(ref findedFileds, fieldX, fieldY, BuildSize); findedFileds.Add(new Vector2Int(fieldX, fieldY)); foreach (Vector2Int fieldNext in findedFileds) { Helper.GetNameField_Cache(ref nameField, fieldNext.x, fieldNext.y); GenericWorldManager.ClearLayerForStructure(nameField, true); SaveLoadData.TypePrefabs portalFloorType = ManagerPortals.PortalBiomFloorsBase[typePortal]; //Create object Biom Floor var objDataSave = BilderGameDataObjects.BildObjectData(portalFloorType); string nameObject = string.Empty; Helper.CreateName_Cache(ref nameObject, portalFloorType.ToString(), nameField, "-1"); objDataSave.Position = Helper.NormalizFieldToWorld(fieldNext); Storage.Data.AddDataObjectInGrid(objDataSave, nameField, "GenericPortal"); objDataSave.SetNameObject(nameObject, true); //%CLUSTER FILL //if (objDataSave.IsFloor()) //{ Vector2Int posField = Helper.GetFieldPositByWorldPosit(objDataSave.Position); int clusterSize = AlienJobsManager.GetClusterSize(posField.x, posField.y, objDataSave.TypePrefab); (objDataSave as ModelNPC.TerraData).ClusterFillSize = clusterSize; (objDataSave as ModelNPC.TerraData).DataCreate = DateTime.Now; //} //... Check on Real bool isZonaReal = Helper.IsValidPiontInZona(objDataSave.Position.x, objDataSave.Position.y); if (!objDataSave.IsReality && isZonaReal) { Storage.GenGrid.LoadObjectToReal(nameField); } } }
private void InitComponents() { Debug.Log("..................InitComponents"); //var camera = MainCamera; if (MainCamera == null) { Debug.Log("MainCamera null"); return; } _GenWorld = UIController.GetComponent <GenericWorldManager>(); if (_GenWorld == null) { Debug.Log("########## InitComponents _GenWorld is Empty"); return; } _scriptData = MainCamera.GetComponent <SaveLoadData>(); if (_scriptData == null) { Debug.Log("Storage.Start : sctiptData not load !!!"); return; } _scriptGrid = MainCamera.GetComponent <GenerateGridFields>(); if (_scriptGrid == null) { Debug.Log("Storage.Start : scriptGrid not load !!!"); return; } m_DispatcherWorldActions = MainCamera.GetComponent <DispatcherWorldActions>(); if (m_DispatcherWorldActions == null) { Debug.Log("Storage.Start : DispatcherWorldActions not load !!!"); return; } //_scriptNPC = MainCamera.GetComponent<CreateNPC>(); //if (_scriptNPC == null) //{ // Debug.Log("Storage.Start scriptNPC not load !!!!!"); // return; //} _scriptMapWorld = MainCamera.GetComponent <MapWorld>(); if (_scriptMapWorld == null) { Debug.Log("Storage.Start scriptMapWorld not load !!!!!"); return; } _screiptHero = HeroObject.GetComponent <CompletePlayerController>(); if (_screiptHero == null) { Debug.Log("Storage.Start scriptHero not load !!!!!"); return; } if (UIController == null) { Debug.Log("Storage.Start UIController not setting !!!!!"); return; } _scriptUIEvents = UIController.GetComponent <UIEvents>(); if (_scriptUIEvents == null) { Debug.Log("Storage.Start scriptUIEvents not load !!!!!"); return; } //Reinit Component _StorageCorrect = DataStorage.GetComponent <StorageCorrect>(); if (_StorageCorrect != null) { //Debug.Log("InitObjectsGrid Destroy(_StorageCorrect) __________________________"); Destroy(_StorageCorrect); } _StorageCorrect = DataStorage.AddComponent <StorageCorrect>(); //Reinit Component _StoragePerson = MainCamera.GetComponent <StoragePerson>(); _StoragePerson.Init(); //_StoragePerson.PersonsDataInit(); _Palette = DataStorage.GetComponent <ManagerPalette>(); if (_Palette == null) { Debug.Log("########## InitComponents _Palette is Empty"); return; } _Palette.LoadSpritePrefabs(); //111111111 _SceneDebuger = UIController.GetComponent <SceneDebuger>(); if (_SceneDebuger == null) { Debug.Log("########## InitComponents _SceneDebuger is Empty"); return; } _PlayerManager = GetComponent <PlayerManager>(); if (_PlayerManager == null) { Debug.Log("########## InitComponents PlayerManager is Empty"); return; } _PlayerManager.Init(); _TilesManager = DataStorage.GetComponent <DataTilesManager>(); if (_TilesManager == null) { Debug.Log("########## InitComponents _TilesManager is Empty"); return; } _PaletteMapController = ContentGridPaletteMap.GetComponent <PaletteMapController>(); if (_PaletteMapController == null) { Debug.Log("########## InitComponents _PaletteMapController is Empty"); return; } _PaletteMapController.Init(); _DrawGeom = GetComponent <DrawGeometry>(); if (_DrawGeom == null) { Debug.Log("########## InitComponents _DrawGeom is Empty"); return; } _SceneLight = GetComponent <SceneLighting>(); if (_SceneLight == null) { Debug.Log("########## InitComponents _SceneLight is Empty"); return; } _PoolObgects = new PoolGameObjects(); _DiskData = GetComponent <DiskData>(); if (_DiskData == null) { Debug.Log("########## InitComponents _DiskData is Empty"); return; } _MoveCamera = UIController.GetComponent <MovementCamera>(); if (_MoveCamera == null) { Debug.Log("########## InitComponents _MoveCamera is Empty"); return; } _Portals = UIController.GetComponent <ManagerPortals>(); if (_Portals == null) { Debug.Log("########## InitComponents _Portals is Empty"); return; } //_PoolObgects //DrawGeometry }
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); }