public void LoadData(StructureSystemSaveData structureSystemData) { StructuresLearned.Clear(); StructureInformation[] structureInfos = Resources.LoadAll <StructureInformation>("Configuration"); foreach (string learned in structureSystemData.learneds) { StructureInformation find = Array.Find(structureInfos, x => x.ID == learned); if (find) { StructuresLearned.Add(find); } } foreach (StructureSaveData saveData in structureSystemData.structureDatas) { StructureInformation find = Array.Find(structureInfos, x => x.ID == saveData.modelID); if (find) { StructureData data = new StructureData(find, new Vector3(saveData.posX, saveData.posY, saveData.posZ)); data.LoadBuild(find, saveData); if (data.leftBuildTime <= 0) { DoneBuild(data); } else if (saveData.scene == UnityEngine.SceneManagement.SceneManager.GetActiveScene().name) { StructurePreview2D preview = Instantiate(find.Preview); preview.StartBuild(data); MakeFlag(preview); } AddStructure(data); } } AStarManager.Instance.UpdateGraphs(); }
public void CreatPreview(StructureInformation info) { if (!PlayerManager.Instance.CheckIsNormalWithAlert()) { return; } if (info == null) { return; } HideDescription(); HideBuiltList(); currentInfo = info; preview = Instantiate(currentInfo.Preview, StructureManager.Instance.StructureRoot); WindowsManager.HideAll(true); IsPreviewing = true; isDraging = true; PlayerManager.Instance.SetPlayerState(CharacterStates.Busy, CharacterBusyStates.UI); ShowAndMovePreview(); }
private void FinishPreview(bool destroyPreview = false) { if (!IsPreviewing) { return; } if (destroyPreview) { Destroy(preview.gameObject); } preview = null; currentInfo = null; IsPreviewing = false; ZetanUtility.SetActive(buildButton, false); ZetanUtility.SetActive(backButton, false); ZetanUtility.SetActive(joyStick, false); WindowsManager.HideAll(false); if (PlayerManager.Instance.Player.GetState(out var main, out var sub) && main == CharacterStates.Busy && sub == CharacterBusyStates.UI) { PlayerManager.Instance.SetPlayerState(CharacterStates.Normal, CharacterNormalStates.Idle); } CameraMovement2D.Instance.Stop(); }
public void Destroy() { StopAllCoroutines(); structure = null; ObjectPool.Put(gameObject); }
public void Init(StructurePreview2D structure) { this.structure = structure; structure.flag = this; Update(); }