Noobnotfound/main UI (Some UI Implementations, + Accounts Interface)#76
Open
NoobNotFound wants to merge 17 commits intomainfrom
Open
Noobnotfound/main UI (Some UI Implementations, + Accounts Interface)#76NoobNotFound wants to merge 17 commits intomainfrom
NoobNotFound wants to merge 17 commits intomainfrom
Conversation
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.
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.
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.
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.
Refactored the `Version` class by replacing `Metadata` with a `ReleaseTime` property, simplifying dependencies and logic. Updated `GamesPageViewModel` and `GamesPage` to align with these changes. Simplified `BaseSettingsService` by replacing async file operations with synchronous ones, adding fallback mechanisms, and improving error handling. Streamlined UI logic in `GamesPage` by replacing `Command` bindings with `Click` event handlers and delegating logic to code-behind.
Introduced a new "Accounts" feature with a dedicated page for managing Microsoft and offline accounts. Added `AccountsPage`, its view model, and navigation integration. Enhanced user experience with loading indicators, error handling, and notifications. Refactored `Core.cs` and `Game.cs` to improve modularity by delegating launcher creation to a new `CreateMCLauncher` method. Ensured proper initialization of game launchers and moved critical logging to a `finally` block. Enhanced `ToContentDialog` extension to support customizable primary button text. Updated dependency injection setup and project file to include new pages and services.
Introduces the RealVersion property to the Version class and ensures it is set during game installation. Updates game launch logic to use RealVersion instead of BasedOn, and saves games after installation. Also adds an inverse BoolToVisibility converter in AccountsPage and changes game installation command execution to run in a background task.
Refactored the `Core` class to manage refresh state with a new `IsRefreshing` property and `VersionsRefreshed` event. Updated the `GamesPageViewModel` to react to these changes, simplifying state management and reducing redundant code. Added the `UpdateAvailableVersions` method to centralize version filtering logic. Adjusted `BaseSettingsService` to use a more appropriate file path for settings storage.
Signed-off-by: NoobNotFound <82730163+NoobNotFound@users.noreply.github.com>
The `InstallGame` method in `Core.cs` was updated to remove a duplicate instantiation of the `game` object. Previously, the `game` object was instantiated twice, which was unnecessary. This change eliminates the redundant instantiation, improving code clarity, maintainability, and readability.
Removed dual in-memory and file-based storage from BaseSettingsService, now persisting all settings to files under LocalApplicationData/Emerald/Settings. Updated interface and usages to remove file/in-memory flags. Also includes minor UI tweaks in AccountsPage and a bugfix to update available versions after path selection in GamesPageViewModel.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.