public void ShowDescription(BuildingInformation buildingInfo) { if (buildingInfo == null) { return; } currentInfo = buildingInfo; List <string> materialsInfo = BackpackManager.Instance.GetMaterialsInfo(buildingInfo.Materials).ToList(); string materials = string.Empty; int lineCount = materialsInfo.Count; for (int i = 0; i < materialsInfo.Count; i++) { string endLine = i == lineCount - 1 ? string.Empty : "\n"; materials += materialsInfo[i] + endLine; } UI.nameText.text = buildingInfo.Name; UI.desciptionText.text = string.Format("<b>描述</b>\n{0}\n<b>耗时: </b>{1}\n<b>建造材料:{2}</b>\n{3}", buildingInfo.Description, buildingInfo.BuildTime > 0 ? buildingInfo.BuildTime.ToString("F2") + 's' : "立即", BackpackManager.Instance.IsMaterialsEnough(buildingInfo.Materials) ? "<color=green>(可建造)</color>" : "<color=red>(耗材不足)</color>", materials); UI.descriptionWindow.alpha = 1; UI.descriptionWindow.blocksRaycasts = false; }
public void ShowBuiltList(BuildingInformation buildingInfo) { this.buildings.TryGetValue(buildingInfo, out var buildings); if (buildings == null || buildings.Count < 1) { HideBuiltList(); return; } while (buildings.Count > buildingAgents.Count) { BuildingAgent ba = ObjectPool.Get(UI.buildingCellPrefab, UI.buildingCellsParent).GetComponent <BuildingAgent>(); ba.Hide(); buildingAgents.Add(ba); } while (buildings.Count < buildingAgents.Count) { buildingAgents[buildingAgents.Count - 1].Clear(true); buildingAgents.RemoveAt(buildingAgents.Count - 1); } for (int i = 0; i < buildings.Count; i++) { buildingAgents[i].Init(buildings[i]); buildingAgents[i].Show(); } UI.listWindow.alpha = 1; UI.listWindow.blocksRaycasts = true; }
/// <summary> /// 1. Detects touch on screen /// 2. If User clicks on building go to database /// </summary> private void DetectObjets() { if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); if (touch.phase == TouchPhase.Began) { RaycastHit hitObject; Ray ray = arCamera.ScreenPointToRay(touch.position); if (Physics.Raycast(ray, out hitObject)) { if (hitObject.transform.CompareTag("Building")) { buildingPosition = hitObject.transform; currentBuildingInformation = hitObject.transform.GetComponent <BuildingInformation>(); currentID = currentBuildingInformation.id.ToString(); currentType = currentBuildingInformation.type; StartCoroutine(GetInformation()); } } } } }
public void LoadData(BuildingSystemData buildingSystemData) { buildingsLearned.Clear(); BuildingInformation[] buildingInfos = Resources.LoadAll <BuildingInformation>(""); foreach (string learned in buildingSystemData.learneds) { BuildingInformation find = Array.Find(buildingInfos, x => x.IDStarter == learned); if (find) { buildingsLearned.Add(find); } } foreach (BuildingData buildingData in buildingSystemData.buildingDatas) { BuildingInformation find = Array.Find(buildingInfos, x => x.IDStarter == buildingData.IDStarter); if (find) { Building building = Instantiate(find.Prefab); building.LoadBuild(buildingData.IDStarter, buildingData.IDTail, find.Name, buildingData.leftBuildTime, new Vector3(buildingData.posX, buildingData.posY, buildingData.posZ)); var bf = ObjectPool.Get(UI.buildingFlagPrefab, UIManager.Instance.BuildingFlagParent).GetComponent <BuildingFlag>(); bf.Init(building); } } AStarManager.Instance.UpdateGraphs(); }
public virtual void Awake() { bi = this.gameObject.GetComponent<BuildingInformation>(); nsb = this.gameObject.GetComponent<NormalStateBuild>(); playerInfo = GameObject.Find("GameContent").GetComponent<PlayerInformation>(); adjustTimeBaseOnLevel(); }
public void Clear(bool recycle = false) { nameText.text = string.Empty; MBuildingInfo = null; if (recycle) { ObjectPool.Put(gameObject); } }
public bool StarBuild(BuildingInformation buildingInfo, Vector3 position) { if (!buildingInfo) { return(false); } transform.position = position; MBuildingInfo = buildingInfo; IDStarter = MBuildingInfo.IDStarter; name = MBuildingInfo.Name; leftBuildTime = MBuildingInfo.BuildTime; if (buildingAgent) { buildingAgent.UpdateUI(); } GetIDTail(); if (string.IsNullOrEmpty(IDTail)) { MessageManager.Instance.New($"[{name}]已经达到最大建设数量"); if (buildingAgent) { buildingAgent.Clear(true); } Destroy(gameObject); return(false); } foreach (var b in GetComponentsInChildren <Behaviour>()) { var c2d = b as Collider2D; if (c2d && !c2d.isTrigger) { continue; } components.Add(b, b.enabled); if (b != this) { b.enabled = false; } } foreach (var c in GetComponentsInChildren <Collider>()) { if (!c.isTrigger) { continue; } colliders.Add(c, c.enabled); c.enabled = false; } isUnderBuilding = true; StartCoroutine(Build()); return(true); }
public void FinishPreview() { if (preview) { Destroy(preview.gameObject); } preview = null; currentInfo = null; WindowsManager.Instance.PauseAll(false); IsPreviewing = false; #if UNITY_ANDROID ZetanUtility.SetActive(CancelArea, false); UIManager.Instance.EnableJoyStick(true); #endif }
public bool Learn(BuildingInformation buildingInfo) { if (!buildingInfo) { return(false); } if (HadLearned(buildingInfo)) { ConfirmManager.Instance.New("这种设施已经学会建造。"); return(false); } buildingsLearned.Add(buildingInfo); ConfirmManager.Instance.New(string.Format("学会了 [{0}] 的建造方法!", buildingInfo.Name)); return(true); }
public void CreatPreview(BuildingInformation info) { if (info == null) { return; } HideDescription(); HideBuiltList(); currentInfo = info; preview = Instantiate(currentInfo.Preview); WindowsManager.Instance.PauseAll(true); IsPreviewing = true; #if UNITY_ANDROID ZetanUtility.SetActive(CancelArea, true); UIManager.Instance.EnableJoyStick(false); #endif ShowAndMovePreview(); }
private static MvcHtmlString Details(BuildingInformation building, string url, string name) { var imagePath = ""; if (building.Assets == null || building.Assets.Count == 0) { imagePath = "/images/no_thumbnail.jpg"; //default } else { imagePath = building.Assets.FirstOrDefault().Url; } StringBuilder thumbnail = new StringBuilder(); //thumbnail.Append("<div class='item col-lg-3 col-md-4 col-xs-6 thumb'>"); thumbnail.Append("<div class='item col-xs-4 col-lg-4'>"); thumbnail.Append(string.Concat("<div class='thumbnail'><a href='", url, "'>")); thumbnail.Append(string.Concat("<img class='img-responsive' src='", imagePath, "' alt=''>")); thumbnail.Append("</a>"); thumbnail.Append(string.Concat("<div class='caption'><h4 class='group inner list-group-item-heading building-name'><a href='", url, "'>", name, "</a></h4></br>")); //get the addresses strings if (building.Addresses != null && building.Addresses.Count > 0) { var cnt = 1; foreach (var address in building.Addresses) { if (address != null) { //thumbnail.Append(string.Concat("<label>Location ", cnt, ": ", address.City, " ", address.StreetNumber, "</label></br>")); thumbnail.Append(string.Concat("<p class='group inner list-group-item-text'>")); thumbnail.Append(string.Concat("<div class='building-description'></div>")); thumbnail.Append(string.Concat("<label>Location ", cnt, ": ", address.City, " ", address.Address1, "</label></br>")); cnt++; } } } thumbnail.Append("</div></div></div>"); return(new MvcHtmlString(thumbnail.ToString())); }
// Use this for initialization public virtual void Awake() { playerInfo = GameObject.Find("GameContent").GetComponent<PlayerInformation>(); bi = this.GetComponent<BuildingInformation>(); }
public bool HadLearned(BuildingInformation buildingInfo) { return(buildingsLearned.Contains(buildingInfo)); }
public ActionResult BMBuildingsPage(RenderModel model) { BuildingsViewModel buildingsViewModel = new BuildingsViewModel(model.Content); var buildings = CurrentPage.Children .Where(x => x.DocumentTypeAlias.Equals(Constants.BUILDING_DOCUMENTTYPE_ALIAS, StringComparison.OrdinalIgnoreCase)) .Where(x => x.IsPropertyValid(Constants.ACTION_ITEM_ALIAS)) .Where(x => !Boolean.Parse(x.GetValidPropertyValue(Constants.ACTION_ITEM_ALIAS).ToString())); if (buildings != null) { //get building with correctly set building property foreach (var bldg in buildings.Where(b => b.IsPropertyValid(Constants.BUILDING_PROPERTY_ALIAS))) { try { int buildingId = -1; int.TryParse(bldg.GetValidPropertyValue(Constants.BUILDING_PROPERTY_ALIAS).ToString(), out buildingId); if (buildingId > -1) { //check if actual building object from db exists var building = _buildingService.GetBuildingById(buildingId); if (building != null) { //TODO: or better get from property 'description' in content node var buildingInfo = BuildingInformation.CreateModel( building.Id, building.Name, building.Description ); buildingInfo.Name = building.Name; buildingInfo.Description = building.Description; //TODO: or better get from property in content node IAsset defaultMediaAsset = MediaManager.GetDefaultBuildingAsset(buildingId); if (defaultMediaAsset != null) { buildingInfo.SetDefaultAsset(defaultMediaAsset); } //TODO: wrap this on an address manager var addresses = _buildingService.GetAddresses(building); if (addresses != null && addresses.Count > 0) { buildingInfo.Addresses = addresses; } //================================ buildingsViewModel.Buildings.Add(buildingInfo); } } } catch (Exception ex) { LogHelper.Error <BMBuildingListingController>(ex.Message, ex); continue; } } } return(CurrentTemplate(buildingsViewModel)); }
void Awake() { bi = this.GetComponent<BuildingInformation>(); sc = GameObject.Find("StateController").GetComponent<StateController>(); }
// Use this for initialization void Start() { bi = GetComponent<BuildingInformation>(); stateControl = GameObject.Find("StateController").GetComponent<StateController>(); }
public void Init(BuildingInformation buildingInfo, ScrollRect parentRect = null) { MBuildingInfo = buildingInfo; nameText.text = buildingInfo.Name; this.parentRect = parentRect; }