UndertaleModTool
UndertaleModTool copied to clipboard
GMS2 tile editor
Description
This PR ports over UTMTCE's tile editor for GMS2 tile layers. I tried to split it into a few commits.
Usage
- Go to a room and either select a tile layer or create one (this PR also adds an "Auto" button to automatically set the tile layer's size to the room size). Click the new "Edit" button next to "Tile data" to open the tile editor.
- The left half of this window is the tile layer view, and the right half is the tile palette. As GM automatically wraps some tilesets, I have added a "Tileset columns" option to allow manually fixing it (this will persist when closing and reopening the tile editor, but not when opening different data files).
Select a tile from the right side (or pick using middleclick/Alt+click) to begin drawing. There are a variety of features to make drawing easier, like a preview of the room behind your tiles, using larger areas as a tile brush and filling areas (but no autotiling). - Click the "Apply" button to apply your changes.
Caveats
I'm quite inexperienced in writing complex C# UIs, so I'm again not sure if the code quality is the best, mainly the stuff related to interacting with the XAML (like the RefreshBrush hack).
Notes
The tile editor has a custom-made tile drawing system so that it only needs to redraw edited tiles, this could probably be split off sometime.
Download the artifacts for this pull request here:
GUI:
- GUI-windows-latest-isBundled-false-isSingleFile-false
- GUI-windows-latest-isBundled-false-isSingleFile-true
CLI:
At least on the surface, this looks really good. We'll have to give this some good testing, although I'm not sure if the UTMTCE version of it has been battle-tested already.
That's really good! I'll be merging this on my branch. Since you are porting this from CE, I wanted to ask - did you make this entirely or were others involved? I want to credit the right people.
That's really good! I'll be merging this on my branch. Since you are porting this from CE, I wanted to ask - did you make this entirely or were others involved? I want to credit the right people.
I made this feature entirely.
Dont want it in this PR, just asking out of curiosity: how doable would it be to port that system to gms1 games? Currently the workflow there isnt that great either because Tiles there are really just fancy objects.
Dont want it in this PR, just asking out of curiosity: how doable would it be to port that system to gms1 games? Currently the workflow there isnt that great either because Tiles there are really just fancy objects.
due to tiles being more like instances there, i think it would be better to implement a more gms1-like workflow for them, directly in the room editor (for gms2 tiles, the room editor rerenders the whole tile layer on every change, which is mostly the reason why the tile editor is in a separate window, alongside some possible ux issues from accidentally clicking a tile layer and entering the tile edit mode)
Sidenote: If there's any code formatting changes we want to make to this, they're probably low priority since this is such an isolated part of the codebase, but future PRs are free to handle that.