protected override void ConstructBuilding() { GameObject building = _constructionBuilding.Building; const TileFlag tileFlagCondition = TileFlag.All; if (TileSystem.Instance.DoTilesFillConditions(building.transform.position, EntityData.TileSize, tileFlagCondition)) { TileSystem.Instance.SetTile(building, EntityData.TileSize); _constructionBuilding.SetConstructionAsFinish(Team.Player); SucessfulBuild = true; } else { SucessfulBuild = false; } LeaveState(); }
private void ConstructBuilding(PreviewBuilding cBuilding) { GameObject building = cBuilding.Building; Vector3 buildingPosition = building.transform.position; TileSystem tileSystem = TileSystem.Instance; // don't make construction unsuccessful because building on the same entiy if (tileSystem.GetTile(buildingPosition) != null && tileSystem.DoTileContainsEntityOfID(buildingPosition, EntityID)) { // destroy, but don't interupt construction cBuilding.Destroy(); return; } const TileFlag condition = TileFlag.Free | TileFlag.Visible; bool tileSetSuccessfully = tileSystem.TrySetTile(building, EntityData.TileSize, condition, EntityID); if (tileSetSuccessfully) { cBuilding.SetConstructionAsFinish(Team.Player); _constructionAchievedBuilding.Add(cBuilding); } }