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(); }