コード例 #1
0
        //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);
                }
            }
        }
コード例 #2
0
ファイル: Storage.cs プロジェクト: TD6370/TheCell
    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
    }
コード例 #3
0
ファイル: AlienJobsManager.cs プロジェクト: TD6370/TheCell
    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);
    }