Module:Sandbox/Soreness: Difference between revisions

From Growtopia
Jump to navigationJump to search
>Sorenesss
mNo edit summary
>Sorenesss
mNo edit summary
 
(123 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
local raritylist = {}


local md5 = require('Module:Md5')
local md5 = require('Module:Md5')
 
local sc= {}
local sc = {}
local f = {}
local f = {}
local printset = {}
local printset = {}
Line 10: Line 9:
     local a = mw.loadData('Module:Item/Data')
     local a = mw.loadData('Module:Item/Data')
     return a[hash] or {-1, -1}
     return a[hash] or {-1, -1}
end
local function getItemName()
    local a = mw.loadData('Module:Sandbox/Soreness/Data')
    return a
end
end


Line 20: Line 24:
end
end


local function setContains(key)
local function setDoesntContains(set, key)
     return not f[key] == nil
     return set[key] == nil
end
end


function p.addtoList(frame)
local function addtoList(strname)
local name = frame.args["name"] or mw.title.getCurrentTitle().text
local rarity = getItemData(md5.md5(strname))[3]
local d = getItemData(md5.md5(name))
if rarity==999 then
local contains = setContains(d[3])
elseif setDoesntContains(f, rarity) then
if not contains then
addToSet(f, rarity)
addToSet(f, d[3])
table.insert(sc, {rarity})
table.insert(sc,"'''Rarity "..d[3]..":'''<br>")
table.insert(sc[#sc],"<br>'''Rarity "..rarity..": '''")
table.insert(sc[#sc],"[["..strname.."]]")
--table.insert(dpl,"{{#dpl:category = Rarity_"..rarity.."}}")
else
else
for i=1,#sc,1
for i=1,#sc,1
do
do
if sc[i] == "'''Rarity "..d[3]..":'''<br>" then
if sc[i][1] == rarity then
table.insert(s[d[i]],"[["..name.."]]")
doesntContain=true
for j=3, #sc, 1
do
if sc[i][j] == "[["..strname.."]]" then
doesntContain=false
end
end
if doesntContain then
table.insert(sc[i],"[["..strname.."]]")
end
end
end
end
end
Line 41: Line 56:
end
end


function p.ListRaritys()
function raritylist.list()
local x=1
local a = getItemName()
--table.insert(DEBUG, "1st contains: "..a[1].."\n")
for x=2, (a[1]+1),1
do
addtoList(a[x])
--table.insert(DEBUG, "add: "..a[x].." with hash: "..md5.md5(a[x]).." and rarity: "..getItemData(md5.md5(a[x]))[3])
x=x+1
end
----------------------------------All items listed in array-------------------------------------
table.sort(sc, function(a, b) return a[1] < b[1] end);
table.insert(printset, "'''Items by Rarity'''<br>".."''Last updated:'' "..(os.date("%B %d, %Y")))
for i=1, #sc, 1
for i=1, #sc, 1
do
do
for j=1,#sc[j], 1
table.remove(sc[i], 1)
table.insert(printset, sc[i][1])
table.remove(sc[i], 1)
table.sort(sc[i], function(a, b) return b:lower() > a:lower() end);
table.insert(printset, sc[i][1])
for j=2,#sc[i], 1
do
do
table.insert(printset, sc[i][j])
table.insert(printset, ", "..sc[i][j])
end
end
end
end
return table.concat(printset)
local x = table.concat(printset)
return x
end
end


return p
return raritylist

Latest revision as of 19:06, 9 May 2022

Documentation for this module may be created at Module:Sandbox/Soreness/doc

local raritylist = {}

local md5 = require('Module:Md5')
local sc= {}
local f = {}
local printset = {}

local function getItemData(hash)
    local a = mw.loadData('Module:Item/Data')
    return a[hash] or {-1, -1}
end

local function getItemName()
    local a = mw.loadData('Module:Sandbox/Soreness/Data')
    return a
end

local function addToSet(set, key)
    set[key] = true
end

local function removeFromSet(set, key)
    set[key] = nil
end

local function setDoesntContains(set, key)
    return set[key] == nil
end

local function addtoList(strname)
	local rarity = getItemData(md5.md5(strname))[3]
	if rarity==999 then
	elseif setDoesntContains(f, rarity) then
		addToSet(f, rarity)
		table.insert(sc, {rarity})
		table.insert(sc[#sc],"<br>'''Rarity "..rarity..": '''")
		table.insert(sc[#sc],"[["..strname.."]]")
		--table.insert(dpl,"{{#dpl:category = Rarity_"..rarity.."}}")
	else
		for i=1,#sc,1
		do
			if sc[i][1] == rarity then
				doesntContain=true
				for j=3, #sc, 1
				do
					if sc[i][j] == "[["..strname.."]]" then
						doesntContain=false
					end
				end
				if doesntContain then
					table.insert(sc[i],"[["..strname.."]]")
				end
			end
		end
	end
end

function raritylist.list()
	local x=1
	local a = getItemName()
	--table.insert(DEBUG, "1st contains: "..a[1].."\n")
	for x=2, (a[1]+1),1
	do
		addtoList(a[x])
		--table.insert(DEBUG, "add: "..a[x].." with hash: "..md5.md5(a[x]).." and rarity: "..getItemData(md5.md5(a[x]))[3])
		x=x+1
	end
	----------------------------------All items listed in array-------------------------------------
	table.sort(sc, function(a, b) return a[1] < b[1] end);
	table.insert(printset, "'''Items by Rarity'''<br>".."''Last updated:'' "..(os.date("%B %d, %Y")))
	for i=1, #sc, 1
	do
		table.remove(sc[i], 1)
		table.insert(printset, sc[i][1])
		table.remove(sc[i], 1)
		table.sort(sc[i], function(a, b) return b:lower() > a:lower() end);
		table.insert(printset, sc[i][1])
		for j=2,#sc[i], 1
		do
			table.insert(printset, ", "..sc[i][j])	
		end
	end
	local x = table.concat(printset)
	return x
end

return raritylist