From 54912de9050d304be25d00ded34a844a908dbee5 Mon Sep 17 00:00:00 2001 From: liach <7806504+liach@users.noreply.github.com> Date: Sun, 3 Oct 2021 06:52:08 -0500 Subject: [PATCH] Map topological sort; used by vanilla to sort feature generation (#2711) * Map topological sort; used by vanilla to sort feature generation Signed-off-by: liach * Update mappings/net/minecraft/util/TopologicalSorts.mapping Co-authored-by: enbrain <69905075+enbrain@users.noreply.github.com> * Update mappings/net/minecraft/util/TopologicalSorts.mapping Co-authored-by: mschae23 <46165762+mschae23@users.noreply.github.com> * Now this should be less confusing for "any" * Update mappings/net/minecraft/util/TopologicalSorts.mapping * Apply suggestions from code review Co-authored-by: liach Co-authored-by: enbrain <69905075+enbrain@users.noreply.github.com> Co-authored-by: mschae23 <46165762+mschae23@users.noreply.github.com> --- .../minecraft/util/TopologicalSorts.mapping | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 mappings/net/minecraft/util/TopologicalSorts.mapping diff --git a/mappings/net/minecraft/util/TopologicalSorts.mapping b/mappings/net/minecraft/util/TopologicalSorts.mapping new file mode 100644 index 0000000000..dbf4cc2cbb --- /dev/null +++ b/mappings/net/minecraft/util/TopologicalSorts.mapping @@ -0,0 +1,23 @@ +CLASS net/minecraft/class_6496 net/minecraft/util/TopologicalSorts + COMMENT Utilities to perform a topological sort. + METHOD method_37951 sort (Ljava/util/Map;Ljava/util/Set;Ljava/util/Set;Ljava/util/function/Consumer;Ljava/lang/Object;)Z + COMMENT Performs a topological sort recursively through a reverse DFS. The + COMMENT results are passed to the consumer in reverse order, where each element + COMMENT is guaranteed to be passed before any of its predecessors (dependencies). + COMMENT When multiple orders are valid, the results will first trace along earlier + COMMENT returned successors in the successor set iteration for each element. + COMMENT + COMMENT @return {@code true} if the sort ends up in a loop, or {@code false} for + COMMENT a successful sort + ARG 0 successors + COMMENT the map holding information on successor (dependents) of each element + ARG 1 visited + COMMENT elements that already iterated all their successors + ARG 2 visiting + COMMENT elements that are still iterating their successors + ARG 3 reversedOrderConsumer + COMMENT accepts sorted results in reverse order; each element is passed only + COMMENT before any of its predecessors (dependencies) is, or after all its + COMMENT successors (dependents) are passed + ARG 4 now + COMMENT the starting or current element