pub(super) fn evaluate_visibility_with_rules(
node: AdvancementNodeRef,
player_advancement: &mut PlayerAdvancement,
ascendants: &mut Vec<VisibilityRule>,
is_done_test: &mut impl FnMut(&mut PlayerAdvancement, AdvancementNodeRef) -> bool,
output: &mut impl FnMut(&mut PlayerAdvancement, AdvancementNodeRef, bool),
) -> boolExpand description
Recursively evaluates the visibility of an advancement and all of its descendants.
The current node’s completion state and display visibility rule are added
to ascendants while its children are evaluated. Once all descendants
have been processed, the node is visible if it or any descendant is
complete, or if the inherited visibility rules allow unfinished nodes to
remain visible.
is_done_test determines whether each advancement is complete, while
output receives the final visibility result for each visited node.
Returns true if this node or any of its descendants is complete.