UndertaleModTool icon indicating copy to clipboard operation
UndertaleModTool copied to clipboard

GMS2 tile editor

Open CST1229 opened this issue 1 year ago • 1 comments

Description

This PR ports over UTMTCE's tile editor for GMS2 tile layers. I tried to split it into a few commits.

Usage

  1. 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.
  2. 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).
  3. 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.

CST1229 avatar Oct 17 '24 13:10 CST1229

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.

colinator27 avatar Oct 23 '24 03:10 colinator27

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.

luizzeroxis avatar Nov 09 '24 17:11 luizzeroxis

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.

CST1229 avatar Nov 09 '24 18:11 CST1229

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.

Miepee avatar Nov 25 '24 11:11 Miepee

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)

CST1229 avatar Nov 25 '24 12:11 CST1229

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.

colinator27 avatar Jan 20 '25 20:01 colinator27