Skip to main content

evaluate_visibility_with_rules

Function evaluate_visibility_with_rules 

Source
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),
) -> bool
Expand 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.