예제 #1
0
파일: World.cs 프로젝트: fragmer/fCraft
        // World initialization
        // NOTE: Logger, Config, and Color are initialized by now
        public bool Start() {
            Player.Console = new Player( this, "(console)" );

            // start listening
            server = new Server( this );

            if( !server.Start() ) {
                return false;
            }

            serverStart = DateTime.Now;

            // queue up some tasks to run on the scheduler
            AddTask( server.CheckForIncomingConnections, 0 );
            AddTask( UpdateBlocks, config.GetInt( "TickInterval" ) );
            saveMapTaskId = AddTask( SaveMap, config.GetInt( "SaveInterval" ) * 1000 );
            TaskToggle( saveMapTaskId, config.GetInt( "SaveInterval" ) > 0 );
            autoBackupTaskId = AddTask( AutoBackup, config.GetInt( "BackupInterval" ) * 1000 * 60 );
            TaskToggle( autoBackupTaskId, config.GetInt( "BackupInterval" ) > 0 );

            mainThread = new Thread( Update );
            mainThread.Start();
            heartbeat.Start();
            return true;
        }