Would this function and call effectively let me search for this text? I want to search for “Turn Off Overload” to know if the module is currently overloaded.
case getDescendantWithDisplayText "Turn Off Overload" moduleButton.uiNode of
Nothing ->
describeBranch
("Did not find the node with display text Turn Off Overload. Activate overload.")
activateOverload
Just _ ->
describeBranch
("Module already overloaded. Will turn off when enemies are gone.")
waitForProgressInGame
shipModuleButtonRepresentsOverload : UITreeNodeWithDisplayRegion -> Bool
shipModuleButtonRepresentsOverload entry =
if getHintTextFromDictEntries entry.uiNode == Just "Turn Off Overload" then
True
else
False
Looking at the rectangle that you put in the screenshot: The name left of the equals sign should be useful to filter the properties to get the one you highlighted.
You can use the Find All References function in the code editor on any reference to the type EveOnline.MemoryReading.UITreeNode. The editor then displays a list of all references to that type. This way you can navigate to the sources of values of this type.
This way, you find that EveOnline.ParseUserInterface.UITreeNodeWithDisplayRegion has one in the field uiNode. EveOnline.ParseUserInterface.UITreeNodeWithDisplayRegion is a popular type to model parts of the UI because when we know the display region we can interact with the element using the mouse cursor.
You can do the references search for that type, which yields around 174 references in the latest framework.
In these search results, there are also these two:
listChildrenWithDisplayRegion → get the children of a UI node.
listDescendantsWithDisplayRegion → get all descendants in a list. The number of elements is the same that is displayed in the alternate UI tree explorer that you showed in your screenshot above. When you find a node as a descendant in that tree explorer, you can get it via listDescendantsWithDisplayRegion.
Here you can see the search results also show how to get there starting from a ship module button:
You can also see these fields leading to the UI nodes in the screenshot you posted.
In the screenshot you posted, you expanded the ‘children’ of a node. To get these, use listChildrenWithDisplayRegion.