public override void OnSelected(ProvinceBean province, CityBean city, DistrictBean district) { OnSelectedEvent?.Invoke(this, new CityItemClickSelectedEventArgs() { Province = province, City = city, District = district }); }
public void LoadData() { Debug.Log("Load CityData"); GameObject cityRoot = new GameObject("Citys"); cityRoot.transform.position = new Vector3(0, 0, 0); // 1.城市 for (int i = 0; i < CITYS.Length;) { CityBean city = new CityBean(); city.name = CITYS[i++]; city.coordinate.x = int.Parse(CITYS[i++]) + 1;// 注意城池需要偏移 city.coordinate.y = int.Parse(CITYS[i++]) + 2; mCitys.Add(city); } // 1-1 创建城市模型 foreach (CityBean cityBean in mCitys) { GameObject o = GameObject.Instantiate(Resources.Load(CITY_MODEL)) as GameObject; o.transform.SetParent(cityRoot.transform); o.transform.localPosition = MapManager.GetInstance().CorrdinateToTerrainPosition(cityBean.coordinate); o.GetComponentInChildren <TextMesh>().text = cityBean.name; // cityComponent City cityComponent = o.AddComponent <City>(); cityComponent.SetCityBean(cityBean); cityBean.city = cityComponent; mAllCitys.Add(cityBean.name, cityComponent); // 修改地形数据 List <Coordinates> neighbours = MapManager.GetInstance().GetNeighbours(cityBean.coordinate); neighbours.Add(cityBean.coordinate); foreach (Coordinates coordinate in neighbours) { MapManager.GetInstance().AddTerrainType(coordinate, TerrainType.TerrainType_Dushi); mAllCityCoordinates.Add(coordinate, cityComponent); } } // 2.关口 for (int i = 0; i < PASSES.Length;) { CityBean city = new CityBean(); city.name = PASSES[i++]; city.coordinate.x = int.Parse(PASSES[i++]); city.coordinate.y = int.Parse(PASSES[i++]); city.direction = int.Parse(PASSES[i++]); mPasses.Add(city); } // 2-1 创建关口模型 foreach (CityBean cityBean in mPasses) { GameObject cityGameObject = GameObject.Instantiate(Resources.Load(PASS_MODEL)) as GameObject; cityGameObject.transform.SetParent(cityRoot.transform); cityGameObject.transform.localPosition = MapManager.GetInstance().CorrdinateToTerrainPosition(cityBean.coordinate); GameObject model = cityGameObject.transform.Find("Model").gameObject; model.transform.Rotate(new Vector3(0, 0, cityBean.direction), Space.Self); cityGameObject.GetComponentInChildren <TextMesh>().text = cityBean.name; // cityComponent City cityComponent = cityGameObject.AddComponent <City>(); cityComponent.SetCityBean(cityBean); cityBean.city = cityComponent; mAllCitys.Add(cityBean.name, cityComponent); // 2-2 修改地形数据 // 2-2-1.确认关口地形 MapManager.GetInstance().AddTerrainType(cityBean.coordinate, TerrainType.TerrainType_Guansuo); mAllCityCoordinates.Add(cityBean.coordinate, cityComponent); // 2-2-2.确认无效地形 if (cityBean.direction == 0) { List <Coordinates> neighbours = MapManager.GetInstance().GetNeighbours(cityBean.coordinate); foreach (Coordinates coordinate in neighbours) { // 上下两个不要 if (coordinate.x != cityBean.coordinate.x) { MapManager.GetInstance().AddTerrainType(coordinate, TerrainType.TerrainType_Guansuo_Invalid); mAllCityCoordinates.Add(coordinate, cityComponent); } } } else { List <Coordinates> neighbours = MapManager.GetInstance().GetNeighbours(cityBean.coordinate); foreach (Coordinates coordinate in neighbours) { // 只要上下两个 if (coordinate.x == cityBean.coordinate.x) { MapManager.GetInstance().AddTerrainType(coordinate, TerrainType.TerrainType_Guansuo_Invalid); mAllCityCoordinates.Add(coordinate, cityComponent); } } } } // 3.港口 for (int i = 0; i < PORTS.Length;) { CityBean city = new CityBean(); city.name = PORTS[i++]; city.coordinate.x = int.Parse(PORTS[i++]); city.coordinate.y = int.Parse(PORTS[i++]); //city.direction = int.Parse(PASSES[i++]); mPorts.Add(city); } // 3-1 创建港口模型 foreach (CityBean cityBean in mPorts) { GameObject o = GameObject.Instantiate(Resources.Load(PORT_MODEL)) as GameObject; o.transform.SetParent(cityRoot.transform); o.transform.localPosition = MapManager.GetInstance().CorrdinateToTerrainPosition(cityBean.coordinate); o.GetComponentInChildren <TextMesh>().text = cityBean.name; // cityComponent City cityComponent = o.AddComponent <City>(); cityComponent.SetCityBean(cityBean); cityBean.city = cityComponent; mAllCitys.Add(cityBean.name, cityComponent); // 3-2 修改地形数据 MapManager.GetInstance().AddTerrainType(cityBean.coordinate, TerrainType.TerrainType_Gang); mAllCityCoordinates.Add(cityBean.coordinate, cityComponent); } }
public void SetCityBean(CityBean cityBean) { mCityBean = cityBean; }