Skip to content

Noobnotfound/corexmain#74

Merged
NoobNotFound merged 28 commits intomainfrom
noobnotfound/corexmain
Nov 20, 2025
Merged

Noobnotfound/corexmain#74
NoobNotFound merged 28 commits intomainfrom
noobnotfound/corexmain

Conversation

@NoobNotFound
Copy link
Member

Implementiation of CoreX. (not all of it)

Refactored the `Core` class to introduce `SavedGame` and
`SavedGameCollection` for managing saved games. Added `LoadGames`,
`SaveGames`, and `RemoveGame` methods, improving game lifecycle
management. Updated `InstallGame` to handle `Game` objects and
save state changes.

Enhanced the `Game` class with a `FromTuple` method, improved
error handling, and added offline mode checks.

Improved `BaseSettingsService` to support file-based storage
with `SaveToFileAsync` and `LoadFromFileAsync`. Updated `Set`
and `Get` methods to handle file-based settings.

Refined mod loader installers (`Fabric`, `Forge`, `Quilt`,
`ModLoaderRouter`) with better error handling and offline
support.

Upgraded the solution to Visual Studio 18 and removed unused
build configurations. Centralized settings keys in the new
`SettingsKeys` class.

Enhanced logging and exception handling across the codebase
for better debugging and user notifications.
Replaced direct dependency on BaseSettingsService with the
IBaseSettingsService interface across the codebase to improve
flexibility, modularity, and testability. Updated the `Core`
class constructor, `SettingsService` constructor, and
dependency injection registration in `App.xaml.cs` to use the
interface.

Introduced a new `IBaseSettingsService` interface defining the
contract for `BaseSettingsService`, including methods for
storing and retrieving values and an `APINoMatch` event.

Refactored `BaseSettingsService` to implement the new
interface. Updated `using` directives to remove unused
namespaces and add necessary ones.

Updated the project file to target .NET 9.0 for desktop
applications. Minor non-functional changes were made to the
project file.
@NoobNotFound NoobNotFound requested a review from a team as a code owner September 26, 2025 10:30
@github-project-automation github-project-automation bot moved this to 📋 To do in Emerald Sep 26, 2025
@NoobNotFound
Copy link
Member Author

don't merge this yet. draft

NoobNotFound and others added 3 commits September 26, 2025 20:53
Refactored `Extensions.Localize` to improve logging and fallback behavior. Enhanced `GameSettings` with new properties and `[NotifyPropertyChangedFor]` attributes. Introduced `MinecraftSettingsUC` user control to encapsulate Minecraft-related settings, replacing inline UI in `GeneralPage`.

Simplified `ArgumentsListView` by removing `ArgTemplate` and directly binding to `ObservableCollection<string>`. Improved dependency injection by registering `IBaseSettingsService` in `App.xaml.cs`.

Upgraded `Uno.Sdk` to `6.2.39` in `global.json`. Removed legacy code and improved UI structure in `ArgumentsListView` and `MinecraftSettingsUC`. Enhanced logging and localization across the application.
Replaces string-based argument handling with a LaunchArg model and synchronizes external/internal collections in ArgumentsListView. Updates all localization markup extensions to use KeyName instead of Name. Refactors MinecraftSettingsUC to use ShowMainSettings and adds copy path functionality. Updates target frameworks to net9.0-desktop and net9.0-windows10.0.26100. Cleans up code and improves bindings and UI logic across settings and controls.
@NoobNotFound NoobNotFound marked this pull request as draft September 28, 2025 08:34
Introduced a new GamesPage for managing Minecraft instances,
including UI, view model, and commands for game creation,
installation, launching, and settings management. Enhanced
mod loader support and improved user experience with modern
UI elements, dynamic filtering, and robust error handling.

Updated package versions and added new references. Improved
account management with the new EAccount class, AccountService,
and IAccountService interface. Enhanced dependency injection
and navigation. Improved error handling in BaseSettingsService
and removed legacy exception handlers. Added CountToVisibility
converter and updated project files for new features.
Refactored `BaseSettingsService` for improved error handling and
fallback mechanisms. Enhanced the "Add Game" wizard with a new
multi-step `AddGameDialog` for better user experience, including
dynamic navigation and validation logic. Updated `GamesPageViewModel`
to improve initialization, filtering, and mod loader handling.

Reorganized and cleaned up `GamesPage.xaml` and `GamesPage.xaml.cs`
for better readability and maintainability. Introduced new UI
elements like `StepToVisibilityConverter` and `SettingsDialog`.
Removed legacy code, redundant comments, and unused imports.

Fixed a bug in `GetModLoaderInstaller` to handle missing installers
gracefully. Improved consistency in formatting, logging, and code
style across the codebase.
@NoobNotFound
Copy link
Member Author

NoobNotFound commented Sep 29, 2025

this is kindof mostly done. I should merge and move to build UI. @Lamparter could you review this? (lol tbh I mostly vibe coded this)

Refactored the Add Game Wizard to improve modularity, maintainability,
and user experience. Introduced `AddGameWizardControl` as a reusable
`UserControl` to encapsulate the wizard's UI and logic. Simplified
`GamesPageViewModel` by consolidating button state logic and streamlining
navigation commands. Updated `GamesPage.xaml` and `GamesPage.xaml.cs`
to integrate the new control and remove legacy inline wizard code.

Enhanced dialog state management to dynamically update button states
based on the wizard's step and ViewModel properties. Removed redundant
logic and event handlers, and relocated step-specific logic to the new
control. Updated the project file to include `AddGameWizardControl`.

These changes improve code clarity, reduce redundancy, and make the
wizard easier to maintain and extend.
@NoobNotFound NoobNotFound marked this pull request as ready for review September 29, 2025 10:26
Signed-off-by: NoobNotFound <82730163+NoobNotFound@users.noreply.github.com>
NoobNotFound and others added 11 commits November 19, 2025 15:58
Signed-off-by: NoobNotFound <82730163+NoobNotFound@users.noreply.github.com>
Signed-off-by: NoobNotFound <82730163+NoobNotFound@users.noreply.github.com>
Updated uno-check installation and execution to include logging and error handling.

Signed-off-by: NoobNotFound <82730163+NoobNotFound@users.noreply.github.com>
Updated action.yml to streamline workload installation and improve comments.

Signed-off-by: NoobNotFound <82730163+NoobNotFound@users.noreply.github.com>
Simplifies the install_dependencies action by removing .NET workload installation and unnecessary Snap dependencies for Linux, focusing only on required SDKs and GTK libraries. Updates the CI workflow to streamline matrix configuration, unify artifact naming, and ensure platform-specific build and packaging steps, including zipping release artifacts for easier distribution.
Signed-off-by: NoobNotFound <82730163+NoobNotFound@users.noreply.github.com>
Consolidated TargetFrameworks in Emerald.CoreX and Emerald projects to include both net9.0-windows10.0.26100 and net9.0-desktop. Enhanced the GitHub Actions install_dependencies step to run uno-check for target platform workloads, improving CI setup for Uno Platform projects.
Moved the window icon setting logic from App.xaml.cs to WindowManager.cs, ensuring the icon is set when initializing the window on Windows platforms.
Updated `Microsoft.Windows.CsWin32` package to version 0.3.248.
Added `SetWindowIcon` method in `WindowManager` to streamline setting window icons using WinUI 3 APIs.
Refactored `IntializeWindow` to remove redundant icon-setting logic.
Updated `App.xaml.cs` to use the new `SetWindowIcon` method.
Added necessary `Windows.Win32` namespaces and removed redundant `using` directives.
Improved code organization and clarity by consolidating icon-related logic.
Replaces 'target-platform' with 'job-platform' in the install_dependencies action and improves uno-check invocation. Adds /p:ErrorOnDuplicatePublishOutputFiles=false to the Windows publish step in ci.yml to address NETSDK1152 errors.
The step to install libgtk-3-dev and libwebkit2gtk-4.0-dev has been removed from the install_dependencies GitHub Action. This streamlines the setup process and avoids unnecessary package installations.
Changed the default Windows SDK version to 19041 in the install_dependencies action and updated the ISO download URL in Install-WindowsSdkISO.ps1 to use a Microsoft redirect link for build 19041.
Added a conditional to skip the workload installation step on Windows runners or when the job platform is set to 'windows'. This prevents unnecessary installation attempts on unsupported platforms.
Updated the CI workflow to disable trimming and single-file publishing for all platforms to prevent startup crashes and incompatibilities, especially on Linux. Improved comments and clarified platform sections. Fixed the ZIP step to archive the entire output folder instead of its contents, ensuring correct packaging for all platforms.
Clarifies platform labels in the build matrix for Windows, macOS, and Linux jobs. Refactors PowerShell script to use an array for build arguments, ensuring correct argument passing. Updates comments for clarity and maintains correct zipping behavior for build artifacts.
@NoobNotFound
Copy link
Member Author

I'm going to merge this.

@NoobNotFound NoobNotFound merged commit 2852491 into main Nov 20, 2025
4 checks passed
@NoobNotFound NoobNotFound deleted the noobnotfound/corexmain branch November 20, 2025 19:32
@github-project-automation github-project-automation bot moved this from 📋 To do to ✅ Complete in Emerald Nov 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Complete

Development

Successfully merging this pull request may close these issues.

2 participants