Esempio n. 1
0
        public static void StartKernel(Uid uid)
        {
            _guid = new Guid("01234567-1234-1234-1234-012345678901");
            SetUid(uid);
            KernelHelper.WriteLogo();

            Log.Information("Creating mudlib root file system");
            var path = Program.OverrideMudlibPath ?? KernelHelper.Configuration["mudlibPath"];

            var driverObjectPath = (UPath)KernelHelper.Configuration["driverObject"];
            var autoObjectPath   = (UPath)KernelHelper.Configuration["autoObject"];
            var classObjectPath  = (UPath)KernelHelper.Configuration["classLibrary"];

            try
            {
                kernelFileProvider = new FileProvider(path);
                kernelFileSystem   = kernelFileProvider.GetBaseFileSystem(GetUid());
                var test = kernelFileSystem.EnumeratePaths("/", "*", System.IO.SearchOption.AllDirectories, SearchTarget.Both);
                Log.Information("Root FS created at: {path}", path);
            }
            catch (Exception e)
            {
                Shutdown("Unable to create root file system at " + path, e, LogLevel.Fatal);
            }

            Log.Information("Loading driver objects...");

            // Phase 1 load the Driver Object
            ScriptingEngine.CompileDriverObject(_guid);
            Log.Information($"... {driverObjectPath} loaded.");

            // Phase 2 load the Auto Object
            ScriptingEngine.ConfigureAutoScripts();
            Log.Information("... Finished loading Autos.");

            Log.Information("Attempting to start up server...");
            Server.RunServerAsync().Wait();
        }