Skip to content

API15 + Luna#103

Merged
RisaDev merged 10 commits intoAether-Tools:api15from
Abelfreyja:api15
May 2, 2026
Merged

API15 + Luna#103
RisaDev merged 10 commits intoAether-Tools:api15from
Abelfreyja:api15

Conversation

@Abelfreyja
Copy link
Copy Markdown
Contributor

this is a pretty decent size of a change but it is needed for longevity of the plugin, as OtterGui is mostly being superseded by Luna.

since all the latest versions of the Penumbra submodules are requiring it now, it's the best time to move to it.

what do we gain:

  • not needing to update/modify obsolete versions of said submodules just to keep OtterGui
  • folder states (open/closed) actually save across sessions (peak tbh)
  • better organization tools (seperators, colored folders and sorting options)
  • be as cool as penumbra

changes:

  • update sdk + repo
  • removed ottergui entirely and added luna
  • improved config service and added a config back up using Luna's SingleBackup mode
  • use Luna's SaveSerice to save all the .json files
  • moved majority of the UI and file system to Luna
  • legacy config will be automatically migrated to the new system (review this)
  • also fixed a bug where a template with empty name would not be drawn (i think)
  • set setting "open all folders by default" to default to false
  • added axis colors for the columns in the bone editor panel
  • cleaned up a bunch of usings across the codebase
  • updated hooks to match current cs

most changes were tested locally but if there might be issues related to ui or anything else, i'll take care of them once found

@RisaDev
Copy link
Copy Markdown
Member

RisaDev commented May 1, 2026

Welp, that certainly means c+ might take some time to be available for 7.5 as I need to find a decent chunk of free time to review all that and this will likely need to be pushed to testing first before common availability.

With that said I agree that moving to Luna is important and thank you for doing that because that's certainly not something I have the time to do.

@RisaDev RisaDev self-requested a review May 1, 2026 13:25
@RisaDev RisaDev added the enhancement New feature or request label May 1, 2026
Comment thread submodules/Luna
Comment thread submodules/Penumbra.GameData
Comment thread CustomizePlus/Configuration/Data/PluginConfiguration.cs Outdated
Comment thread CustomizePlus/Core/Services/Dalamud/DalamudServices.cs Outdated
Im.Separator();

if (ImGui.Button("Owned Actors Temporary Profile Test"))
if (Im.Button("Owned Actors Temporary Profile Test"))
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Literals passed to ImSharp should be UTF-8 to avoid conversions at runtime. Luna has a Roslyn analyzer/generator module that can generate compile-time warnings for that kind of stuff, see my next comment.

<ProjectReference Include="..\CustomizePlus.GameData\CustomizePlus.GameData.csproj" />
<ProjectReference Include="..\submodules\ECommonsLite\ECommonsLite\ECommonsLite.csproj" />
<ProjectReference Include="..\submodules\OtterGui\OtterGui.csproj" />
<ProjectReference Include="..\submodules\Luna\Luna\Luna.csproj" />
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you want to use Luna's Roslyn analyzer/generator module to get compile-time warnings for inefficient use of Luna/ImSharp functions (and more bells and whistles), you can add it this way:

Suggested change
<ProjectReference Include="..\submodules\Luna\Luna\Luna.csproj" />
<ProjectReference Include="..\submodules\Luna\Luna\Luna.csproj" />
<ProjectReference Include="..\submodules\Luna\Luna.Generators\Luna.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />

Comment on lines 424 to 435
@@ -436,7 +434,7 @@ private void DrawUrlButton(string text, string url, uint buttonColor, float widt
_messageService.NotificationMessage($"Unable to open url {url}.", NotificationType.Error, false);
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How relevant would be Dalamud.Utility.Util.OpenLink to that?

Abelfreyja added 2 commits May 2, 2026 02:29
- remove ProcessStartInfo and use OpenLink instead
- add Luna.Generators analyzer to proj ref
- convert remaining ImSharp literals to UTF-8
- actually use Luna's WindowSystem and fix popups along with it
- rework state block to interact better with dalamud's font scaling, etc (doesn't overflow into the tabs anymore when window too small in width)
- highlight bone editor cells and rows based on edit state
- "improve" input sliders to match better with the highlighted cells now as well
- bump submodules
@RisaDev RisaDev changed the base branch from main to api15 May 2, 2026 20:08
@RisaDev RisaDev merged commit 833698c into Aether-Tools:api15 May 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants