Changes

no edit summary
Line 1: Line 1:  
local U = require('Module:Core')
 
local U = require('Module:Core')
 
local EquipmentData = require('Module:EquipmentData')
 
local EquipmentData = require('Module:EquipmentData')
local EquipmentCollection = require('Module:Collection/Equipment')
+
 
 +
local EquipmentCollection = mw.loadData('Module:Collection/Equipment')
    
local Equipment = {}
 
local Equipment = {}
    
local equipments = {}
 
local equipments = {}
 +
 +
local function requireEquipmentModule(name)
 +
  local success, data = U.requireModule(name)
 +
  if not success then
 +
    success, data = U.requireModule('Data/Equipment/' .. name)
 +
  end
 +
  if not success then
 +
    success, data = U.requireModule('Data/EnemyEquipment/' .. name)
 +
  end
 +
  if not success then
 +
    success, data = U.requireModule('Data/Item/' .. name)
 +
  end
 +
  if not success then
 +
    success, data = U.requireModule('Data/PseudoItem/' .. name)
 +
  end
 +
  if not success then
 +
    data = U.find(EquipmentCollection, name, '_name') or {_name = name}
 +
  end
 +
  return data
 +
end
    
function Equipment:create(name)
 
function Equipment:create(name)
if not name then
+
  if not name then
return EquipmentData()
+
    return EquipmentData()
end
+
  end
if equipments[name] then
+
  if not equipments[name] then
return equipments[name]
+
    equipments[name] = EquipmentData(requireEquipmentModule(name))
end
+
  end
local success, equipment_table = U.requireModule(name)
+
  return equipments[name]
if not success then
  −
local eq = U.find(EquipmentCollection, name, '_name')
  −
local success2, equipment_table2
  −
if eq and (eq._module or eq._dev) then
  −
success2, equipment_table2 = U.requireModule(eq._module or eq._dev and name .. '/Dev')
  −
end
  −
equipment_table = success2 and equipment_table2 or eq or { _name = name }
  −
if eq and eq._module then
  −
equipment_table._module = eq._module
  −
end
  −
if eq and eq._dev then
  −
equipment_table._dev = eq._dev
  −
end
  −
end
  −
local equipment = EquipmentData(equipment_table)
  −
equipments[name] = equipment
  −
return equipment
   
end
 
end
    
function Equipment:get(stat, name)
 
function Equipment:get(stat, name)
return self:create(name)[stat]()
+
  return self:create(name)[stat]()
 
end
 
end
   −
function Equipment:get_module(name)
+
function Equipment:get_module(name, typeName)
return name and mw.ustring.format(
+
  return name and string.format('Module:Data/%s/%s', typeName or 'Equipment', name) or nil
    'Module:%s',
  −
    equipments[name] and (equipments[name]._module or equipments[name]._dev and name .. '/Dev') or name
  −
    ) or nil
   
end
 
end
    
function Equipment:extend(data)
 
function Equipment:extend(data)
data = data or {}
+
  data = data or {}
setmetatable(data, data)
+
  setmetatable(data, data)
data.__index = self
+
  data.__index = self
data.__call = self.__call
+
  data.__call = self.__call
return data
+
  return data
 
end
 
end
  
cssedit, gkautomate
6,926

edits