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",
"?",
"?",
})
})