The International Simutrans Forum

Development => Extension Requests => Topic started by: Celli on May 12, 2023, 07:14:47 PM

Title: Draggable delete button
Post by: Celli on May 12, 2023, 07:14:47 PM
Several times I encounter a situation when I want to delete something, like 10x5 tiles, but I have to go over each tile to have it deleted, for example a neighborhood in a city. This is because (at least in pak128) the delete option (R) only deletes one tile. I think R/Delete option should be draggable like the plant trees option (screenshot). It would be ideal because if I want to delete something of one-tile, i click once, if I want to delete a larger area of buildings, trees etc., just by clicking and dragging would make it so much faster and easier in my opinion.

Title: Re: Draggable delete button
Post by: Matthew on May 12, 2023, 11:07:49 PM
I agree that this would be a nice functionality to have.

However, I think implementing a draggable demolish tool would be a missed opportunity.

I think a better solution would be to implement a draggable General-Purpose Selection Tool:

Creatingd the General-Purpose Selection Tool, the Selections Dialog UI, and the Actions framework (i.e. calling a function such as Sell for all the convoys in the selection list), would be a major project. The power of the proposal is that adding many more Actions then becomes easier. You 'just' need to connect existing functions such as Sell. Of course, there would be many problems and bugs to solve for each Action as well; I'm not saying it would be easy, just easier than implementing new tools for each one. And it would open up new possibilities too (at least for Extended), such as 'Sell Lines to Other Player'.

I have thought this for a long time but haven't posted it because it's all too easy to suggest coding tasks for other people. But since this thread has been started, perhaps this idea will catch someone's imagination.
Title: Re: Draggable delete button
Post by: Yona-TYT on May 13, 2023, 01:27:41 AM
A quick solution would be to use a Script tool to perform this function. :P