Exemple #1
0
    protected IEnumerator FTUESwitch()
    {
        AsyncOperation lScene = SceneManager.LoadSceneAsync("TransitionScene", LoadSceneMode.Single);

        while (!lScene.isDone)
        {
            yield return(null);
        }
        _loadedScene = SceneString.MapView;

        UIManager.instance.SwitchFTUE();
        InventoryPlayer.Instance.Clear();
        LinkDatabase.Instance.Clear();
        ControllerInput.instance.ResetDatasTouch();
        InteractablePNJ.PNJs.Clear();
        ResourcesManager.Instance.Clear();
        CameraManager.Instance.Reset();
        PlayerManager.Instance.Clear();
        EarthManager.Instance.DestroyPlanet();
        NotePad.Instance.CleanBillboards();
        NotePad.Instance.GoToMenu(null);

        PARTY_TYPE = EPartyType.NEW;
        StartMainPlanet();
    }
Exemple #2
0
 public void StartMainPlanet()
 {
     Events.Instance.AddListener <OnEndPlanetCreation>(OnEndCreation);
     FtueManager.instance.ForceClear();
     PARTY_TYPE = EPartyType.NEW;
     EarthManager.Instance.playingPlanetName = EarthManager.Instance.planetName;
     PlanetSave.LoadPlayer(EarthManager.Instance.playingPlanetName);
     PlanetSave.LoadCitizens(EarthManager.Instance.playingPlanetName);
     PlanetSave.LoadPNJs(EarthManager.Instance.playingPlanetName);
     EarthManager.Instance.playerPositions = PlanetSave.DeserializePlayerPositions(PlanetSave.BasePlayerPos);
     EarthManager.Instance.CreatePlanet();
 }
Exemple #3
0
 public void OnClickOnStartButton()
 {
     Events.Instance.AddListener <OnEndPlanetCreation>(OnEndCreation);
     FtueManager.instance.Display(false);
     FtueManager.instance.Restart();
     PARTY_TYPE = EPartyType.NEW;
     EarthManager.Instance.playingPlanetName = EarthManager.Instance.ftuePlanetName;
     PlanetSave.LoadPlayer(EarthManager.Instance.playingPlanetName);
     PlanetSave.LoadPNJs(EarthManager.Instance.playingPlanetName);
     EarthManager.Instance.playerPositions = PlanetSave.DeserializePlayerPositions(PlanetSave.BasePlayerPos);
     EarthManager.Instance.CreatePlanet();
 }
Exemple #4
0
    protected IEnumerator LoadMainMenu()
    {
        AsyncOperation lScene = SceneManager.LoadSceneAsync("TransitionScene", LoadSceneMode.Single);

        while (!lScene.isDone)
        {
            yield return(null);
        }
        _loadedScene = SceneString.MapView;
        PARTY_TYPE   = EPartyType.NONE;
        LoadGameParty();
    }
Exemple #5
0
    public void OnClickOnContinueButton()
    {
        PARTY_TYPE = EPartyType.SAVE;
        if (!FtueManager.instance.Finish)
        {
            FtueManager.instance.ForceClear();
        }
        Events.Instance.AddListener <OnEndPlanetCreation>(OnEndCreation);
        InventoryPlayer.Instance.Load();
        List <SavePlayerPosition> players;

        ArrayExtensions.ToList(PlanetSave.GameStateSave.SavedPlayers, out players);
        EarthManager.Instance.playerPositions   = PlanetSave.DeserializePlayerPositions(players);
        EarthManager.Instance.playingPlanetName = EarthManager.Instance.planetName;
        PlanetSave.LoadPlayer(EarthManager.Instance.playingPlanetName);
        PlanetSave.LoadCitizens(EarthManager.Instance.playingPlanetName);
        PlanetSave.LoadPNJs(EarthManager.Instance.playingPlanetName);
        EarthManager.Instance.CreatePlanet();
    }
Exemple #6
0
    public void LoadGameParty()
    {
        bool hasParty = PlanetSave.LoadParty();

        if (hasParty)
        {
            if (PlanetSave.GameStateSave.version == VERSION)
            {
                Events.Instance.Raise(new PartyLoaded(hasParty));
            }
            else
            {
                PlanetSave.DeleteParty();
                PARTY_TYPE = EPartyType.NONE;
                Events.Instance.Raise(new PartyLoaded(false));
            }
        }
        else
        {
            Events.Instance.Raise(new PartyLoaded(hasParty));
        }
    }
        protected void CreateCells(EPartyType partyType)
        {
            foreach (GroundMesh ground in planetLink.allGroundMesh)
            {
                GameObject newGo = Instantiate(_cellPrefab, Vector3.zero, Quaternion.identity, planetLink.transform);
                _cellsObj.Add(newGo);

                Cell newCell = newGo.GetComponent <Cell>();
                newCell.SetID();
                newCell.Init(ground);

                Mesh finalMesh = newCell.gameObject.GetComponent <MeshFilter>().mesh;
                finalMesh.vertices  = ground.smoothVertex;
                finalMesh.triangles = ground.smoothTriangles;
                finalMesh.normals   = ground.smoothNormals;
                finalMesh.uv        = ground.UVs;
                newCell.gameObject.GetComponent <MeshCollider>().sharedMesh = finalMesh;
                finalMesh.RecalculateBounds();

                _cells.Add(newCell);
            }

            planetLink.GenerateNeighborLinks(planetLink.GetMinimalNeighborDistance(), _cells);

            if (partyType == EPartyType.SAVE)
            {
                int  l = _cells.Count;
                Cell cCell;
                for (int i = 0; i < l; i++)
                {
                    cCell = _cells[i];
                    Mesh            finalMesh = cCell.gameObject.GetComponent <MeshFilter>().mesh;
                    List <SaveCell> outCells;
                    ArrayExtensions.ToList(PlanetSave.GameStateSave.SavedCells, out outCells);
                    SaveCell sCell = outCells.Find(c => c.ID == cCell.ID);
                    cCell.Init(sCell);

                    cCell.SetPolution(sCell.poluted);
                    if (sCell.poluted)
                    {
                        PolutionArea.CELLS_USED.Add(cCell);
                    }
                    cCell.SetDeforestation(sCell.deforested);
                    if (sCell.deforested)
                    {
                        DeforestationArea.CELLS_USED.Add(cCell);
                    }

                    UpdateNbCell(cCell.State);

                    finalMesh.vertices  = cCell.GroundMesh.smoothVertex;
                    finalMesh.triangles = cCell.GroundMesh.smoothTriangles;
                    finalMesh.normals   = cCell.GroundMesh.smoothNormals;
                    finalMesh.uv        = cCell.GroundMesh.UVs;

                    cCell.gameObject.GetComponent <MeshCollider>().sharedMesh = finalMesh;
                    finalMesh.RecalculateBounds();
                }
            }
            else if (partyType == EPartyType.NEW)
            {
                if (PlanetSave.LoadCells(playingPlanetName))
                {
                    foreach (Cell cCell in _cells)
                    {
                        Mesh     finalMesh = cCell.gameObject.GetComponent <MeshFilter>().mesh;
                        SaveCell sCell     = PlanetSave.BaseCells.Find(c => c.ID == cCell.ID);
                        cCell.Init(sCell);

                        UpdateNbCell(cCell.State);

                        finalMesh.vertices  = cCell.GroundMesh.smoothVertex;
                        finalMesh.triangles = cCell.GroundMesh.smoothTriangles;
                        finalMesh.normals   = cCell.GroundMesh.smoothNormals;
                        finalMesh.uv        = cCell.GroundMesh.UVs;

                        cCell.gameObject.GetComponent <MeshCollider>().sharedMesh = finalMesh;
                        finalMesh.RecalculateBounds();
                    }
                }
            }
        }