import collections
import gc
import math
import random
import weakref
from protocolbuffers import FileSerialization_pb2 as serialization
from protocolbuffers.Consts_pb2 import MGR_OBJECT, MGR_SITUATION, MGR_PARTY, MGR_SOCIAL_GROUP, MGR_TRAVEL_GROUP
from animation import get_throwaway_animation_context
from animation.animation_drift_monitor import animation_drift_monitor_on_zone_shutdown
from build_buy import get_object_in_household_inventory
from careers.career_service import CareerService
from clock import ClockSpeedMode
from crafting.photography_service import PhotographyService
from date_and_time import DateAndTime, TimeSpan, MILLISECONDS_PER_SECOND
from distributor.rollback import ProtocolBufferRollback
from event_testing import test_events
from interactions.constraints import create_constraint_set, Constraint
from objects.object_enums import ResetReason
from sims.rebate_manager import RebateCategoryEnum
from sims.royalty_tracker import RoyaltyAlarmManager
from sims4 import protocol_buffer_utils, reload
from sims4.callback_utils import CallableList, CallableListPreventingRecursion
from sims4.tuning.tunable import TunableEnumWithFilter
from situations.npc_hosted_situations import NPCHostedSituationService
from travel_group.travel_group_manager import TravelGroupManager
from world import region, street
from world.lot import Lot
from world.lot_level import LotLevel
from world.spawn_point import SpawnPointOption, SpawnPoint
from world.spawn_point_enums import SpawnPointRequestReason
from world.world_spawn_point import WorldSpawnPoint
import adaptive_clock_speed
import alarms
import areaserver
import caches
import camera
import clock
import distributor.system
import game_services
import gsi_handlers.routing_handlers
import indexed_manager
import interactions.constraints
import interactions.utils
import persistence_module
import placement
import routing
import services
import sims4.log
import sims4.random
import tag
import telemetry_helper
import zone_types
with sims4.reload.protected(globals()):
    gc_count_log = None
TELEMETRY_GROUP_GCSTATS = 'GCST'
TELEMETRY_HOOK_ZONESHUTDOWN = 'ZNSH'
TELEMETRY_GCCOUNT = 'gcct'
TELEMETRY_ZONETIME = 'ztim'
writer = sims4.telemetry.TelemetryWriter(TELEMETRY_GROUP_GCSTATS)
logger = sims4.log.Logger('Zone')
TickMetric = collections.namedtuple('TickMetric', ['absolute_ticks', 'sim_now', 'clock_speed', 'clock_speed_multiplier', 'game_time', 'multiplier_type'])

def set_debug_lag(duration):
    pass

