/// <summary>
        /// Creates new ConstructingBuilding from already existing BuildingDef
        /// </summary>
        /// <param name="structureDef">ConstructingBuilding's definition's CompletedBuildingDef</param>
        /// <returns>ConstructingBuildingController</returns>
        public ConstructingBuildingController CreateConstructingBuildingControllerOf(BuildingDef structureDef)
        {
            ConstructingBuildingDef def = new ConstructingBuildingDef(structureDef, (int)structureDef.ConstructionTime)
            {
                BuildingShape = structureDef.BuildingShape,
                ViewValues    = new ViewValues(CONSTRUCTION_IMAGE_SOURCE, structureDef.Width, structureDef.Height)
            };

            return(CreateBUC(def));
        }
        /// <summary>
        /// Creates new ConstructingBuilding from ConstructingBuildingDef
        /// </summary>
        /// <param name="structureDef">ConstructingBuilding's definition</param>
        /// <returns>ConstructingBuildingController</returns>
        public ConstructingBuildingController CreateBUC(ConstructingBuildingDef structureDef)
        {
            ConstructingBuildingController building = new ConstructingBuildingController(structureDef)
            {
                ConstructingBuildingModel =
                {
                    FactionController = faction
                }
            };


            ConstructingBuildingView view = new ConstructingBuildingView(CONSTRUCTION_IMAGE_SOURCE)
            {
                Model = building.ConstructingBuildingModel
            };

            building.ConstructingBuildingView = view;

            return(building);
        }
        private static ConstructingBuildingController CreateNewBUC(ConstructingBuildingDef def,
                                                                   Faction_Controller factionController)
        {
            ConstructingBuildingController building = new ConstructingBuildingController(def)
            {
                ConstructingBuildingModel =
                {
                    FactionController = factionController
                }
            };


            ConstructingBuildingView view = new ConstructingBuildingView(CONSTRUCTION_IMAGE_SOURCE)
            {
                Model = building.ConstructingBuildingModel
            };

            building.ConstructingBuildingView = view;

            return(building);
        }