protected override void Build(Tile[,] tiles)
        {
            Building building = Instantiate(SelectedBuilding, Tile.GetCentrePoint(tiles), SelectedBuilding.transform.rotation, buildingsParent);

            AverageOutTerrain(tiles);

            foreach (Tile tile in tiles)
            {
                tile.SetOccupant(building);
            }

            Instantiate(placeEffectPrefab).Setup(building);

            PlayerResources.Instance.RemoveMoney(SelectedBuildingData.Moneycost);
            for (int i = 0; i < SelectedBuildingData.Resourcecost.Length; i++)
            {
                PlayerResources.Instance.RemoveResource(SelectedBuildingData.Resourcecost[i], SelectedBuildingData.Resourcecostamount[i]);
            }

            building.enabled = true;
            building.Init(SelectedBuildingData, tiles);
            building.AddOutline(outlinePrefab);

            OnBuildingPlaced(building, SelectedBuildingData);

            buildingGhost.Setup(SelectedBuilding, SelectedBuildingData.ID);
        }
        public void BuildAtStart(Building building, BuildingsData data, IntVector2 coordinates)
        {
            Tile[,] tiles = GetNeededTiles(coordinates, building.Size);
            AverageOutTerrain(tiles);

            foreach (Tile tile in tiles)
            {
                tile.SetOccupant(building);
            }

            building.transform.position = Tile.GetCentrePoint(tiles);
            building.enabled            = true;
            building.Init(data, tiles);
            building.AddOutline(outlinePrefab);

            OnBuildingPlaced(building, data);
        }