public static GOFeatureKind MapzenToKind(string kind) { try { GOFeatureKind parsed_enum = (GOFeatureKind)System.Enum.Parse(typeof(GOFeatureKind), kind); return(parsed_enum); } catch { return(GOFeatureKind.baseKind); } }
public void GrowTrees(Mesh mesh, GOLayer layer, GOFeatureKind kind, Vector3 center) { if (kind == GOFeatureKind.park || kind == GOFeatureKind.garden) { var randomRotation = Quaternion.Euler(0, Random.Range(0, 360), 0); int n = Random.Range(0, treePrefab.Length); center.y = treePrefab [n].transform.position.y; GameObject obj = (GameObject)Instantiate(treePrefab[n], center, randomRotation); obj.transform.parent = transform; } }
public void AddBoats(Mesh mesh, GOLayer layer, GOFeatureKind kind, Vector3 center) { bool spawn = Random.value > 0.5f; if (kind != GOFeatureKind.riverbank && kind != GOFeatureKind.water && spawn) { var randomRotation = Quaternion.Euler(0, Random.Range(0, 360), 0); center.y = 2; GameObject obj = (GameObject)Instantiate(boatPrefab, center, randomRotation); obj.transform.parent = transform; } }
public static GOFeatureKind MapboxToKind(string kind) { // Debug.Log (kind); if (kind == null) { return(GOFeatureKind.baseKind); } //This is very empiric. looking forward to a more complete system if (kind.Contains("motorway")) { return(GOFeatureKind.highway); } else if (kind == "service" || kind == "secondary" || kind == "street" || kind == "tertiary" || kind == "transit" || kind == "minor") { return(GOFeatureKind.minor_road); } else if (kind == "rail" || kind.Contains("rail")) { return(GOFeatureKind.rail); } else if (kind == "primary") { return(GOFeatureKind.major_road); } else if (kind == "track") { return(GOFeatureKind.path); } else if (kind == "sand") { return(GOFeatureKind.beach); } else if (kind == "building:part") { return(GOFeatureKind.building_part); } try { GOFeatureKind parsed_enum = (GOFeatureKind)System.Enum.Parse(typeof(GOFeatureKind), kind); return(parsed_enum); } catch { //Debug.Log(kind); return(GOFeatureKind.baseKind); } }
public GOFeature(GOFeature f) { name = f.name; index = f.index; goFeatureType = f.goFeatureType; properties = f.properties; attributes = f.attributes; layer = f.layer; //After editing the feature in tile subclasses. // public string kind; kind = f.kind; renderingOptions = f.renderingOptions; detail = f.detail; sort = f.sort; y = f.y; height = f.height; index = f.index; }
public void GrowTrees(Mesh mesh, GOLayer layer, GOFeatureKind kind, Vector3 center) { //return ; // || kind == GOFeatureKind.recreation_ground | kind == GOFeatureKind.attraction || kind == GOFeatureKind.grass if (kind == GOFeatureKind.parking || kind == GOFeatureKind.park || kind == GOFeatureKind.garden || kind == GOFeatureKind.recreation_ground | kind == GOFeatureKind.attraction) { List <Vector3> treePoslist = new List <Vector3>(); Vector3[] mv = mesh.vertices; if (mv.Length > 0) { for (int i = 0; i < mv.Length - 1; i++) { float d = Vector3.Distance(mv[i], mv[i + 1]); if (d > treeDistance) { for (int j = 0; j < (int)(d / treeDistance); j++) { //Debug.Log(j/(d / treeDistance)); treePoslist.Add(Vector3.Lerp(mv[i], mv[i + 1], j / (d / treeDistance))); } } } for (int i = 0; i < treePoslist.Count; i++) { var item = treePoslist[i]; var randomRotation = Quaternion.Euler(0, Random.Range(0, 360), 0); int n = Random.Range(0, treePrefab.Length); var p = new Vector3(item.x, treePrefab[n].transform.position.y * Global.tilesizeRank, item.z); center.y = treePrefab[n].transform.position.y * Global.tilesizeRank; p = Vector3.Lerp(p, center, Random.Range(0.2f, 0.8f)); GameObject obj = (GameObject)Instantiate(treePrefab[n], p, randomRotation); obj.transform.localScale = new Vector3(Global.tilesizeRank, Global.tilesizeRank, Global.tilesizeRank); obj.transform.parent = transform; obj.name = "tree" + i; } } } }