Added simple assistant plugin example (#734)
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage,deb,updater, appimage,deb) (push) Blocked by required conditions
Build and Release / Prepare & create release (push) Blocked by required conditions
Build and Release / Determine run mode (push) Waiting to run
Build and Release / Read metadata (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage,deb,updater, appimage,deb) (push) Blocked by required conditions
Build and Release / Publish release (push) Blocked by required conditions

This commit is contained in:
nilskruthoff authored and GitHub committed 2026-04-15 09:01:31 +02:00
1 parent da62814b2f
commit e5d8ac4a71
13 files changed
+423 -24

No files matched your search

@@ -156,12 +156,17 @@ public sealed class AssistantState
{
if (component is INamedAssistantComponent named)
{
target[named.Name] = new LuaTable
var componentEntry = new LuaTable
{
["Type"] = Enum.GetName(component.Type) ?? string.Empty,
["Value"] = component is IStatefulAssistantComponent ? this.ReadValueForLua(named.Name) : LuaValue.Nil,
["Props"] = this.CreatePropsTable(component),
};
if (component is AssistantDropdown dropdown)
this.AddDropdownDisplay(componentEntry, dropdown, named.Name);
target[named.Name] = componentEntry;
}
if (component.Children.Count > 0)
@@ -218,6 +223,27 @@ public sealed class AssistantState
return table;
}
private void AddDropdownDisplay(LuaTable componentEntry, AssistantDropdown dropdown, string name)
{
if (dropdown.IsMultiselect)
{
if (!this.MultiSelect.TryGetValue(name, out var selectedValues))
return;
componentEntry["Display"] = AssistantLuaConversion.CreateLuaArray(
selectedValues
.OrderBy(static value => value, StringComparer.Ordinal)
.Select(dropdown.ResolveDisplayText));
return;
}
if (!this.SingleSelect.TryGetValue(name, out var selectedValue))
return;
componentEntry["Display"] = dropdown.ResolveDisplayText(selectedValue);
}
private static HashSet<string> ReadStringValues(LuaTable values)
{
var parsedValues = new HashSet<string>(StringComparer.Ordinal);