| Line 1: |
Line 1: |
| | + | local U = require('Module:Core') |
| | + | local ShipClassData = require('Module:ShipClassData') |
| | + | |
| | local ShipClass = {} | | local ShipClass = {} |
| | + | |
| | local ship_classes = {} | | local ship_classes = {} |
| | | | |
| − | local ShipClassData = require('Module:ShipClassData') | + | local function requireShipClassModule(name) |
| | + | local success, data = U.requireModule(name) |
| | + | if not success then |
| | + | success, data = U.requireModule('Data/ShipClass/' .. name) |
| | + | end |
| | + | if not success or not data.class then |
| | + | data = {class = {_name = name}} |
| | + | end |
| | + | return data.class |
| | + | end |
| | | | |
| | function ShipClass:create(name) | | function ShipClass:create(name) |
| − | if model == nil then
| + | if not name then |
| − | model = ""
| + | return ShipClassData() |
| − | end
| + | end |
| − | --check if we already have it
| + | if not ship_classes[name] then |
| − | local ship_class = ship_classes[name]
| + | ship_classes[name] = ShipClassData(requireShipClassModule(name)) |
| − | if ship_class then
| + | end |
| − | return ship_class
| + | return ship_classes[name] |
| − | else
| |
| − | --Catch a failed require
| |
| − | local success, ship_class_table = pcall(function () return require(mw.ustring.format('Module:%s', name)) end)
| |
| − | --require failed
| |
| − | if success then
| |
| − | ship_class_table = ship_class_table.class
| |
| − | if not ship_class_table then
| |
| − | --create a ShipClassData with what we have
| |
| − | ship_class_table = {_name = name}
| |
| − | end
| |
| − | else
| |
| − | --create a ShipClassData with what we have
| |
| − | ship_class_table = {_name = name}
| |
| − | end
| |
| − | ship_class = ShipClassData(ship_class_table)
| |
| − | ship_classes[name] = ship_class
| |
| − | return ship_class
| |
| − | end
| |
| | end | | end |
| | | | |