image loader for imgui and optional nuget icons for plugins in browse tab
All checks were successful
Build / Compute Version (push) Successful in 6s
Build / Build Nuget package (CringeBootstrap.Abstractions) (push) Successful in 4m13s
Build / Build Nuget package (NuGet) (push) Successful in 4m12s
Build / Build Nuget package (CringePlugins) (push) Successful in 4m16s
Build / Build Nuget package (SharedCringe) (push) Successful in 4m11s
Build / Build Launcher (push) Successful in 5m13s

This commit is contained in:
zznty
2025-06-05 00:10:27 +07:00
parent db73daf8a9
commit 05556c7841
9 changed files with 338 additions and 9 deletions

View File

@@ -7,8 +7,10 @@ using CringePlugins.Compatability;
using CringePlugins.Config;
using CringePlugins.Loader;
using CringePlugins.Resolver;
using CringePlugins.Services;
using CringePlugins.Utils;
using ImGuiNET;
using Microsoft.Extensions.DependencyInjection;
using NLog;
using NuGet;
using NuGet.Models;
@@ -40,6 +42,7 @@ internal class PluginListComponent : IRenderComponent
private ImmutableArray<PluginInstance> _plugins;
private (SearchResultEntry entry, NuGetClient client)? _selected;
private (PackageSource source, int index)? _selectedSource;
private readonly IImGuiImageService _imageService = GameServicesExtension.GameServices.GetRequiredService<IImGuiImageService>();
public PluginListComponent(ConfigReference<PackagesConfig> packagesConfig, PackageSourceMapping sourceMapping, string gameFolder,
ImmutableArray<PluginInstance> plugins)
@@ -469,6 +472,13 @@ internal class PluginListComponent : IRenderComponent
{
var selected = _selected.Value.entry;
if (!string.IsNullOrEmpty(selected.IconUrl))
{
var image = _imageService.GetFromUrl(new Uri(selected.IconUrl));
Image(image, new(64, 64));
SameLine();
}
Text(selected.Title ?? selected.Id);
SameLine();
TextColored(*GetStyleColorVec4(ImGuiCol.TextLink), selected.Version.ToString());