feat: Controller hotbars with cross layout, separate storage, and sync with game

- Add controller hotbars: 8 cross bars (L2/R2 style), separate from normal hotbars 1-8
- Controller bar slot data stored in config (not game StandardHotbars) so layouts can differ per mode
- Drag-and-drop on controller bars: from game, shift+drag rearrange, release outside to clear
- Independent controller bar keybinds with modifier+trigger combinations (e.g. L2+South)
- Optional 'Sync bar mode with game client': follow Character Config Mouse/Gamepad toggle (PadMode)
- Clone/copy actions: normal hotbars ↔ controller bars
- Restore controller bar layout button; deploy to devPlugins on Release build

Made-with: Cursor
This commit is contained in:
Jorg
2026-02-26 22:18:40 -06:00
parent 369a770162
commit f3e10f27d2
13 changed files with 1706 additions and 21 deletions
+18 -1
View File
@@ -43,7 +43,10 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\repos\KamiToolKit-master\KamiToolKit.csproj" />
<Reference Include="KamiToolKit">
<HintPath>$(ProjectDir)lib\KamiToolKit.dll</HintPath>
<Private>true</Private>
</Reference>
</ItemGroup>
<ItemGroup>
@@ -56,4 +59,18 @@
<PackageReference Include="Colourful" Version="3.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
<!-- Deploy Release build to devPlugins so the game loads it automatically -->
<Target Name="DeployToDevPlugins" AfterTargets="Build" Condition="'$(Configuration)'=='Release'">
<PropertyGroup>
<_HomeDir>$([System.Environment]::GetEnvironmentVariable('HOME'))</_HomeDir>
<_UserProfile>$([System.Environment]::GetEnvironmentVariable('USERPROFILE'))</_UserProfile>
<DevPluginsDir Condition="'$(_HomeDir)' != ''">$(_HomeDir)/.xlcore/devPlugins/HSUI</DevPluginsDir>
<DevPluginsDir Condition="'$(DevPluginsDir)' == '' and '$(_UserProfile)' != ''">$(_UserProfile)/.xlcore/devPlugins/HSUI</DevPluginsDir>
<DevPluginsDir Condition="'$(DevPluginsDir)' == ''">$(UserProfile)/.xlcore/devPlugins/HSUI</DevPluginsDir>
</PropertyGroup>
<MakeDir Directories="$(DevPluginsDir)" Condition="'$(DevPluginsDir)' != '' and !Exists('$(DevPluginsDir)')" />
<Copy SourceFiles="$(OutputPath)HSUI.dll" DestinationFolder="$(DevPluginsDir)" SkipUnchangedFiles="true" Condition="'$(DevPluginsDir)' != '' and Exists('$(DevPluginsDir)')" />
<Message Importance="high" Text="Deployed HSUI.dll to $(DevPluginsDir)" Condition="'$(DevPluginsDir)' != ''" />
</Target>
</Project>