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

[manipulator] rebirth #3256

Open
myk002 opened this issue Apr 17, 2023 · 7 comments
Open

[manipulator] rebirth #3256

myk002 opened this issue Apr 17, 2023 · 7 comments

Comments

@myk002
Copy link
Member

myk002 commented Apr 17, 2023

our in-game Dwarf Therapist-like interface needs an entirely new UI. Existing functionality (and maybe design elements) might be salvageable from the old plugin.

Integrate with or replace work details?

@lethosor
Copy link
Member

My opinion is that it doesn't really need a new UI. Just because a lot of our new-style tools use windows doesn't mean manipulator can't take up the full screen. I think a full-screen manipulator would be more useful than nothing.

That said, the plugin isn't currently built, and I haven't looked into how much effort is required to get it to build.

@quietust
Copy link
Member

quietust commented Apr 25, 2023

At the very least, the following things will need to be changed:

  • The entrypoint - previously, you used a custom hotkey from the Units screen (which no longer exists)
  • The "ViewCre" and "Zoom-Cre" exitpoints - those originally worked by forwarding commands to the parent viewscreen (which, as above, no longer exists)
  • Adding mouse support for everything (since DF is no longer a primarily keyboard-based game)

@myk002
Copy link
Member Author

myk002 commented Apr 26, 2023

The manipulator code has a surprising amount of mouse support already. I have always been impressed with it, even before I studied its source. I consider it one of DFHack's finest tools.

That being said, the interface doesn't exactly fit in with updated tool UIs. I don't have an issue with it's full-screen nature, but rather the lack of hover reactions, display styling, mouse wheel scrolling, and other common elements of "modern" DFHack UX.

Truthfully, I'm torn on what to recommend. This is such an amazingly useful tool, I'd be willing to sacrifice some UX consistency in order to make it available sooner. However, I'm not keen on spending much time updating the C++ widgets. I view them as an unwarranted maintenance burden in light of the far more flexible, featureful, and accessible Lua widget set.

I'd estimate a Lua port to take 3-4 weeks. I'm not sure how long a minimal C++ update would take. The uicommon.h header is currently uncompilable, though I haven't looked into why.

@lethosor
Copy link
Member

I put some work into a Lua port several years ago (that's why screen.penarray was added) but it's not complete. https://github.com/lethosor/dwarf-manipulator

I think using the keyboard is fine, for now, but there is also a chance that some keys formerly used by manipulator are no longer in DF. The point about the view/zoom keys is a good one too. We might have to strip a few things out.

Generally I think usability and self-consistency are more important than consistency with other tools, especially if the latter is the only thing preventing the tool from being included. It's also worth considering that the people looking for this tool generally already know how to use it in its current state. It could be improved, sure.

Also, manipulator largely uses its own rendering system. I pulled in a ListColumn or two for the "batch actions" menu at one point (that's actually in a separate listcolumn.h header now), but other than that, I don't think manipulator uses much from uicommon.h besides the colors and PaintString-type primitives. I suspect those are easy to get working, if they don't already work. I'm not surprised to hear uicommon.h potentially has other build issues, though - good to know.

@myk002
Copy link
Member Author

myk002 commented Mar 22, 2024

ideas from players:

  • make it obvious which units are not contributing to the labor force because of being on active military duty

ideas from reddit discussion:

  • search for specific needs
  • see who is single
  • ability to favorite dwarves and they are sorted to the top by default
  • Arrival sort
  • Creature size sort
  • Can see stress

@myk002
Copy link
Member Author

myk002 commented Apr 6, 2024

From Ozzatron in Discord:

For me the main value of manipulator was sorting by arrival and going from the bottom up to perfectly pigeonhole all new migrants into their best labors (or into what I needed laborers in, if they were useless). This means that total count of dwarves assigned to each labor (or perhaps labor category) is helpful. The other thing I used it for was monitoring stress (thankfully now kinda visible in the vanilla interface) and scouring people for combat skills to see who I would draft, even if it was just for my part-time training/therapy squads. So adding that Melee Combat Potential rating would be personally appreciated as well. I would be fine if Manipulator was a full-screen huge tablelike interface with lots of tabs at the top which changed what exactly you saw; there's potential with the new UI to make it simultaneously more functional and less cluttered, but I imagine we could discuss UI with mockups for a whole month before settling on something solid.
The other thing I did, which I was angered when it was no longer truly possible, was toggle an unused labor flag (like Alchemist) to indicate which dwarves I had already "processed" and were fully-fledged and initialized fort citizens with assigned rooms and such.
Being able to set arbitrary flags or stamps on your dwarves would thus be much appreciated. Like coloring cells in Excel.

@frznd
Copy link

frznd commented May 4, 2024

From Ozzatron in Discord:

For me the main value of manipulator was sorting by arrival and going from the bottom up to perfectly pigeonhole all new migrants into their best labors (or into what I needed laborers in, if they were useless). This means that total count of dwarves assigned to each labor (or perhaps labor category) is helpful.

The other thing I used it for was monitoring stress (thankfully now kinda visible in the vanilla interface) and scouring people for combat skills to see who I would draft, even if it was just for my part-time training/therapy squads. So adding that Melee Combat Potential rating would be personally appreciated as well.

I would be fine if Manipulator was a full-screen huge tablelike interface with lots of tabs at the top which changed what exactly you saw; there's potential with the new UI to make it simultaneously more functional and less cluttered, but I imagine we could discuss UI with mockups for a whole month before settling on something solid.

The other thing I did, which I was angered when it was no longer truly possible, was toggle an unused labor flag (like Alchemist) to indicate which dwarves I had already "processed" and were fully-fledged and initialized fort citizens with assigned rooms and such. Being able to set arbitrary flags or stamps on your dwarves would thus be much appreciated. Like coloring cells in Excel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 📋 Backlog
Development

No branches or pull requests

4 participants