def __init__(self, manager):
        super(Simulation, self).__init__()
        self.manager = manager
        self.running = True
        self.state = Simulation.init
        self.prevstate = None

        # Set starting system time [milliseconds]
        self.syst = 0.0

        # Benchmark time and timespan [seconds]
        self.bencht = 0.0
        self.benchdt = -1.0

        # Starting simulation time [seconds]
        self.simt = 0.0

        # Simulation timestep [seconds]
        self.simdt = settings.simdt

        # Simulation timestep multiplier: run sim at n x speed
        self.dtmult = 1.0

        # Simulated clock time
        self.deltclock = 0.0
        self.simtclock = self.simt

        # System timestep [milliseconds]
        self.sysdt = int(self.simdt / self.dtmult * 1000)

        # Flag indicating running at fixed rate or fast time
        self.ffmode = False
        self.ffstop = None

        # If available, name of the currently running scenario
        self.scenname = 'Untitled'

        # Simulation objects
        self.navdb = Navdatabase('global')
        self.screenio = ScreenIO(self, manager)
        self.traf = Traffic(self.navdb)
        self.birds = Birds()
        self.cdbirds = Conflict_Detection_Birds(self.traf, self.birds)

        # Additional modules
        self.metric = Metric()
        self.beastfeed = Modesbeast(self.traf)

        # Initialize the stack module once
        stack.init(self, self.traf, self.birds, self.screenio)
    def __init__(self, gui, navdb):
        # simmode
        self.mode   = self.init

        self.simt   = 0.0   # Runtime
        self.tprev  = 0.0
        self.syst0  = 0.0
        self.dt     = 0.0
        self.syst   = 0.0   # system time

        # Directories
        self.datadir = "./data/"
        self.dts = []

        # Fixed dt mode for fast forward
        self.ffmode = False  # Default FF off
        self.fixdt = 0.1     # Default time step
        self.ffstop = -1.    # Indefinitely

        # Simulation objects

        
        # Simulation objects
        self.navdb       = Navdatabase('global')
        self.screenio    = ScreenIO(self, manager)
        self.traf        = Traffic(self.navdb)
        self.birds       = Birds()
        self.cdbirds     = Conflict_Detection_Birds(self.traf, self.birds)        
        self.metric = Metric()        
        
        
        
        
        self.stack = stack.init(self, self.traf, self.birds, self.screenio)

        # Additional modules
        self.beastfeed   = Modesbeast(self.traf)
        self.telnet_in   = StackTelnetServer()

        # Initialize the stack module once
        stack.init(self, self.traf, gui.scr)