private Dictionary <string, AssetListItem> CreateAssetLookup(AirportList airportList) { Dictionary <string, AssetListItem> assetList = new Dictionary <string, AssetListItem>(); int i = 0; foreach (var airport in airportList.Airports) { log.InfoFormat("Reading assets for airport {0} of {1}", i + 1, airportList.Airports.Count); var airportXPFullDirectory = DirectoryHelper.GetAirportXPFullDirectory(airport.AirportCode, XP2AFSConverterManager.Settings); var airportZipFilename = airportXPFullDirectory + @"\" + airport.AirportCode + ".zip"; var airportAFSFullDirectory = DirectoryHelper.GetAirportAFSFullDirectory(airport.AirportCode, XP2AFSConverterManager.Settings); if (File.Exists(airportZipFilename)) { // Parse the DST and DAT files var dsfFileLoader = new DSFFileLoader(); var dsfFile = dsfFileLoader.GetDSFFileFromXPZip(airport.AirportCode, airportZipFilename); foreach (var obj in dsfFile.Objects) { if (!assetList.ContainsKey(obj.Reference)) { var item = new AssetListItem(); item.Name = obj.Reference; assetList.Add(obj.Reference, item); } assetList[obj.Reference].Count++; } foreach (var poly in dsfFile.Polygons) { if (!assetList.ContainsKey(poly.Reference)) { var item = new AssetListItem(); item.Name = poly.Reference; assetList.Add(poly.Reference, item); } assetList[poly.Reference].Count++; } } i++; //if(i == 1000) //{ // break; //} } return(assetList); }
protected override void DrawOverride(ref bool isGameViewFocused) { ImGui.BeginChild("asset list sidebar", new Vector2(350, 0), true, 0); ImGui.PushItemWidth(-1); ImGuiUtility.InputText("##search", _searchTextBuffer, out var searchText); UpdateSearch(searchText); ImGui.PopItemWidth(); ImGui.BeginChild("files list", Vector2.Zero, true); foreach (var item in _items) { if (ImGui.Selectable(item.Name, item == _currentItem)) { _currentItem = item; RemoveAndDispose(ref _currentAssetView); _currentAssetView = AddDisposable(item.CreateAssetView()); } ImGuiUtility.DisplayTooltipOnHover(item.Name); } ImGui.EndChild(); ImGui.EndChild(); ImGui.SameLine(); if (_currentItem != null) { ImGui.BeginChild("asset view"); _currentAssetView.Draw(); ImGui.EndChild(); } else { ImGui.Text("Select a previewable asset."); } }