private void DeleteBuildingImpl(ushort building, bool showEffect, DemolishCounter.DemolishType DemolishType, bool IsManual)
        {
            BuildingManager buildManager = Singleton <BuildingManager> .instance;

            if (building <= buildManager.m_buildings.m_buffer.Length)
            {
                if (Singleton <BuildingManager> .instance.m_buildings.m_buffer[building].m_flags != Building.Flags.None)
                {
                    BuildingManager instance = Singleton <BuildingManager> .instance;
                    BuildingInfo    info     = instance.m_buildings.m_buffer[(int)building].Info;
                    if (info.m_buildingAI.CheckBulldozing(building, ref instance.m_buildings.m_buffer[(int)building]) == ToolBase.ToolErrors.None)
                    {
                        int buildingRefundAmount = this.GetBuildingRefundAmount(building);
                        if (buildingRefundAmount != 0)
                        {
                            Singleton <EconomyManager> .instance.AddResource(EconomyManager.Resource.RefundAmount, buildingRefundAmount, info.m_class);
                        }
                        Vector3 pos    = instance.m_buildings.m_buffer[(int)building].m_position;
                        float   angle  = instance.m_buildings.m_buffer[(int)building].m_angle;
                        int     length = instance.m_buildings.m_buffer[(int)building].Length;
                        instance.ReleaseBuilding(building);
                        DemolishCounter.AddToCount(DemolishType, IsManual ? 0 : 1);
                        if (info.m_class.m_service > ItemClass.Service.Office)
                        {
                            Singleton <CoverageManager> .instance.CoverageUpdated(info.m_class.m_service, info.m_class.m_subService, info.m_class.m_level);
                        }
                        if (showEffect)
                        {
                            DispatchAutobulldozeEffect(info, pos, angle, length);
                        }
                    }
                }
            }
        }
        private void ToolTipUpdateTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            SimulationManager simManager = Singleton <SimulationManager> .instance;

            if (simManager.SimulationPaused)
            {
                return;
            }
            DemolishCounter.UpdateTooltip();
        }