| Line 1: |
Line 1: |
| | + | local U = require("Module:Utils") |
| | local BaseData = require('Module:BaseData') | | local BaseData = require('Module:BaseData') |
| | | | |
| Line 55: |
Line 56: |
| | | | |
| | function Ship:get_table(name, model) | | function Ship:get_table(name, model) |
| − | --Catch a failed require
| + | local success, ship_table = U.requireModule(name) |
| − | local success, ship_table = pcall(function () return require(mw.ustring.format('Module:%s', name)) end) | |
| − | --require succeeded
| |
| | if success then | | if success then |
| | ship_table = ship_table[model] | | ship_table = ship_table[model] |
| − | if not ship_table then | + | if type(ship_table) == "string" then |
| − | --create a ShipData with what we have
| |
| − | ship_table = {_name = name, _suffix = model}
| |
| − | elseif type(ship_table) == "string" then
| |
| | ship_table = self:get_table(self:process_ship_key_as_reference(ship_table, name)) | | ship_table = self:get_table(self:process_ship_key_as_reference(ship_table, name)) |
| − | end
| + | end |
| − | --require failed
| + | end |
| − | else | + | if not ship_table then |
| − | --create a ShipData with what we have
| + | ship_table = { _name = name, _suffix = model } |
| − | ship_table = {_name = name, _suffix = model} | |
| | end | | end |
| | + | if ship_table._name == nil then |
| | + | ship_table._name = name |
| | + | end |
| | + | if ship_table._suffix == nil then |
| | + | ship_table._suffix = model |
| | + | end |
| | return ship_table | | return ship_table |
| | end | | end |