Replies: 4 comments 6 replies
-
numerical ID shouldn't matter. let dalamud just increment a number internally. throw together something simple like |
Beta Was this translation helpful? Give feedback.
-
It would seem that "having to implement a complex ordering menu along with the associated configuration settings" is almost unavoidable if you want to provide user with a convenient interface to configure it. |
Beta Was this translation helpful? Give feedback.
-
The idea is really neat. I think it should allow for:
|
Beta Was this translation helpful? Give feedback.
-
I like the idea, but I don't think it should be in Dalamud. This isn't core functionality for interfacing with the game; this is an additional layer that's been built on top, and imo Dalamud should try to avoid that as much as possible (I know that ship has already sailed, but we should close the harbour. Does that metaphor even make sense?) Do you think it'd be possible to use a plugin + IPC for this? The main problem I see is ensuring that users have the dependency when they're using a plugin that supports it, but the failure case should be that nothing happens (plugin could opt to notify the user if they want). By analogy to other software: Linux window managers don't build their status bar in, they use another application that can be customised and replaced as the user prefers. Just my 2c, would be interested in hearing arguments otherwise. |
Beta Was this translation helpful? Give feedback.
-
It seems that users keeping up with the #core-dev channel are excited for this possible upcoming feature.
The API currently consists of two public methods. Dalamud handles everything else:
When designing this, I wanted it to be as transparent as possible. Plugins should be able to add information whenever they want, and as many elements as they want. For example, a plugin like Simple Tweaks may have multiple tweaks that each add information to this location. Dalamud controls the order of the elements by calculating the size of the game's contents of the server info element, and then it begins drawing leftwards from there. The gap between elements is also configurable.
However, there is still the problem of element ordering. Currently, it is first-come-first serve. If Plugin A calls
SetText
before Plugin B, Plugin B will be drawn second, that is, to the left of Plugin A. This means not only is order not configurable, order is indeterminate. If a plugin is reinstalled, its position will change, provided it disposes of its text element properly (viaRemoveText
).Proposed solution:
SetText
, Dalamud will sort the list of elements by their node ID. This will become the draw order. Lower numbers will be drawn first.Possible issues:
I am not opposed to major rewrites here. It is not a complex class. You can view the current implementation here.. Please let me know what you think.
Beta Was this translation helpful? Give feedback.
All reactions