Difference between revisions of "Module:Silent1/sandbox"

From Idlescape Wiki
Jump to navigation Jump to search
m
m
Line 13: Line 13:
 
 
 
return loaded_data_modules[module_name][item]
 
return loaded_data_modules[module_name][item]
 +
end
 +
 +
function p.addSeparator(num)
 +
return tostring(num):reverse():gsub("(%d%d%d)","%1,"):gsub(",(%-?)$","%1"):reverse()
 
end
 
end
  
Line 19: Line 23:
 
local item = args[1]
 
local item = args[1]
 
local multi = args[2]
 
local multi = args[2]
 +
local separator = args[3]
 +
local price = 0
 
if multi == nil then
 
if multi == nil then
 
multi = 1
 
multi = 1
 
end
 
end
 
item = string.lower(item)
 
item = string.lower(item)
return p.loadPrice (item, 'price') * multi
+
price = p.loadPrice (item, 'price') * multi
 +
 +
if separator == nil then
 +
return price
 +
else
 +
return addSeparator(price)
 +
end
 
end
 
end
  
 
return p
 
return p

Revision as of 10:56, 10 February 2022


local p = {}

local data_module_names = {
	price = 'Module:MarketPrices/data'
}
local loaded_data_modules = {}

function p.loadPrice (item, data_type) 
	local module_name = data_module_names[data_type]
	if loaded_data_modules[module_name] == nil then
		loaded_data_modules[module_name] = mw.loadData(module_name)
	end
	
	return loaded_data_modules[module_name][item]
end

function p.addSeparator(num)
	return tostring(num):reverse():gsub("(%d%d%d)","%1,"):gsub(",(%-?)$","%1"):reverse()
end

function p._price(frame)
	local args = frame:getParent().args
	local item = args[1]
	local multi = args[2]
	local separator = args[3]
	local price = 0
	if multi == nil then
		multi = 1
	end
	item = string.lower(item)
	price = p.loadPrice (item, 'price') * multi
	
	if separator == nil then
		return price
	else
		return addSeparator(price)
	end
end

return p