Line 3: |
Line 3: |
| | | |
| local Ship = require('Module:Ship') | | local Ship = require('Module:Ship') |
| + | local Formatting = require('Module:Formatting') |
| | | |
| local DropList = {} | | local DropList = {} |
Line 42: |
Line 43: |
| if tonumber(arg_name) then | | if tonumber(arg_name) then |
| local ship, nodes = arg:match(args_grammar.ship_and_nodes) | | local ship, nodes = arg:match(args_grammar.ship_and_nodes) |
− | -- TODO: check ship existence?
| |
| local ship_table = Ship:get_table(ship, "") | | local ship_table = Ship:get_table(ship, "") |
− | table.insert(tbl.rows, {}) | + | if ship_table and ship_table._type then |
− | local row = tbl.rows[#tbl.rows]
| + | table.insert(tbl.rows, {}) |
− | row.id = arg_name
| + | local row = tbl.rows[#tbl.rows] |
− | row.ship = ship
| + | -- row.id = arg_name |
− | row.type = ship_table and ship_table._type or '?'
| + | row.ship = ship |
− | row.nodes = {}
| + | row.type = Formatting:format_ship_code(ship_table._type) or '?' |
− | for _, node in pairs(tbl.nodes) do
| + | row.nodes = {} |
− | row.nodes[node.name] = nil
| + | for _, node in pairs(tbl.nodes) do |
− | end
| + | row.nodes[node.name] = nil |
− | for node_and_diff in string.gmatch(nodes, args_grammar.comma_list) do
| + | end |
− | local node, diff = node_and_diff:match(args_grammar.node_and_diff)
| + | for node_and_diff in string.gmatch(nodes, args_grammar.comma_list) do |
− | if not node or not diff then
| + | local node, diff = node_and_diff:match(args_grammar.node_and_diff) |
− | node = node_and_diff:match(args_grammar.just_node)
| + | if not node or not diff then |
− | diff = nil
| + | node = node_and_diff:match(args_grammar.just_node) |
− | end
| + | diff = nil |
− | -- TODO: check node existence?
| + | end |
− | if node then
| + | if node then |
− | row.nodes[node] = { color = diff and diff_colors[diff] or diff_colors['?'], diff = diff and diff_names[diff] or '?' }
| + | row.nodes[node] = { color = diff and diff_colors[diff] or diff_colors['?'], diff = diff and diff_names[diff] or '?' } |
− | end
| + | end |
− | end
| + | end |
| + | end |
| end | | end |
| end | | end |