public void Run() { Logger.Debug("Initialising GameController."); ShowSplashScreen(); _configurationManager.LoadFromFile(PathHelpers.ExecutableRelativeFile("client_config.toml")); _resourceManager.LoadBaseResources(); _resourceManager.LoadLocalResources(); //Setup Cluwne first, as the rest depends on it. SetupCluwne(); CleanupSplashScreen(); //Initialization of private members _messageLogger.Initialize(); _entityNetworkManager.Initialize(); _tileDefinitionManager.InitializeResources(); var prototypeManager = IoCManager.Resolve <IPrototypeManager>(); prototypeManager.LoadDirectory(PathHelpers.ExecutableRelativeFile("Prototypes")); prototypeManager.Resync(); _networkManager.Initialize(); _netGrapher.Initialize(); _userInterfaceManager.Initialize(); _stateManager.RequestStateChange <MainScreen>(); FrameEventArgs _frameEvent; // EventArgs _frameEventArgs; _clock = new Clock(); while (CluwneLib.IsRunning == true) { var lastFrameTime = _clock.ElapsedTime.AsSeconds(); _clock.Restart(); _frameEvent = new FrameEventArgs(lastFrameTime); CluwneLib.ClearCurrentRendertarget(Color.Black); CluwneLib.Screen.DispatchEvents(); CluwneLib.RunIdle(this, _frameEvent); CluwneLib.Screen.Display(); } _networkManager.Disconnect(); CluwneLib.Terminate(); Logger.Info("GameController terminated."); IoCManager.Resolve <IConfigurationManager>().SaveToFile(); }
private async Task InitReferences(VimPortTypeClient client) { var clunkyTree = await LoadReferenceTree(client); if (clunkyTree.Length == 0) { throw new InvalidOperationException(); } string[] path = _config.PoolPath.ToLower().Split(new char[] { '/', '\\' }); string datacenter = (path.Length > 0) ? path[0] : ""; string cluster = (path.Length > 1) ? path[1] : ""; string pool = (path.Length > 2) ? path[2] : ""; var dcContent = (clunkyTree.FindTypeByName("Datacenter", datacenter) ?? clunkyTree.First("Datacenter")); _datacenter = dcContent.obj; _vms = (ManagedObjectReference)dcContent.GetProperty("vmFolder"); var clusterContent = clunkyTree.FindTypeByName("ComputeResource", cluster) ?? clunkyTree.First("ComputeResource"); _res = clusterContent.obj; var poolContent = clunkyTree.FindTypeByName("ResourcePool", pool) ?? clunkyTree.FindTypeByReference( (ManagedObjectReference)clusterContent.GetProperty("resourcePool") ); _pool = poolContent.obj; var netSettings = new VimReferences { vim = client, cluster = _res, props = _props, pool = _pool, vmFolder = _vms, UplinkSwitch = _config.Uplink, ExcludeNetworkMask = _config.ExcludeNetworkMask }; if (_config.IsVCenter) { ManagedObjectReference[] subpools = poolContent.GetProperty("resourcePool") as ManagedObjectReference[]; if (subpools != null && subpools.Length > 0) { _pool = subpools.First(); } if (_config.Uplink.StartsWith("nsx.")) { _netman = new NsxNetworkManager( netSettings, _vmCache, _vlanman, _config.Sddc ); } else { var dvs = clunkyTree.FindTypeByName("DistributedVirtualSwitch", _config.Uplink.ToLower()) ?? clunkyTree.First("DistributedVirtualSwitch"); _dvs = dvs?.obj; _dvsuuid = dvs?.GetProperty("uuid").ToString(); netSettings.dvs = dvs?.obj; netSettings.DvsUuid = _dvsuuid; _netman = new DistributedNetworkManager( netSettings, _vmCache, _vlanman ); } } else { var hostContent = clunkyTree.FindType("HostSystem").FirstOrDefault(); if (hostContent != null) { var hostConfig = hostContent.GetProperty("configManager") as HostConfigManager; netSettings.net = hostConfig?.networkSystem; } _netman = new HostNetworkManager( netSettings, _vmCache, _vlanman ); } await _netman.Initialize(); }