Beispiel #1
0
    /// <summary>
    /// Place a single building instatiating from existing.
    /// </summary>
    private void PlaceBuilding(Building.CellPosition pos)
    {
        if (!buildingCollider.GetComponent <BuilderCollider>().isValid)
        {
            return;
        }

        FinalizeBuilding(Instantiate(building, buildingsContainer.transform), pos);
        CleanActionState();
        followPointer = true;
    }
Beispiel #2
0
    /// <summary>
    /// Made some after built setups.
    /// </summary>
    /// <param name="obj"></param>
    private void FinalizeBuilding(GameObject obj, Building.CellPosition pos)
    {
        Building buildingHelper = obj.GetComponent <Building>();

        obj.GetComponent <BoxCollider2D>().enabled = true;
        buildingHelper.SetDefaultView();
        buildingHelper.SetPosition(pos);
        obj.transform.position = new Vector3(
            obj.transform.position.x,
            obj.transform.position.y,
            -0.9999f
            );
    }
Beispiel #3
0
    /// <summary>
    /// Place building from matrix.
    /// </summary>
    private void PlaceMatrixBuildings(Building.CellPosition pos)
    {
        // If building is not valid destroy all prepared instances.
        foreach (GameObject obj in preparedForBuild)
        {
            if (!buildingCollider.GetComponent <BuilderCollider>().isValid)
            {
                Destroy(obj);
            }
            else
            {
                BuilderMatrixCell     matrixPos = buildingsMatrix.Find(x => x.gameObject == obj);
                Building.CellPosition cellPos   = new Building.CellPosition()
                {
                    row = Mathf.Abs(matrixPos.y) + pos.row,
                    col = Mathf.Abs(matrixPos.x) + pos.col
                };

                FinalizeBuilding(obj, cellPos);
            }
        }

        CleanActionState();
    }