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);
        }
Beispiel #2
0
        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.");
            }
        }