Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
739861c
update to net10
Minmoose Nov 18, 2025
2302bbf
Merge branch 'main' into api14
Minmoose Dec 5, 2025
a2937d8
move build to Net10
Minmoose Dec 5, 2025
8ad9cc7
Update namespaces for API14
Minmoose Dec 5, 2025
4792f9c
run code cleanup
Minmoose Dec 5, 2025
f91bcb7
Ha hah AHAH Hah aHA
Minmoose Dec 5, 2025
dbe2d3a
More workflow stuff
Minmoose Dec 5, 2025
b904c15
forgot one
Minmoose Dec 5, 2025
a3a6e4f
Merge branch 'main' into api14
Minmoose Dec 15, 2025
1e8e3c6
Merge branch 'main' into api14
Minmoose Dec 16, 2025
0bc6bfb
IPC v3 (#202)
Minmoose Dec 16, 2025
b9477a0
Update `finalizeSkeletonsHook` & make it a bit more resilient
Minmoose Dec 16, 2025
d757eb3
update to .slnx
Minmoose Dec 5, 2025
21e725f
Add `Brio.API` to Brio.slnx
Minmoose Dec 5, 2025
37e4b15
Update MCDF calls and add `IsValidGPoseSession`
Minmoose Dec 16, 2025
5cd0e62
add ActorDespawned & ActorSpawned
Minmoose Dec 16, 2025
3272489
Merge pull request #205 from Etheirys/ipc-v3
Minmoose Dec 17, 2025
a310523
Update to SDK 14
Minmoose Dec 17, 2025
e47fad2
Move workflows to snlx
Minmoose Dec 17, 2025
a07e649
For real this time
Minmoose Dec 17, 2025
e33ccd4
How about we just try to update this whole thing now also submodules
Minmoose Dec 17, 2025
94e04b6
update codeql to v4 as recommended by GitHub
Minmoose Dec 17, 2025
95920ea
the things builds and "works"
Minmoose Dec 18, 2025
a0efa6c
Update Brio API
Minmoose Dec 18, 2025
ea4011d
Fix FestivalService
Minmoose Dec 18, 2025
1cd4fd4
Update manifest to api14
Minmoose Dec 18, 2025
de9b183
move back to codeql v3
Minmoose Dec 18, 2025
fa33d0d
Update MakeTypes
Minmoose Dec 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,26 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: true

- name: Install .NET
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x

- name: Download Dalamud
run: |
Invoke-WebRequest -Uri https://goatcorp.github.io/dalamud-distrib/stg/latest.zip -OutFile latest.zip
Expand-Archive -Force latest.zip "$env:AppData\XIVLauncher\addon\Hooks\dev"

- name: Restore Dependencies
run: dotnet restore Brio.sln
run: dotnet restore Brio.slnx

- name: Build Brio
run: dotnet build --no-restore Brio.sln /p:Configuration=Release /p:DebugType=None /p:DebugSymbols=false /p:Version=0.0.0.1
run: dotnet build --no-restore Brio.slnx /p:Configuration=Release /p:DebugType=None /p:DebugSymbols=false /p:Version=0.0.0.1

- name: Zip Release
uses: TheDoctor0/[email protected]
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/build-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v6
with:
fetch-depth: 0

submodules: true

- name: Install .NET
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x

Expand All @@ -33,10 +34,10 @@ jobs:
Expand-Archive -Force latest.zip "$env:AppData\XIVLauncher\addon\Hooks\dev"

- name: Restore Dependencies
run: dotnet restore Brio.sln
run: dotnet restore Brio.slnx

- name: Build Brio
run: dotnet build --no-restore Brio.sln /p:Configuration=Release /p:DebugType=None /p:DebugSymbols=false /p:Version=0.0.0.1
run: dotnet build --no-restore Brio.slnx /p:Configuration=Release /p:DebugType=None /p:DebugSymbols=false /p:Version=0.0.0.1

- name: Zip Release
uses: TheDoctor0/[email protected]
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: recursive

Expand Down Expand Up @@ -91,8 +91,8 @@ jobs:
run: |
Invoke-WebRequest -Uri https://goatcorp.github.io/dalamud-distrib/stg/latest.zip -OutFile latest.zip
Expand-Archive -Force latest.zip "$env:AppData\XIVLauncher\addon\Hooks\dev"
dotnet restore Brio.sln
dotnet build --no-restore Brio.sln /p:Configuration=Release /p:Version=0.0.0.1
dotnet restore Brio.slnx
dotnet build --no-restore Brio.slnx /p:Configuration=Release /p:Version=0.0.0.1

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
Expand Down
13 changes: 7 additions & 6 deletions .github/workflows/release-brio-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,26 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v6
with:
fetch-depth: 0

submodules: true

- name: Install .NET
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x

- name: Download Dalamud
run: |
Invoke-WebRequest -Uri https://goatcorp.github.io/dalamud-distrib/stg/latest.zip -OutFile latest.zip
Expand-Archive -Force latest.zip "$env:AppData\XIVLauncher\addon\Hooks\dev"

- name: Restore Dependencies
run: dotnet restore Brio.sln
run: dotnet restore Brio.slnx

- name: Build Brio
run: dotnet build Brio.sln --no-restore /p:Configuration=Release /p:Version=${{ github.event.inputs.version-testing }}
run: dotnet build Brio.slnx --no-restore /p:Configuration=Release /p:Version=${{ github.event.inputs.version-testing }}

- name: Zip Release
uses: TheDoctor0/[email protected]
Expand Down
13 changes: 7 additions & 6 deletions .github/workflows/release-brio.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,26 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v6
with:
fetch-depth: 0

submodules: true

- name: Install .NET
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x

- name: Download Dalamud
run: |
Invoke-WebRequest -Uri https://goatcorp.github.io/dalamud-distrib/stg/latest.zip -OutFile latest.zip
Expand-Archive -Force latest.zip "$env:AppData\XIVLauncher\addon\Hooks\dev"

- name: Restore Dependencies
run: dotnet restore Brio.sln
run: dotnet restore Brio.slnx

- name: Build Brio
run: dotnet build Brio.sln --no-restore /p:Configuration=Release /p:Version=${{ github.event.inputs.version }}
run: dotnet build Brio.slnx --no-restore /p:Configuration=Release /p:Version=${{ github.event.inputs.version }}

- name: Zip Release
uses: TheDoctor0/[email protected]
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "Libs/Brio API"]
path = Libs/Brio API
url = https://github.com/Etheirys/Brio.API.git
25 changes: 0 additions & 25 deletions Brio.sln

This file was deleted.

18 changes: 12 additions & 6 deletions Brio/Brio.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@
using Brio.Game.World;
using Brio.Input;
using Brio.IPC;
using Brio.IPC.API;
using Brio.Library;
using Brio.Library.Sources;
using Brio.MCDF.Game.FileCache;
using Brio.MCDF.Game.Services;
using Brio.Resources;
using Brio.UI;
using Brio.UI.Controls.Stateless;
using Brio.UI.Windows;
using Brio.UI.Windows.Specialized;
using Brio.Web;
Expand Down Expand Up @@ -132,17 +132,24 @@ private static ServiceCollection SetupServices(DalamudServices dalamudServices)
serviceCollection.AddSingleton<CharacterHandlerService>();
serviceCollection.AddSingleton<LightingService>();

// API & Web
serviceCollection.AddSingleton<BrioAPIService>();
serviceCollection.AddSingleton<BrioIPCProviders>();
serviceCollection.AddSingleton<WebService>();

serviceCollection.AddSingleton<StateAPI>();
serviceCollection.AddSingleton<ActorAPI>();
serviceCollection.AddSingleton<EnvironmentAPI>();
serviceCollection.AddSingleton<PosingAPI>();
serviceCollection.AddSingleton<AnimationAPI>();

// IPC
serviceCollection.AddSingleton<BrioIPCService>();
serviceCollection.AddSingleton<DynamisService>();
serviceCollection.AddSingleton<PenumbraService>();
serviceCollection.AddSingleton<GlamourerService>();
serviceCollection.AddSingleton<CustomizePlusService>();
serviceCollection.AddSingleton<KtisisService>();

// Web
serviceCollection.AddSingleton<WebService>();

// Entity
serviceCollection.AddSingleton<EntityManager>();
serviceCollection.AddSingleton<EntityActorManager>();
Expand Down Expand Up @@ -204,7 +211,6 @@ private static ServiceCollection SetupServices(DalamudServices dalamudServices)
serviceCollection.AddSingleton<CameraWindow>();
serviceCollection.AddSingleton<PosingGraphicalWindow>();
serviceCollection.AddSingleton<LightWindow>();
// serviceCollection.AddSingleton<ImBrioText>();

return serviceCollection;
}
Expand Down
8 changes: 6 additions & 2 deletions Brio/Brio.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Dalamud.NET.SDK/13.1.0">
<Project Sdk="Dalamud.NET.SDK/14.0.0">

<PropertyGroup>
<TargetFramework>net9.0-windows</TargetFramework>
<TargetFramework>net10.0-windows</TargetFramework>
<Platforms>x64</Platforms>
<Nullable>enable</Nullable>
<LangVersion>preview</LangVersion>
Expand Down Expand Up @@ -32,6 +32,10 @@
<PackageReference Include="YamlDotNet" Version="16.3.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Libs\Brio API\Brio.API\Brio.API.csproj" />
</ItemGroup>

<ItemGroup>
<None Update="Brio.json">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
Expand Down
2 changes: 1 addition & 1 deletion Brio/Brio.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"animation"
],
"DownloadCount": 646779,
"DalamudApiLevel": 13,
"DalamudApiLevel": 14,
"LoadRequiredState": 0,
"LoadSync": false,
"CanUnloadAsync": false,
Expand Down
22 changes: 17 additions & 5 deletions Brio/Capabilities/Actor/ActorAppearanceCapability.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Brio.Core;
using Brio.API;
using Brio.Core;
using Brio.Entities;
using Brio.Entities.Actor;
using Brio.Entities.Core;
Expand Down Expand Up @@ -103,14 +104,14 @@ public ActorAppearanceCapability(ActorEntity parent, CharacterHandlerService cha
SetSelectedProfile();
}

public async Task LoadMCDF(string path)
public async Task<BrioApiResult> LoadMCDF(string path)
{
try
{
if(_mCDFService.IsApplyingMCDF)
{
Brio.NotifyError("Another MCDF is loading, Please wait for it to finish.");
return;
return BrioApiResult.IsApplyingMCDF;
}

Entity.LoadingDescription = "Loading MCDF...";
Expand All @@ -125,27 +126,38 @@ public async Task LoadMCDF(string path)
{
Brio.Log.Warning(ex, "Exception while Loading MCDF");
Brio.NotifyError("MCDF Loading failed! Try again!");

return BrioApiResult.UnknownError;
}
finally
{
Entity.IsLoading = false;
}

if(HasMCDF)
return BrioApiResult.Success;

return BrioApiResult.UnknownError;
}

public async Task SaveMcdf(string path, string dis)
public async Task<BrioApiResult> SaveMcdf(string path, string dis)
{
try
{
Entity.LoadingDescription = "Saving MCDF...";
Entity.IsLoading = true;
await _mCDFService.SaveMCDF(path, dis, GameObject);

return BrioApiResult.Success;
}
catch(Exception ex)
{
Brio.Log.Warning(ex, "Exception while Loading MCDF");
Brio.NotifyError("MCDF Export failed! Try again!");

return BrioApiResult.UnknownError;
}
finally
finally
{
Entity.IsLoading = false;
}
Expand Down
2 changes: 1 addition & 1 deletion Brio/Capabilities/Posing/PosingCapability.cs
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ internal void ImportPose_Internal(OneOf<PoseFile, CMToolPoseFile> rawPoseFile, P

if(asExpression == false)
ModelPosing.ImportModelPose(poseFile, options, asScene, applyModelTransform);

if(expressionPhase2)
{
var bone = SkeletonPosing.GetBone("j_kao", PoseInfoSlot.Character);
Expand Down
3 changes: 2 additions & 1 deletion Brio/Capabilities/World/FestivalCapability.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Brio.Game.World;
using Brio.UI.Widgets.World;
using System.Collections.Generic;
using System.Linq;
using static Brio.Game.World.FestivalService;

namespace Brio.Capabilities.World;
Expand All @@ -14,7 +15,7 @@ public class FestivalCapability : Capability
public bool CanModify => _festivalService.CanModify;
public bool CanAdd => _festivalService.HasMoreSlots;
public bool HasOverride => _festivalService.HasOverride;
public uint[] ActiveFestivals => _festivalService.EngineActiveFestivals;
public uint[] ActiveFestivals => [.. _festivalService.EngineActiveFestivals.Select(f => f.Id)];
public IReadOnlyDictionary<uint, FestivalEntry> AllFestivals => _festivalService.FestivalList;


Expand Down
1 change: 1 addition & 0 deletions Brio/Config/EnvironmentConfiguration.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
namespace Brio.Config;

public class EnvironmentConfiguration
{
public bool ResetWeatherOnGPoseExit { get; set; } = true;
Expand Down
1 change: 1 addition & 0 deletions Brio/Config/LibraryConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Collections.Generic;

namespace Brio.Config;

public class LibraryConfiguration
{
public float IconSize { get; set; } = 120;
Expand Down
2 changes: 1 addition & 1 deletion Brio/Core/ComponentSet.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ public void Remove(int address)
}

public void Clear()
{
{
Array.Clear(Components, 0, Components.Length);

AvailableIndices.Clear();
Expand Down
4 changes: 1 addition & 3 deletions Brio/Core/DalamudServices.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using Dalamud.Game;
using Dalamud.Game.ClientState.Objects;
using Dalamud.IoC;
using Dalamud.IoC;
using Dalamud.Plugin;
using Dalamud.Plugin.Services;

Expand Down
Loading
Loading