Line 1: |
Line 1: |
| local getArgs = require("Module:GetArgs") | | local getArgs = require("Module:GetArgs") |
| local format = require("Module:StringOperations").format | | local format = require("Module:StringOperations").format |
− | local find = require("Module:Utils").find | + | local Utils = require("Module:Utils") |
| local BaseData = require("Module:BaseData") | | local BaseData = require("Module:BaseData") |
| | | |
Line 82: |
Line 82: |
| to_node = to_node_color and to_node_ or to_node:match(self._grammar.node) | | to_node = to_node_color and to_node_ or to_node:match(self._grammar.node) |
| if from_node and to_node then | | if from_node and to_node then |
− | if not find(branching.index, from_node) then | + | if not Utils.find(branching.index, from_node) then |
| table.insert(branching.index, from_node) | | table.insert(branching.index, from_node) |
| end | | end |
Line 95: |
Line 95: |
| branching[from_node][to_node] = { color = to_node_color } | | branching[from_node][to_node] = { color = to_node_color } |
| end | | end |
− | if not find(branching[from_node].index, to_node) then | + | if not Utils.find(branching[from_node].index, to_node) then |
| table.insert(branching[from_node].index, to_node) | | table.insert(branching[from_node].index, to_node) |
| end | | end |
Line 103: |
Line 103: |
| end | | end |
| end | | end |
− | table.sort(branching.index) | + | local sorting |
| + | if args.order then |
| + | local order_nodes = mw.text.split(args.order, "%s*,%s*") |
| + | sorting = function(a, b) |
| + | local ai = Utils.ifind(order_nodes, a) |
| + | local bi = Utils.ifind(order_nodes, b) |
| + | if ai and bi then |
| + | return ai < bi |
| + | else |
| + | return a < b |
| + | end |
| + | end |
| + | else |
| + | sorting = function(a, b) |
| + | return a < b |
| + | end |
| + | end |
| + | table.sort(branching.index, sorting) |
| for _, from in ipairs(branching.index) do | | for _, from in ipairs(branching.index) do |
− | table.sort(branching[from].index) | + | table.sort(branching[from].index, sorting) |
| end | | end |
| end | | end |
Line 164: |
Line 181: |
| ["0 -> 1"] = "Fixed route", | | ["0 -> 1"] = "Fixed route", |
| ["1 -> A, B/battle, C/empty"] = "Random", | | ["1 -> A, B/battle, C/empty"] = "Random", |
| + | ["C -> F, G"] = "...", |
| + | ["B -> D, E"] = "...", |
| ["title"] = "A Custom Title", | | ["title"] = "A Custom Title", |
| + | ["order"] = "C, B", |
| "?", | | "?", |
| }) | | }) |