Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tilemap Editor Right-Click Should Erase Previously Painted Tiles #730

Open
ilexp opened this issue Jul 7, 2019 · 2 comments
Open

Tilemap Editor Right-Click Should Erase Previously Painted Tiles #730

ilexp opened this issue Jul 7, 2019 · 2 comments
Labels
Editor Area: Duality editor or support libraries Feature It doesn't exist yet, but I want it Nice2Have Beneficial, but only very slightly so Tilemaps Area: Tilemaps core / editor plugins Usability Related to API and UI usability
Milestone

Comments

@ilexp
Copy link
Member

ilexp commented Jul 7, 2019

Summary

Accidentally painting a few tiles more than intended happens a lot. It would be awesome if that could be fixed without undoing everything and without one or multiple palette selections: Instead, painting via right-click could "erase" the previously painted tiles by replacing them with the tiles they were painted on top of.

Analysis

  • Keep a record of all tile painted tiles since the last source change, target change or tool selection.
  • On right-click, use this buffer to paint the old tiles back.
  • If the buffer is empty (completely, not on the current position), paint the default empty tile of the tileset.
@ilexp ilexp added Feature It doesn't exist yet, but I want it Editor Area: Duality editor or support libraries Usability Related to API and UI usability Nice2Have Beneficial, but only very slightly so Plugin Area: Misc. core / editor plugins labels Jul 7, 2019
@ilexp ilexp added this to the General milestone Jul 7, 2019
@ilexp ilexp added Tilemaps Area: Tilemaps core / editor plugins and removed Plugin Area: Misc. core / editor plugins labels Jul 14, 2019
@cowmanjoe
Copy link
Contributor

I have a few questions about the desired behaviour of this feature.

  • Should right clicking "erase" only the hovered tile, or the entire brush shape?
  • Should we be able to right click and drag to erase as we would with the brush tool?
  • What exactly is meant by source change and target change? Does this mean tileset and tilemap change?

I think having complex functionality for this would point to using a new tool. Maybe the tool could be triggered on right click? A problem there would be the preview wouldn't know whether we were erasing or using the selected tool.

@ilexp
Copy link
Member Author

ilexp commented Nov 11, 2019

Should right clicking "erase" only the hovered tile, or the entire brush shape?

I'm thinking the entire brush shape.

Should we be able to right click and drag to erase as we would with the brush tool?

Yep, exactly like the brush tool. Overall, the analogy I have in mind is that it's the same brush, but with different colors, so it would behave the same as well.

I think having complex functionality for this would point to using a new tool. Maybe the tool could be triggered on right click?

That would be another option. For simplicity's sake I'd probably go with some behavior integrated in the brush tool itself though - it would also allow right-click to be used context aware per tool, rather than being blocked for all of them.

What exactly is meant by source change and target change? Does this mean tileset and tilemap change?

Source change: I'm selecting different tiles from the palette, pick a tilemap area to copy from, or a different source is assigned via code.
Target change: I'm painting on a different tilemap than before.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Editor Area: Duality editor or support libraries Feature It doesn't exist yet, but I want it Nice2Have Beneficial, but only very slightly so Tilemaps Area: Tilemaps core / editor plugins Usability Related to API and UI usability
Development

No branches or pull requests

2 participants