WIP: The Avalonia port
Downloads:
I've been working on the Avalonia port of UndertaleModTool for a little while, so I decided to finally make a draft PR for it, in case anyone else wants to help. As discussed in #460 and elsewhere, Avalonia is probably the best choice, since it's multi-platform, works in C# and seems to suck less than alternatives. I tested the current build on Linux and it seems to work fine (except the performance).
Currently, I'm working on making it work as a sort of 'view only' UTMT, so those not on Windows can datamine games, at least. Of course, the architecture still has to be made such that we could later add editing functionality.
But, it is not complete yet. No, it is far from complete. Here's a TODO list of all the things I can think of that need to be done (but there's certainly more):
-
General
- [x] Open data file
- [x] Save data file
- [ ] Save debug information
-
Main UI
- [x] Tree view
- [x] Filter by name
- [x] Virtualization
- [x] Right click menu
- [x] Reorder resources
- [x] Tabs
- [x] Back/forward navigation
- [x] Open in the same tab
- [x] Keep tab state
- [x] Resource ID number
- [x] Tree view
-
Editors
- [x] General info editor
- [x] Global init scripts editor
- [x] Game end scripts editor
- [x] Audio group editor
- [x] Sound editor
- [ ] Play audio
- [ ] Deal with audio groups
- [x] Sprite editor
- [x] Show first image initially
- [x] Background editor
- [x] Path editor
- [ ] Render path
- [x] Script editor
- [x] Shader editor
- [x] Font editor
- [ ] Glyph editor
- [x] Timeline editor
- [x] Game object editor
- [x] Room editor
- [x] Background properties
- [x] View properties
- [x] Instance properties
- [x] Tile properties
- [x] Layer properties
- [x] Render all items
- [ ] Edit all items
- [x] Select and move items
- [ ] Scale and rotate items
- [ ] Tiles layer editing
- [ ] Save to image
- [x] Reorder items
- [x] Copy and paste items
- [x] Extension editor
- [ ] Product ID
- [x] Texture page item editor
- [ ] Show item in texture
- [x] Code editor
- [x] Syntax highlighting
- [x] Parent entry
- [ ] Middle/right click stuff
- [x] Variable editor
- [x] Function editor
- [x] Code local editor
- [x] String editor
- [x] Embedded texture editor
- [ ] Click item to open
- [x] Embedded audio editor
- [x] Texture group information editor
- [x] Embedded image editor
- [x] Particle system editor
- [x] Particle system emitter editor
-
Controls
- [x] String reference box
- [ ] Choose to replace one/all
- [x] Resource reference box
- [x] Flags box
- [ ] Text box
- [x] Editable data grid
- [x] Color picker
- [x] Image viewer
- [x] String reference box
-
Other
- [x] Basic message dialogs
- [x] Text input dialog
- [x] Loader dialog
- [x] Settings
- [ ] All settings
- [x] Search in code
- [ ] Find references
- [ ] File associations
- [ ] Profile mode
- [x] Icon
-
Scripting
- [x] Be able run scripts
- [x] Command textbox
- [ ] Full scripting API
Download the artifacts for this pull request here:
GUI:
- GUI-windows-latest-isBundled-false-isSingleFile-true
- GUI-windows-latest-isBundled-false-isSingleFile-false
CLI:
To support Mac with Avalonia, it's better to use NativeMenu. On platforms other than Mac, you can use the NativeMenuBar control to display a typical menu bar.
nice work :)
Keep it up :3
If there's any way I can reduce the workload by helping out then let me say hi!
@MayaChen350 Hi, you're welcome to send PRs to my repo for any features that are missing, thanks
I'll do my best then! I switched to Fedora recently but then it happened I still wanted to make mods for Deltarune, so this PR could be an awesome/a literal life saver (and for other people)
Thank you
I would like to help out, I have been working on a version with Avalonia as well and have a working MVVM system
going.