Garux / netradiant-custom

The open-source, cross-platform level editor for id Tech based games.
https://garux.github.io/NRC/
Other
334 stars 59 forks source link

Feature Request: Allow dragging of non-brush entities without selection of translation axes. #66

Closed MaceMadunusus closed 10 months ago

MaceMadunusus commented 3 years ago

In GTK Radiant, you can drag non-brush entities around without directly dragging from the entity itself by dragging surrounding areas in the grid or 3d space. This allows you to drag entities without having them directly visible after moving your camera out of range in the view port, which in some ways can speed up level design by allowing you to be less precise and not needing to use the translation widget or directly hitting the entity in order to drag it around in the grid.

https://user-images.githubusercontent.com/3003653/110164392-edad2780-7db6-11eb-9c28-5e290eea5808.mp4 (GTK Radiant dragging behavior)

https://user-images.githubusercontent.com/3003653/110164815-85127a80-7db7-11eb-8e56-093057c42c64.mp4 (Netradiant behavior)

Garux commented 3 years ago

Such possibility was considered (works for components), though behaviour to move what you don't see or don't explicitly grab is pretty questionable, as it may result in mapping errors after accidental click, also considering, that it is not consistent, but determined by selected objects type. I think it's fine as it is, because super precise click is not required anyway and it has prefs.selection.selector size control to tweak the threshold. Also for lights such action does 'scale light value'.

MaceMadunusus commented 3 years ago

Such possibility was considered (works for components), though behaviour to move what you don't see or don't explicitly grab is pretty questionable, as it may result in mapping errors after accidental click

I personally turned off the left click tunnel selector because it was way too prone to similar accidental clicks. Turning it off kinda prevents that scenario from happening with this drag method. It would be a nice option to have, but good to know selector size will help. After testing it seems to have a max of 64 pixels though, which on my screen is a little small and a doubling of that limit would probably by nice.

Garux commented 3 years ago

I do not follow, how disabling ability to select would help to not move things accidentally? What is your screen resolution? 12 feels pretty solid in full hd. Note, it affects size for all selection operations, so huge one may worsen the experience.

MaceMadunusus commented 3 years ago

Disabling tunnel selection for me, helped prevent me selecting things I did not intend to, when coming from 18 years of GTK Radiant. Which would also help prevent me selecting things by accident when dragging lights. I never personally had a problem selecting something else while trying to drag a light, or spawn point entity in GTK Radiant, regardless of where it was in the world and where my click point, viewpoint were.

I am at 1440p, but a bigger selection might actually bring the feel of things closer to GTK. I am a bit used to how "loose" things are in the GTK version of radiant, that how precise the selection requirements are in this are. I'm not exactly sure. 64 does feel a bit large for brush operations. Might just have to try and find a happy medium value and adjust my muscle memory.

Garux commented 3 years ago

Ic the difference it makes. My worries are about moving things you do not clearly intend to move. Also that'd make to choose whether you want this or lights resizing. In Gtk this is cheap workaround of the tiny objects selection issue, as it uses ray casting for selection, not frustum culling. Tunnel selector is great tweak tho, as it allows to avoids deselecting before doing next selection all the way.