private void SetGridPos(GridPosR gridPos_World) { GridPosR.ApplyGridPosToLocalTrans(gridPos_World, transform, CityInventory.GridSize); CityInventory.RefreshConflictAndIsolation(); SetVirtualGridPos(gridPos_World); City.RefreshBuildingCoverMaskMatrix(true); City.RefreshBuildingRangeGridView(LevelManager.Instance.CurrentSelectedBuildingKey); }
public void Init(CityInventory cityInventory, CityConfig cityConfig, UnityAction <Building> onHoverBuilding = null, UnityAction <Building> onHoverEndBuilding = null) { CityInventory = cityInventory; CityConfig = cityConfig; OnHoverBuilding = onHoverBuilding; OnHoverEndBuilding = onHoverEndBuilding; CityInventory.RefreshInventoryGrids(); CityInventory.RefreshConflictAndIsolation(); CityEditAreaIndicator.Init(CityInventory); cityInventoryGirdMatrix = new CityInventoryGrid[cityInventory.Columns, cityInventory.Rows]; while (rockPosSet.Count < 2) { rockPosSet.Add(new GridPos(Random.Range(0, CityInventory.Columns / 2), Random.Range(0, CityInventory.Rows / 2))); } while (rockPosSet.Count < 4) { rockPosSet.Add(new GridPos(Random.Range(CityInventory.Columns / 2, CityInventory.Columns), Random.Range(0, CityInventory.Rows / 2))); } while (rockPosSet.Count < 6) { rockPosSet.Add(new GridPos(Random.Range(0, CityInventory.Columns / 2), Random.Range(CityInventory.Rows / 2, CityInventory.Rows))); } while (rockPosSet.Count < 8) { rockPosSet.Add(new GridPos(Random.Range(CityInventory.Columns / 2, CityInventory.Columns), Random.Range(CityInventory.Rows / 2, CityInventory.Rows))); } while (rockPosSet.Count < 10) { rockPosSet.Add(new GridPos(Random.Range(CityInventory.Columns / 3 * 1, CityInventory.Columns / 3 * 2), Random.Range(CityInventory.Rows / 3 * 1, CityInventory.Rows / 3 * 2))); } PerlinRandomOffset = new Vector2(Random.Range(-99872.3213f, 344.1239123f), Random.Range(-12312.1231f, 39291.1231f)); for (int col = 0; col < cityInventory.Columns; col++) { for (int row = 0; row < cityInventory.Rows; row++) { CityInventoryGrid grid = cityInventory.CreateCityInventoryGrid(CityInventoryGridContainer); grid.transform.localPosition = new Vector3((col - cityInventory.Columns / 2) * cityInventory.GridSize, 0, (row - cityInventory.Rows / 2) * cityInventory.GridSize); TerrainType tt = GenerateTerrainByPerlinNoise(col, row); grid.Init(new GridPos(col, row), CityInventory, tt); cityInventoryGirdMatrix[col, row] = grid; } } CityInventory.OnAddItemSucAction = OnAddBuildingSuc; CityInventory.OnRemoveItemSucAction = OnRemoveBuildingSuc; GridShown = false; RefreshBuildingCoverMaskMatrix(false); }