コード例 #1
0
ファイル: Building.cs プロジェクト: Biang2016/UnderseaCity
    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);
    }
コード例 #2
0
ファイル: City.cs プロジェクト: Biang2016/UnderseaCity
    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);
    }