public void CancelBuilding() { Destroy(previewGO); previewGO = null; previewScript = null; isBuilding = false; }
public Status <BuildingPreview> GenerateBuildingPreview(Building building) { if (building == null) { return(Status.ValidationError <BuildingPreview>(null, "building", "The building cannot be null")); } var preview = new BuildingPreview() { Address1 = building.Address1, Address2 = building.Address2, Bathrooms = building.Bathrooms.Value, Bedrooms = building.Bedrooms.Value, BuildingId = building.BuildingId, City = building.City, IsActive = building.IsActive, IsRemovedByAdmin = building.IsRemovedByAdmin, Latitude = building.Latitude, Longitude = building.Longitude, Price = building.Price, PrimaryPhotoExtension = building.PrimaryPhotoExtension, PrimaryPhotoId = building.PrimaryPhotoId, RibbonId = building.RibbonId, State = building.State, Title = building.Title, Zip = building.Zip }; return(Status.OK <BuildingPreview>(preview)); }
public Status <BuildingPreview> GetUserProperty(string username, long buildingId) { BuildingPreview building = null; using (var context = new RentlerContext()) building = (from b in context.Buildings where b.BuildingId == buildingId && (b.User.Username == username || b.User.Email == username) select new BuildingPreview() { Bathrooms = b.Bathrooms.Value, Bedrooms = b.Bedrooms.Value, BuildingId = b.BuildingId, City = b.City, IsFeatured = false, Price = b.Price, PrimaryPhotoExtension = b.PrimaryPhotoExtension, PrimaryPhotoId = b.PrimaryPhotoId, State = b.State, Title = b.Title, IsRemovedByAdmin = b.IsRemovedByAdmin, Address1 = b.Address1, IsActive = b.IsActive }).SingleOrDefault(); if (building == null) { return(Status.NotFound <BuildingPreview>()); } return(Status.OK(building)); }
private void CreatePreview(GameObject previewPrefab) { Destroy(selectedObject); selectedObject = null; GameObject previewObject = new GameObject("PreviewObject"); GameObject previewMesh = new GameObject("PreviewMesh"); previewMesh.transform.parent = previewObject.transform; previewObject.layer = LayerMask.NameToLayer("BuildingPreview"); previewMesh.layer = LayerMask.NameToLayer("BuildingPreview"); MeshFilter meshFilter = previewMesh.AddComponent <MeshFilter>(); previewRenderer = previewMesh.AddComponent <MeshRenderer>(); meshFilter.mesh = previewPrefab.GetComponentInChildren <MeshFilter>().sharedMesh; previewRenderer.material = previewMaterial; Rigidbody rigidbody = previewMesh.AddComponent <Rigidbody>(); rigidbody.isKinematic = true; previewScript = previewMesh.AddComponent <BuildingPreview>(); BoxCollider previewCollider = previewMesh.AddComponent <BoxCollider>(); previewCollider.size = new Vector3(previewCollider.size.x + 1f, 50, previewCollider.size.z + 1f); previewCollider.isTrigger = true; previewScript.Initialize(terrainMeshFilter.sharedMesh); selectedObject = previewObject; }
private void Start() { buildingPreview = GetComponent <BuildingPreview>(); stoneEfficiency = StoneEfficiency.instance; stoneEfficiency.efficiencyText.transform.position = Camera.main.WorldToScreenPoint(transform.position) + new Vector3(0, 50, 0); stoneEfficiency.efficiencyText.gameObject.SetActive(true); stoneEfficiency.SetCirclesState(true); line = Instantiate(linePrefab, position: transform.position, rotation: Quaternion.identity); }
public void DeterminePreviewColor(GameObject preview, int highestLevel) { BuildingPreview buildingPreview = preview.GetComponent <BuildingPreview>(); if (buildingPreview) { SVGImage svgImage1 = preview.transform.Find("Ground").GetComponent <SVGImage>(); SVGImage svgImage2 = preview.transform.Find("Structure").GetComponent <SVGImage>(); svgImage1.color = buildingPreview.index <= highestLevel ? Color.white : new Color(0, 0, 0, 0.7f); svgImage2.color = buildingPreview.index <= highestLevel ? Color.white : new Color(0, 0, 0, 0.7f); } }
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 }
private void Start() { BuildingPlace buildingPlaceScript = FindObjectOfType <BuildingPlace>(); if (buildingPlaceScript != null) { onCallPreviewBuilding += buildingPlaceScript.AttachPreviewToCursor; } Factory factoryScript = FindObjectOfType <Factory>(); if (factoryScript != null) { onCallCreateUnit += factoryScript.CreateUnit; } }
public void NewBuild(GameObject GO) { if (GO == null) { return; } if (isBuilding == true) { CancelBuilding(); } previewGO = Instantiate(GO, Vector3.zero, Quaternion.identity); previewGO.layer = LayerMask.NameToLayer("BuildingPreview"); previewScript = previewGO.GetComponent <BuildingPreview>(); previewScript.buildingManager = this; isBuilding = 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(); }
public void Update() { if (Input.GetKeyDown(KeyCode.R))//Rotate { if (previewGO != null) { previewGO.transform.Rotate(Vector3.up, 90); } } if (Input.GetKeyDown(KeyCode.X))//Cancel { isBuilding = false; Destroy(previewGO); previewGO = null; previewScript = null; } if (Input.GetKeyDown(KeyCode.H)) //Build foundation { NewBuild(buildingBlocks.Find(block => block.GetComponent <BuildingPreview>().buildingType == BuildingPreview.BuildingType.Foundation)); } if (Input.GetKeyDown(KeyCode.J)) //Build foundation { NewBuild(buildingBlocks.Find(block => block.GetComponent <BuildingPreview>().buildingType == BuildingPreview.BuildingType.Wall)); } if (Input.GetKeyDown(KeyCode.K)) { NewBuild(buildingBlocks.Find(block => block.GetComponent <BuildingPreview>().buildingType == BuildingPreview.BuildingType.Floor)); } if (Input.GetKeyDown(KeyCode.L)) { NewBuild(buildingBlocks.Find(block => block.GetComponent <BuildingPreview>().buildingType == BuildingPreview.BuildingType.Ramp)); } if (Input.GetMouseButtonDown(0))//Rotate { if (previewScript == null) { return; } if (previewScript.GetSnapped()) { StopBuilding(); } else { Debug.Log("Not Snapped, can't place!"); } } if (isBuilding) { if (pauseBuilding) { RaycastHit hit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100f, previewScript.layerMask.value)) { if ((hit.point - previewGO.transform.position).magnitude > stickTolerance) { pauseBuilding = false; } } } else { DoBuildRay(); } } }
public Status<BuildingPreview> GenerateBuildingPreview(Building building) { if (building == null) return Status.ValidationError<BuildingPreview>(null, "building", "The building cannot be null"); var preview = new BuildingPreview() { Address1 = building.Address1, Address2 = building.Address2, Bathrooms = building.Bathrooms.Value, Bedrooms = building.Bedrooms.Value, BuildingId = building.BuildingId, City = building.City, IsActive = building.IsActive, IsRemovedByAdmin = building.IsRemovedByAdmin, Latitude = building.Latitude, Longitude = building.Longitude, Price = building.Price, PrimaryPhotoExtension = building.PrimaryPhotoExtension, PrimaryPhotoId = building.PrimaryPhotoId, RibbonId = building.RibbonId, State = building.State, Title = building.Title, Zip = building.Zip }; return Status.OK<BuildingPreview>(preview); }
private float FlattenTerrain() { BuildingPreview previewScript = selectedObject.GetComponentInChildren <BuildingPreview>(); List <GameObject> currentTerrain = previewScript.GetCurrentTerrains(); List <Mesh> currentTerrainMeshes = new List <Mesh>(); List <Vector3[]> currentTerrainVertices = new List <Vector3[]>(); List <Vector3[]> modifiedTerrainVertices = new List <Vector3[]>(); Bounds previewBounds = previewScript.GetNativeBounds(); Vector2 previewBoundsCenter = new Vector2(previewBounds.center.x, previewBounds.center.z); Vector2 topLeft = new Vector2(previewBounds.center.x - previewBounds.extents.x, previewBounds.center.z + previewBounds.extents.z); Vector2 topRight = new Vector2(previewBounds.center.x + previewBounds.extents.x, previewBounds.center.z + previewBounds.extents.z); Vector2 botLeft = new Vector2(previewBounds.center.x - previewBounds.extents.x, previewBounds.center.z - previewBounds.extents.z); topLeft = HelpfullFunctions.RotatePointAroundPivot(topLeft, previewBoundsCenter, -previewRotation.eulerAngles.y); topRight = HelpfullFunctions.RotatePointAroundPivot(topRight, previewBoundsCenter, -previewRotation.eulerAngles.y); botLeft = HelpfullFunctions.RotatePointAroundPivot(botLeft, previewBoundsCenter, -previewRotation.eulerAngles.y); debugPoint1 = new Vector3(topLeft.x, 0, topLeft.y); debugPoint2 = new Vector3(topRight.x, 0, topRight.y); debugPoint3 = new Vector3(botLeft.x, 0, botLeft.y); float numberOfVertexes = 0; float totalY = 0; float averageY = 0; for (int i = 0; i < currentTerrain.Count; i++) { currentTerrainMeshes.Add(currentTerrain[i].GetComponent <MeshFilter>().sharedMesh); currentTerrainVertices.Add(currentTerrainMeshes[i].vertices); } for (int i = 0; i < currentTerrainMeshes.Count; i++) { Vector3[] terrainVertices = currentTerrainVertices[i]; for (int j = 0; j < terrainVertices.Length; j++) { Vector3 terrainVertex = currentTerrain[i].transform.TransformPoint(terrainVertices[j]); Vector2 vertex2D = new Vector2(terrainVertex.x, terrainVertex.z); if (HelpfullFunctions.IsPointInRectangle(topLeft, topRight, botLeft, vertex2D)) { totalY += terrainVertices[j].y; numberOfVertexes++; } } } if (numberOfVertexes != 0) { averageY = totalY / numberOfVertexes; for (int i = 0; i < currentTerrainMeshes.Count; i++) { Vector3[] terrainVertices = currentTerrainVertices[i]; for (int j = 0; j < terrainVertices.Length; j++) { Vector3 terrainVertex = currentTerrain[i].transform.TransformPoint(terrainVertices[j]); Vector2 vertex2D = new Vector2(terrainVertex.x, terrainVertex.z); if (HelpfullFunctions.IsPointInRectangle(topLeft, topRight, botLeft, vertex2D)) { terrainVertices[j] = new Vector3(terrainVertices[j].x, averageY, terrainVertices[j].z); } } modifiedTerrainVertices.Add(terrainVertices); } for (int i = 0; i < modifiedTerrainVertices.Count; i++) { currentTerrainMeshes[i].vertices = modifiedTerrainVertices[i]; } } return(averageY); }