[aanmaken | geschiedenis | cache legen]Documentatie
Deze pagina heeft nog geen documentatie. Als je weet hoe het werkt, maak het dan alsjeblieft.-- Ga door een tabel in de volgorde zoals gegeven (http://lua-users.org/wiki/MakingLuaLikePhp)
function functioning_table( ... )
local newTable,keys,values={},{},{}
newTable.pairs=function(self) -- pairs iterator
local count=0
return function()
count=count+1
return keys[count],values[keys[count]]
end
end
setmetatable(newTable,{
__newindex=function(self,key,value)
if not self[key] then table.insert(keys,key)
elseif value==nil then -- Handle item delete
local count=1
while keys[count]~=key do count = count + 1 end
table.remove(keys,count)
end
values[key]=value -- replace/create
end,
__index=function(self,key) return values[key] end
})
for x=1,table.getn(arg) do -- door #args vervangen als dit werkt
for k,v in pairs(arg[x]) do newTable[k]=v end
end
return newTable
end
-- Hoofdletters (houdt ook rekening met 'ij')
function hoofdletter( str )
local pstr = '' -- pstr = Parsed STRing
if str:match('^%l%l') == 'ij' then
pstr = str:gsub('^ij', 'IJ')
else
pstr = str:gsub('^%l', string.upper)
end
return pstr
end
local aliases = {
-- Veelvoorkomende branstof --
['Elke brandstof'] = { 'Steenkool', 'Houtskool', { title = 'Stam', name = 'Eikenstam' }, { title = 'Houten planken', name = 'Eikenhouten planken' }, 'Steenkoolblok', 'Gedroogd kelpblok' },
-- Harnas --
['Leren harnas'] = { 'Leren kap', 'Leren tuniek', 'Leren broek', 'Leren laarzen' },
['Gouden harnas'] = { 'Gouden helm', 'Gouden borstplaat', 'Gouden beenstukken', 'Gouden laarzen' },
['Maliënharnas'] = { 'Maliënkap', 'Maliënkolder', 'Maliënbroek', 'Maliënlaarzen' },
['IJzeren harnas'] = { 'IJzeren helm', 'IJzeren borstplaat', 'IJzeren beenstukken', 'IJzeren laarzen' },
['Diamanten harnas'] = { 'Diamanten helm', 'Diamanten borstplaat', 'Diamanten beenstukken', 'Diamanten laarzen' },
['Netherieten harnas'] = { 'Netherieten helm', 'Netherieten borstplaat', 'Netherieten beenstukken', 'Netherieten laarzen' },
-- Overige namen --
['Gebroken dekschild'] = { title = 'Dekschild', name = 'Gebroken dekschild' },
-- Klei (blok) -> Klei
-- Klei -> Kleibal
['Bloemwapenbanierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&7Bloem' },
['Creeperwapenbanierpatroon'] = { title = '&eBanierpatroon', name = 'Banierpatroon', text = '&7Creeper' },
['Ingesprongen zoom-banierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&Ingesprongen zoom' },
['Metselwerkbanierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&7Metselwerk' },
['Schedelwapenbanierpatroon'] = { title = '&eBanierpatroon', name = 'Banierpatroon', text = '&7Schedel' },
['Mojanglogobanierpatroon'] = { title = '&dBanierpatroon', name = 'Banierpatroon', text = '&7Mojanglogo' },
['Globebanierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&7Globe' },
['Snuitbanierpatroon'] = { title = 'Banierpatroon', name = 'Banierpatroon', text = '&7Snuit' },
['Knop'] = { title = 'Knop', name = 'Stenen knop' },
['Houten knop'] = { title = 'Houten knop', name = 'Eikenhouten knop' },
['Kruisboog geladen met pijl'] = { title = 'Kruisboog', name = 'Kruisboog geladen met pijl' },
['Beschadigde kruisboog geladen met pijl'] = { title = 'Kruisboog', name = 'Beschadigde kruisboog geladen met pijl' },
['Kruisboog geladen met vuurpijl'] = { title = 'Kruisboog', name = 'Kruisboog geladen met vuurpijl' },
['Beschadigde kruisboog geladen met vuurpijl'] = { title = 'Kruisboog', name = 'Beschadigde kruisboog geladen met vuurpijl' },
['Illagerbanier'] = { title = '&6&oIllagerbanier', name = 'Illagerbanier', text =
'&7Turquoise lozanje/&7Lichtgrijs schildvoet/&7Grijze paal/&7Lichtgrijze zoom/&7Zwarte dwarsbalk/&7Lichtgrijsgebalkt'
},
['Puzzelblok'] = { title = '&dPuzzelblok', name = 'Puzzelblok' },
['Halfvolle bundel'] = { title = 'Bundel', name = 'Halfvolle bundel' },
['Volle bundel'] = { title = 'Bundel', name = 'Volle bundel' },
-- Wapens --
['Drietand'] = { name = 'Drietand', text = '/&7 Wanneer hoofdhand:/ &21,1 aanvalssnelheid/ &29 aanvalsschade' },
['Drietand (BE)'] = { name = 'Drietand', text = '/&9 +8 aanvalsschade' },
-- Bedrock- en Educationedities --
['Gebakken rundvlees'] = { title = 'Gebakken rundvlees', name = 'Biefstuk' },
['Kaart (BE)'] = { title = 'Kaart', name = 'Kaart', text = 'Toon markeerders: &cNee' },
['Kompas wijzend naar zeilsteen (BE)'] = { title = 'Kompas wijzend naar zeilsteen', name = 'Kompas wijzend naar zeilsteen (BE).gif' },
['Locatiekaart (BE)'] = { title = 'Kaart', name = 'Kaart', text = 'Toon markeerders: &aJa' },
['Sculksensor (BE)'] = { title = 'Sculksensor', name = 'Sculksensor (BE).gif' },
-- Chemie --
['Water (stof)'] = { title = 'Water', name = 'Water (stof)' },
['Chloride'] = { 'Calciumchloride', 'Ceriumchloride', 'Kaliumchloride', 'Kwikchloride', 'Wolfraamchloride' },
['Sterretjes'] = { 'Oranje sterretje', 'Blauw sterretje', 'Rood sterretje', 'Paars sterretje', 'Groen sterretje' },
['Overeenkomende chloride'] = { 'Calciumchloride', 'Ceriumchloride', 'Kaliumchloride', 'Kwikchloride', 'Wolfraamchloride' },
['Overeenkomende gekleurde fakkel'] = { 'Blauwe fakkel', 'Rode fakkel', 'Paarse fakkel', 'Groene fakkel' },
['Overeenkomende gloeistaaf'] = { 'Witte gloeistaaf', 'Oranje gloeistaaf', 'Magenta gloeistaaf', 'Lichtblauwe gloeistaaf',
'Gele gloeistaaf', 'Lichtgroene gloeistaaf', 'Roze gloeistaaf', 'Grijze gloeistaaf', 'Lichtgrijze gloeistaaf', 'Turquoise gloeistaaf',
'Paarse gloeistaaf', 'Blauwe gloeistaaf', 'Bruine gloeistaaf', 'Groene gloeistaaf', 'Rode gloeistaaf'
},
}
-- Tekstwolkkleuren & animatie --
-- Geen speciale tekstkleur (dus wit)
local geanimeerdeSprites = {
'Blauwe sleutel', 'Bellenkolom',
'Debugstok',
'Gele sleutel', 'Geschreven boek',
'Helrode schimmeldraden', 'Helrode stam',
'Klok', 'Kompas', 'Kompas wijzend naar zeilsteen',
'Lava',
'Magmablok',
'Netherportaal',
'Prismarien', 'Prismarienmuur', 'Prismarienplaat', 'Prismarientrap',
'Rode sleutel',
'Sculksensor', 'Spookachtige schimmeldraden', 'Spookachtige stam', 'Steenzaag',
'Vuur',
'Warmteblok', 'Water',
'Zeelantaarn', 'Zielenvuur',
}
for _, sprite in ipairs ( geanimeerdeSprites ) do
aliases[sprite] = sprite .. '.gif'
end
-- Gele tekst in tekstwolk en/of geanimeerd
local geleTekstwolken = {
{ naam = 'Beschadigd dekschild', geanimeerd = false },
{ naam = 'Betoverd boek', geanimeerd = true },
{ naam = 'Creeperhoofd', geanimeerd = false },
{ naam = 'Drakenhoofd', geanimeerd = false },
{ naam = 'Drakenadem', geanimeerd = false },
{ naam = 'Dekschild', geanimeerd = false },
{ naam = 'Hoofd', geanimeerd = false },
{ naam = 'Hart van de zee', geanimeerd = false },
{ naam = 'Magiërsextract', geanimeerd = true },
{ naam = 'Netherster', geanimeerd = true },
{ naam = 'Skelettenschedel', geanimeerd = false },
{ naam = 'Totem der onsterfelijkheid', geanimeerd = false },
{ naam = 'Witherskelettenschedel', geanimeerd = false },
{ naam = 'Zombiehoofd', geanimeerd = false }
}
for _, eigenschap in ipairs( geleTekstwolken ) do
local naam = eigenschap.naam
if eigenschap.geanimeerd == true then
aliases[naam] = { title = '&e', name = naam .. '.gif' }
else
aliases[naam] = { title = '&e', name = naam }
end
end
-- Aqua tekst in tekstwolk en/of geanimeerd
local aquaTekstwolken = {
{ naam = 'Baken', geanimeerd = false },
{ naam = 'Endkristal', geanimeerd = true },
{ naam = 'Gouden appel', geanimeerd = false },
{ naam = 'Kracht van de zee', geanimeerd = false }
}
for _, eigenschap in ipairs( aquaTekstwolken ) do
local naam = eigenschap.naam
if eigenschap.geanimeerd == true then
aliases[naam] = { title = '&b', name = naam .. '.gif' }
else
aliases[naam] = { title = '&b', name = naam }
end
end
-- Lichtpaarse tekst in tekstwolk en/of geanimeerd
local lichtpaarseTekstwolken = {
{ naam = 'Betoverde gouden appel', geanimeerd = true },
{ naam = 'Constructieblok', geanimeerd = false },
{ naam = 'Drakenei', geanimeerd = false },
{ naam = 'Gekoppeld opdrachtblok', geanimeerd = true },
{ naam = 'Herhalend opdrachtblok', geanimeerd = true },
{ naam = 'Opdrachtblok', geanimeerd = true },
{ naam = 'Kracht van de zee', geanimeerd = false }
}
for _, eigenschap in ipairs( lichtpaarseTekstwolken ) do
local naam = eigenschap.naam
if eigenschap.geanimeerd == true then
aliases[naam] = { title = '&b', name = naam .. '.gif' }
else
aliases[naam] = { title = '&b', name = naam }
end
end
local oranjeEnSchuingedrukteTekstwolken = {
{ naam = 'Onheilspellende banier', geanimeerd = false },
}
for _, eigenschap in ipairs( oranjeEnSchuingedrukteTekstwolken ) do
local naam = eigenschap.naam
if eigenschap.geanimeerd == true then
aliases[naam] = { title = '&6&o', name = naam .. '.gif' }
else
aliases[naam] = { title = '&6&o', name = naam }
end
end
-- Gereedschap en wapens --
local gereedschapsvormen = {
["zwaard"] = { vorm = 'onverbogen' },
["houweel"] = { vorm = 'verbogen' },
["bijl"] = { vorm = 'verbogen' },
["schep"] = { vorm = 'verbogen' },
["schoffel"] = { vorm = 'verbogen' },
}
-- Merk op dat deze gereedschapstabel geen normale tabel is. Hierom zijn de
-- verschillende materiaalsoorten opgesplitst in een eigen tabel. Zie ook de
-- functie die bovenaan staat.
local gereedschap = functioning_table({
['hout'] = {
{ gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 4, bedrock_aanvalsschade = 4 },
{ gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 2, bedrock_aanvalsschade = 2 },
{ gereedschap = 'bijl', aanvalssnelheid = '0,8', aanvalsschade = 7, bedrock_aanvalsschade = 3 },
{ gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '2,5', bedrock_aanvalsschade = 1 },
{ gereedschap = 'schoffel', aanvalssnelheid = 1, aanvalsschade = 1, bedrock_aanvalsschade = 2 },
}},{
['steen'] = {
{ gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 5, bedrock_aanvalsschade = 5 },
{ gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 3, bedrock_aanvalsschade = 3 },
{ gereedschap = 'bijl', aanvalssnelheid = '0,8', aanvalsschade = 9, bedrock_aanvalsschade = 4 },
{ gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '3,5', bedrock_aanvalsschade = 2 },
{ gereedschap = 'schoffel', aanvalssnelheid = 2, aanvalsschade = 1, bedrock_aanvalsschade = 3 },
}},{
['ijzer'] = {
{ gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 6, bedrock_aanvalsschade = 6 },
{ gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 4, bedrock_aanvalsschade = 4 },
{ gereedschap = 'bijl', aanvalssnelheid = '0,9', aanvalsschade = 9, bedrock_aanvalsschade = 5 },
{ gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '4,5', bedrock_aanvalsschade = 3 },
{ gereedschap = 'schoffel', aanvalssnelheid = 3, aanvalsschade = 1, bedrock_aanvalsschade = 4 },
}},{
['goud'] = {
{ gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 4, bedrock_aanvalsschade = 4 },
{ gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 2, bedrock_aanvalsschade = 2 },
{ gereedschap = 'bijl', aanvalssnelheid = 1, aanvalsschade = 7, bedrock_aanvalsschade = 3 },
{ gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '2,5', bedrock_aanvalsschade = 1 },
{ gereedschap = 'schoffel', aanvalssnelheid = 1, aanvalsschade = 1, bedrock_aanvalsschade = 2 },
}},{
['diamant'] = {
{ gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 7, bedrock_aanvalsschade = 7 },
{ gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 5, bedrock_aanvalsschade = 5 },
{ gereedschap = 'bijl', aanvalssnelheid = 1, aanvalsschade = 9, bedrock_aanvalsschade = 6 },
{ gereedschap = 'schep', aanvalssnelheid = 1, aanvalsschade = '5,5', bedrock_aanvalsschade = 4 },
{ gereedschap = 'schoffel', aanvalssnelheid = 4, aanvalsschade = 1, bedrock_aanvalsschade = 5 },
}},{
['Netheriet'] = {
{ gereedschap = 'zwaard', aanvalssnelheid = '1,6', aanvalsschade = 8, bedrock_aanvalsschade = 8 },
{ gereedschap = 'houweel', aanvalssnelheid = '1,2', aanvalsschade = 6, bedrock_aanvalsschade = 6 },
{ gereedschap = 'bijl', aanvalssnelheid = 1, aanvalsschade = 10, bedrock_aanvalsschade = 7 },
{ gereedschap = 'schep', aanvalssnelheid = '1,6', aanvalsschade = '6,5', bedrock_aanvalsschade = 5 },
{ gereedschap = 'schoffel', aanvalssnelheid = 4, aanvalsschade = 1, bedrock_aanvalsschade = 4 },
}})
local materiaalgroepen = functioning_table()
local gereedschapsgroepen = functioning_table()
for materiaalsoort, gereedschapsoort in gereedschap:pairs() do
local materiaalsoortVerbogen
if materiaalsoort == 'steen' then
materiaalsoortVerbogen = 'stenen'
else
materiaalsoortVerbogen = materiaalsoort .. 'en'
end
for _, eigenschappen in ipairs( gereedschapsoort ) do
-- Voeg eerst alle aliasen toe aan de tabel
materiaalsoortVerbogen = hoofdletter( materiaalsoortVerbogen )
local gereedschapsnaam = materiaalsoortVerbogen .. ' ' .. eigenschappen.gereedschap
aliases[gereedschapsnaam] = { name = gereedschapsnaam, text = '/&7Wanneer in hoofdhand:/ &2' .. eigenschappen.aanvalssnelheid .. ' aanvalssnelheid/ &2' .. eigenschappen.aanvalsschade .. ' aanvalsschade' }
aliases[gereedschapsnaam .. ' (BE)'] = { name = gereedschapsnaam, text = '/&9+' .. eigenschappen.bedrock_aanvalsschade .. ' aanvalsschade' }
local materiaalgroep = materiaalsoortVerbogen
local gereedschapsgroep = eigenschappen.gereedschap
-- Per materiaalgroep (m.u.v. zwaard)
if gereedschapsnaam:find('%(BE%)$') == nil then
if eigenschappen.gereedschap ~= 'zwaard' then
if materiaalgroepen[materiaalgroep] == nil then
materiaalgroepen[materiaalgroep] = {}
end
table.insert( materiaalgroepen[materiaalgroep], aliases[gereedschapsnaam] )
end
-- Per gereedschapsgroep
if gereedschapsgroepen[gereedschapsgroep] == nil then
gereedschapsgroepen[gereedschapsgroep] = {}
end
table.insert( gereedschapsgroepen[gereedschapsgroep], aliases[gereedschapsnaam] )
end
end
end
-- Zet materiaal en gereedschap gegroepeerd in aliasestabel
for materiaalgroep, voorwerpen in materiaalgroepen:pairs() do
local mg
if materiaalgroep == 'Netherieten' then
mg = materiaalgroep
else
mg = materiaalgroep:lower()
end
aliases['Elk ' .. mg .. ' gereedschap'] = voorwerpen
aliases['Overeenkomend ' .. mg .. ' gereedschap'] = voorwerpen
end
for gereedschapsgroep, voorwerpen in gereedschapsgroepen:pairs() do
local vorm = gereedschapsvormen[gereedschapsgroep].vorm
if vorm == 'onverbogen' then
aliases['Elk ' .. gereedschapsgroep] = voorwerpen
aliases['Overeenkomend ' .. gereedschapsgroep] = voorwerpen
elseif vorm == 'verbogen' then
aliases['Elke ' .. gereedschapsgroep] = voorwerpen
aliases['Overeenkomende ' .. gereedschapsgroep] = voorwerpen
end
end
--[[
Lijst met voorwerpvarianten. De parameter 'vorm' bepaalt of er 'elke' en
'overeenkomende' (verbogen) óf 'elk' en 'overeenkomend' (onverbogen) voor
komt te staan in de aliasestabel.
Merk op dat hoofdletters niet nodig zijn tussen de blokhaken.
]]
local voorwerpvarianten = {
['bloem'] = { vorm = 'verbogen', lijst = { 'Margriet', 'Korenbloem', 'Lelietje-van-dalen',
'Witherroos', 'Rode tulp', 'Oranje tulp', 'Witte tulp', 'Roze tulp', 'Porseleinsterretje',
'Look', 'Blauwe orchidee', 'Klaproos', 'Paardenbloem' } },
['paddenstoel'] = { vorm = 'verbogen', lijst = { 'Rode paddenstoel', 'Bruine paddenstoel' } },
['kwartsblok'] = { vorm = 'onverbogen', lijst = { 'Kwartsblok', 'Gebeiteld kwartsblok',
'Kwartspilaar' } },
['rood zandsteen'] = { vorm = 'onverbogen', lijst = { 'Rood zandsteen',
'Gesneden rood zandsteen', 'Gebeiteld rood zandsteen', 'Glad rood zandsteen' } },
['zandsteen'] = { vorm = 'onverbogen', lijst = { 'Zandsteen', 'Gesneden zandsteen',
'Gebeiteld zandsteen', 'Glad zandsteen' } },
['blokstenen'] = { vorm = 'verbogen', lijst = {'Blokstenen', 'Mossige blokstenen',
'Gebarsten blokstenen', 'Gebeitelde blokstenen'} },
['stenen plaat'] = { vorm = 'verbogen', lijst = { 'Stenen plaat', 'Gladde stenen plaat',
'Keistenen plaat', 'Mossige keistenen plaat', 'Blokstenen plaat',
'Mossige blokstenen plaat', 'Andesietplaat', 'Gepolijste andesietplaat', 'Diorietplaat',
'Gepolijste diorietplaat', 'Granietplaat', 'Gepolijste granietplaat', 'Zandstenen plaat',
'Gesneden zandstenen plaat', 'Gladde zandstenen plaat', 'Rode zandstenen plaat',
'Gesneden rode zandstenen plaat', 'Gladde rode zandstenen plaat', 'Bakstenen plaat',
{ title = 'Prismarienplaat', name = 'Prismarienplaat.gif' }, 'Prismarienblokstenen plaat',
'Donkerprismarienplaat', 'Netherbakstenen plaat', 'Rode Netherbakstenen plaat',
'Kwartsplaat', 'Gladde kwartsplaat', 'Purpurplaat', 'Endblokstenen plaat',
'Versteende eikenhouten plaat', 'Zwartstenen plaat', 'Gepolijste zwartstenen plaat',
'Gepolijste zwartstenen blokstenen plaat' } },
['stenen trap'] = { vorm = 'verbogen', lijst = { 'Stenen trap', 'Keistenen trap',
'Mossige keistenen trap', 'Blokstenen trap', 'Mossige blokstenen trap', 'Andesiettrap',
'Gepolijste andesiettrap', 'Dioriettrap', 'Gepolijste dioriettrap', 'Graniettrap',
'Gepolijste graniettrap', 'Zandstenen trap', 'Gladde zandstenen trap',
'Rode zandstenen trap', 'Gladde rode zandstenen trap', 'Bakstenen trap',
{ title = 'Prismarientrap', name = 'Prismarientrap.gif' }, 'Prismarienblokstenen trap',
'Donkerprismarientrap', 'Netherbakstenen trap', 'Rode Netherbakstenen trap', 'Kwartstrap',
'Gladde kwartstrap', 'Purpurtrap', 'Endblokstenen trap', 'Zwartstenen trap',
'Gepolijste zwartstenen trap', 'Gepolijste zwartstenen blokstenen trap' } },
['purpurblok'] = { vorm = 'onverbogen', lijst = { 'Purpurblok', 'Purpurpilaar' } },
['steen'] = { vorm = 'verbogen', lijst = { 'Steen', 'Andesiet', 'Graniet', 'Dioriet',
'Gepolijst andesiet', 'Gepolijst graniet', 'Gepolijst dioriet' } },
['steenachtig blok'] = { vorm = 'onverbogen', lijst = { 'Keisteen', 'Zwartsteen',
'Geplaveid wrevelsteen' } },
['tulp'] = { vorm = 'verbogen', lijst = { 'Rode tulp', 'Oranje tulp', 'Witte tulp',
'Roze tulp' } },
['prismarien'] = { vorm = 'onverbogen', lijst = { { title = 'Prismarien', name = 'Prismarien.gif' },
'Prismarienblokstenen', 'Donkerprismarien' } },
['erts'] = { vorm = 'verbogen', lijst = { 'Steenkoolerts', 'IJzererts', 'Gouderts',
'Lapislazuli-erts', 'Redstone-erts', 'Smaragderts', 'Diamanterts', 'Netherkwartserts',
'Nethergouderts' } },
['dood koraalblok'] = { vorm = 'onverbogen', lijst = { 'Dood buiskoraalblok',
'Dood hersenkoraalblok', 'Dood blaaskoraalblok', 'Dood brandkoraalblok',
'Dood hoornkoraalblok' } },
['dode koraalwaaier'] = { vorm = 'verbogen', lijst = { 'Dode buiskoraalwaaier',
'Dode hersenkoraalwaaier', 'Dode blaaskoraalwaaier', 'Dode brandkoraalwaaier',
'Dode hoornkoraalwaaier' } },
['muur'] = { vorm = 'verbogen', lijst = { 'Keistenen muur', 'Mossige keistenen muur',
'Blokstenen muur', 'Mossige blokstenen muur', 'Andesietmuur', 'Diorietmuur', 'Granietmuur',
'Zandstenen muur', 'Rode zandstenen muur', 'Bakstenen muur',
{ title = 'Prismarienmuur', name = 'Prismarienmuur.gif' }, 'Netherbakstenen muur',
'Rode Netherbakstenen muur', 'Endblokstenen muur', 'Zwartstenen muur',
'Gepolijste zwartstenen muur' } },
['fakkel'] = { vorm = 'verbogen', lijst = { 'Fakkel', 'Zielenfakkel' } },
['lantaarn'] = { vorm = 'verbogen', lijst = { 'Lantaarn', 'Zielenlantaarn' } },
['zwam'] = { vorm = 'verbogen', lijst = { 'Helrode zwam', 'Spookachtige zwam' } },
['wortels'] = { vorm = 'verbogen', lijst = { 'Helrode wortels', 'Spookachtige wortels' } },
['nylium'] = { vorm = 'onverbogen', lijst = { 'Helrood nylium', 'Spookachtig nylium' } },
['zielenzand'] = { vorm = 'onverbogen', lijst = { 'Zielenzand', 'Zielenaarde' } },
['kampvuur'] = { vorm = 'onverbogen', lijst = { 'Kampvuur', 'Zielenkampvuur' } },
['zwartsteen'] = { vorm = 'onverbogen', lijst = { 'Zwartsteen', 'Gepolijst zwartsteen',
'Gebeiteld gepolijst zwartsteen', 'Gepolijste zwartstenen blokstenen',
'Gebarsten gepolijste zwartstenen blokstenen' } },
['stenen knop'] = { vorm = 'verbogen', lijst = { 'Stenen knop', 'Gepolijste zwartstenen knop' } },
['stenen drukplaat'] = { vorm = 'verbogen', lijst = { 'Stenen drukplaat',
'Gepolijste zwartstenen drukplaat' } },
['Netherhouten drukplaat'] = { vorm = 'verbogen', lijst = { 'Helrode houten drukplaat',
'Spookachtige houten drukplaat' } },
['Netherhouten hek'] = { vorm = 'verbogen', lijst = { 'Helrood houten hek',
'Spookachtig houten hek' } },
['Netherhouten valluik'] = { vorm = 'verbogen', lijst = { 'Helrood houten valluik',
'Spookachtig houten valluik' } },
['Netherhouten poort'] = { vorm = 'verbogen', lijst = { 'Helrode houten poort',
'Spookachtige houten poort' } },
['Netherhouten trap'] = { vorm = 'verbogen', lijst = { 'Helrode houten trap',
'Spookachtige houten trap' } },
['Netherhouten deur'] = { vorm = 'verbogen', lijst = { 'Helrode houten deur',
'Spookachtige houten deur' } },
['Netherhouten bord'] = { vorm = 'verbogen', lijst = { 'Helrood houten bord',
'Spookachtig houten bord' } },
}
for aliasnaam, aliasinhoud in pairs( voorwerpvarianten ) do
if aliasinhoud.vorm == 'onverbogen' then
aliases['Elk ' .. aliasnaam] = aliasinhoud.lijst
aliases['Overeenkomend ' .. aliasnaam] = aliasinhoud.lijst
elseif aliasinhoud.vorm == 'verbogen' then
aliases['Elke ' .. aliasnaam] = aliasinhoud.lijst
aliases['Overeenkomende ' .. aliasnaam] = aliasinhoud.lijst
else
error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
end
end
-- Koper --
local kopervarianten = {
['Overeenkomend# (geoxideerd#) koperblok'] = { 'Koperblok', 'Blootgesteld# koperblok',
'Verweerd# koperblok', 'Geoxideerd# koperblok' },
['Overeenkomend# (geoxideerd#) gesneden koperblok'] = { 'Gesneden koperblok',
'Blootgesteld# gesneden koperblok', 'Verweerd# gesneden koperblok',
'Geoxideerd# gesneden koperblok' },
['Overeenkomend# ingewassen (geoxideerd#) koperblok'] = { 'Ingewassen koperblok',
'Ingewassen blootgesteld# koperblok', 'Ingewassen verweerd# koperblok' },
['Overeenkomend# ingewassen (geoxideerd#) gesneden koperblok'] = { 'Ingewassen gesneden koperblok',
'Ingewassen blootgesteld# gesneden koperblok', 'Ingewassen verweerd# gesneden koperblok' },
}
for key, values in pairs( kopervarianten ) do -- waarde in kopervariantentabel
for _, value in ipairs(values) do -- waarde in tabel van waarde kopervariantentabel
local geparseerdeSleutel = ''
local geparseerdeWaarde = ''
-- Koperblok
geparseerdeSleutel = key:gsub('#', '')
geparseerdeWaarde = value:gsub('#', '')
-- maak tabel als-ie niet bestaat
if aliases[geparseerdeSleutel] == nil then aliases[geparseerdeSleutel] = {} end
aliases[geparseerdeSleutel] = geparseerdeWaarde
-- Koperen plaat
geparseerdeSleutel = key:gsub('#', 'e'):gsub('blok$', 'en plaat')
geparseerdeWaarde = value:gsub('#', 'e'):gsub('blok$', 'en plaat')
if aliases[geparseerdeSleutel] == nil then aliases[geparseerdeSleutel] = {} end
aliases[geparseerdeSleutel] = geparseerdeWaarde
-- Koperen trap
geparseerdeSleutel = key:gsub('#', 'e'):gsub('blok$', 'en trap')
geparseerdeWaarde = value:gsub('#', 'e'):gsub('blok$', 'en trap')
if aliases[geparseerdeSleutel] == nil then aliases[geparseerdeSleutel] = {} end
aliases[geparseerdeSleutel] = geparseerdeWaarde
end
end
-- Muziekplaten --
local platen = {
{ nummer = '13', artiest = 'C418' },
{ nummer = 'cat', artiest = 'C418' },
{ nummer = 'blocks', artiest = 'C418' },
{ nummer = 'chirp', artiest = 'C418' },
{ nummer = 'far', artiest = 'C418' },
{ nummer = 'mall', artiest = 'C418' },
{ nummer = 'mellohi', artiest = 'C418' },
{ nummer = 'stal', artiest = 'C418' },
{ nummer = 'strad', artiest = 'C418' },
{ nummer = 'ward', artiest = 'C418' },
{ nummer = '11', artiest = 'C418' },
{ nummer = 'wait', artiest = 'C418' },
{ nummer = 'pigstep', artiest = 'Lena Raine' },
}
for _, plaat in ipairs( platen ) do
local naam = 'Muziekplaat ' .. plaat.nummer
aliases[naam] = { title = '&bMuziekplaat', name = naam, text = '&7' .. plaat.artiest .. ' - ' .. plaat.nummer }
end
--[[
Beschadigde voorwerpen.
De parameter 'vorm' kan de volgende waarden bevatten:
- onverbogen (zonder -e)
- verbogen (met -e)
]]
local beschadigdeVoorwerpen = {
{ naam = 'boog', vorm = 'verbogen' },
{ naam = 'dekschild', vorm = 'onverbogen' },
{ naam = 'diamanten beenstukken', vorm = 'verbogen' },
{ naam = 'diamanten bijl', vorm = 'verbogen' },
{ naam = 'diamanten borstplaat', vorm = 'verbogen' },
{ naam = 'diamanten helm', vorm = 'verbogen' },
{ naam = 'diamanten houweel', vorm = 'verbogen' },
{ naam = 'diamanten laarzen', vorm = 'verbogen' },
{ naam = 'diamanten schep', vorm = 'verbogen' },
{ naam = 'diamanten schoffel', vorm = 'verbogen' },
{ naam = 'diamanten zwaard', vorm = 'onverbogen' },
{ naam = 'gouden beenstukken', vorm = 'verbogen' },
{ naam = 'gouden bijl', vorm = 'verbogen' },
{ naam = 'gouden borstplaat', vorm = 'verbogen' },
{ naam = 'gouden helm', vorm = 'verbogen' },
{ naam = 'gouden houweel', vorm = 'verbogen' },
{ naam = 'gouden laarzen', vorm = 'verbogen' },
{ naam = 'gouden schep', vorm = 'verbogen' },
{ naam = 'gouden schoffel', vorm = 'verbogen' },
{ naam = 'gouden zwaard', vorm = 'onverbogen' },
{ naam = 'houten bijl', vorm = 'verbogen' },
{ naam = 'houten houweel', vorm = 'verbogen' },
{ naam = 'houten schep', vorm = 'verbogen' },
{ naam = 'houten schoffel', vorm = 'verbogen' },
{ naam = 'houten zwaard', vorm = 'onverbogen' },
{ naam = 'ijzeren beenstukken', vorm = 'verbogen' },
{ naam = 'ijzeren bijl', vorm = 'verbogen' },
{ naam = 'ijzeren borstplaat', vorm = 'verbogen' },
{ naam = 'ijzeren helm', vorm = 'verbogen' },
{ naam = 'ijzeren houweel', vorm = 'verbogen' },
{ naam = 'ijzeren laarzen', vorm = 'verbogen' },
{ naam = 'ijzeren schep', vorm = 'verbogen' },
{ naam = 'ijzeren schoffel', vorm = 'verbogen' },
{ naam = 'ijzeren zwaard', vorm = 'onverbogen' },
{ naam = 'leren broek', vorm = 'verbogen' },
{ naam = 'leren kap', vorm = 'verbogen' },
{ naam = 'leren tuniek', vorm = 'verbogen' },
{ naam = 'leren laarzen', vorm = 'verbogen' },
{ naam = 'maliënbroek', vorm = 'verbogen' },
{ naam = 'maliënkap', vorm = 'verbogen' },
{ naam = 'maliënkolder', vorm = 'verbogen' },
{ naam = 'maliënlaarzen', vorm = 'verbogen' },
{ naam = 'Netherieten beenstukken', vorm = 'verbogen' },
{ naam = 'Netherieten bijl', vorm = 'verbogen' },
{ naam = 'Netherieten borstplaat', vorm = 'verbogen' },
{ naam = 'Netherieten helm', vorm = 'verbogen' },
{ naam = 'Netherieten houweel', vorm = 'verbogen' },
{ naam = 'Netherieten laarzen', vorm = 'verbogen' },
{ naam = 'Netherieten schep', vorm = 'verbogen' },
{ naam = 'Netherieten schoffel', vorm = 'verbogen' },
{ naam = 'Netherieten zwaard', vorm = 'onverbogen' },
{ naam = 'kruisboog', vorm = 'verbogen' },
{ naam = 'schaar', vorm = 'verbogen' },
{ naam = 'schild', vorm = 'onverbogen' },
{ naam = 'spookachtige zwam aan een stok', vorm = 'verbogen' },
{ naam = 'stenen bijl', vorm = 'verbogen' },
{ naam = 'stenen houweel', vorm = 'verbogen' },
{ naam = 'stenen schep', vorm = 'verbogen' },
{ naam = 'stenen schoffel', vorm = 'verbogen' },
{ naam = 'stenen zwaard', vorm = 'onverbogen' },
{ naam = 'vishengel', vorm = 'verbogen' },
{ naam = 'vuursteen en staal', vorm = 'onverbogen' },
{ naam = 'wortel aan een stok', vorm = 'verbogen' },
}
for _, voorwerp in ipairs( beschadigdeVoorwerpen ) do
local naam = hoofdletter( voorwerp.naam )
if voorwerp.vorm == 'onverbogen' then
aliases['Beschadigd ' .. voorwerp.naam] = { title = naam, name = 'Beschadigd ' .. voorwerp.naam }
elseif voorwerp.vorm == 'verbogen' then
aliases['Beschadigde ' .. voorwerp.naam] = { title = naam, name = 'Beschadigde ' .. voorwerp.naam }
else
error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
end
end
-- Kleuren --
local kleuren = {
{ onverbogen = 'Wit', verbogen = 'Witte' },
{ onverbogen = 'Oranje', verbogen = 'Oranje' },
{ onverbogen = 'Magenta', verbogen = 'Magenta' },
{ onverbogen = 'Lichtblauw', verbogen = 'Lichtblauwe' },
{ onverbogen = 'Geel', verbogen = 'Gele' },
{ onverbogen = 'Lichtgroen', verbogen = 'Lichtgroene' },
{ onverbogen = 'Roze', verbogen = 'Roze' },
{ onverbogen = 'Grijs', verbogen = 'Grijze' },
{ onverbogen = 'Lichtgrijs', verbogen = 'Lichtgrijze' },
{ onverbogen = 'Turquoise', verbogen = 'Turquoise' },
{ onverbogen = 'Paars', verbogen = 'Paarse' },
{ onverbogen = 'Blauw', verbogen = 'Blauwe' },
{ onverbogen = 'Bruin', verbogen = 'Bruine' },
{ onverbogen = 'Groen', verbogen = 'Groene' },
{ onverbogen = 'Rood', verbogen = 'Rode' },
{ onverbogen = 'Zwart', verbogen = 'Zwarte' }
}
--[[
Banieren.
Parameters:
- vorm:
- onverbogen: geen -e
- verbogen: met -e
- voorzetsel: of 'met' tussen banier en patroon geplaatst moet worden
- spatie: of tussen kleur en patroon een spatie hoort te staan
]]
local banierpatronen = {
['andreaskruis'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['bloem'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['Creeper'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['dwarsbalk'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['gebalkt'] = { vorm = 'onverbogen', voorzetsel = false, spatie = false },
['gegolfd schildhoofd'] = { vorm = 'onverbogen', voorzetsel = true, spatie = false },
['gegolfd schildvoet'] = { vorm = 'onverbogen', voorzetsel = true, spatie = false },
['gepaald'] = { vorm = 'onverbogen', voorzetsel = false, spatie = false },
['globe'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['gradiënt'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['ingesprongen zoom'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['keper'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['koek'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['kruis'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['kwartier linksboven'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['kwartier linksonder'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['kwartier rechtsboven'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['kwartier rechtsonder'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['linkerpaal'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['linkerschuinbalk'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['lozanje'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['metselwerk'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['Mojanglogo'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['omgekeerd gebalkt'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
['omgekeerd gepaald'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
['omgekeerd schuinlinks verdeeld'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
['omgekeerd schuinrechts verdeeld'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
['paal'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['palen'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['rechterpaal'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['rechterschuinbalk'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['schedel'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['schildhoofd'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['schildvoet'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['schildvoetgradiënt'] = { vorm = 'onverbogen', voorzetsel = true, spatie = true },
['schuinlinks verdeeld'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
['schuinrechts verdeeld'] = { vorm = 'onverbogen', voorzetsel = false, spatie = true },
['snuit'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
['zoom'] = { vorm = 'verbogen', voorzetsel = true, spatie = true },
}
for patroon, eigenschappen in pairs( banierpatronen ) do
for _, kleur in ipairs( kleuren ) do
local patroonnaam = ''
if eigenschappen.vorm == 'onverbogen' then
if eigenschappen.voorzetsel == true and eigenschappen.spatie == true then
patroonnaam = 'Banier met ' .. kleur.onverbogen:lower() .. ' ' .. patroon
aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.onverbogen .. ' ' .. patroon }
elseif eigenschappen.voorzetsel == true and eigenschappen.spatie == false then
patroonnaam = 'Banier met ' .. kleur.onverbogen:lower() .. patroon
aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.onverbogen .. patroon }
elseif eigenschappen.voorzetsel == false and eigenschappen.spatie == true then
patroonnaam = 'Banier ' .. kleur.onverbogen:lower() .. ' ' .. patroon
aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.onverbogen .. ' ' .. patroon }
elseif eigenschappen.voorzetsel == false and eigenschappen.spatie == false then
patroonnaam = 'Banier ' .. kleur.onverbogen:lower() .. patroon
aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.onverbogen .. patroon }
else
error("Controleer waarden voor '" .. patroon .. "'.")
end
elseif eigenschappen.vorm == 'verbogen' then
if eigenschappen.voorzetsel == true and eigenschappen.spatie == true then
patroonnaam = 'Banier met ' .. kleur.verbogen:lower() .. ' ' .. patroon
aliases[patroonnaam] = { title = 'Banier', name = patroonnaam, text = '&7' .. kleur.verbogen .. ' ' .. patroon }
else
error("Fout bij maken aliases. Overige vormen van voorzetsel en spatie niet geïmplementeerd.")
end
else
error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
end
end
end
--[[
Gekleurde voorwerpen. Vuurwerksterren krijgen een aparte behandeling.
Parameters:
- vorm:
- onverbogen: geen -e
- verbogen: met -e
- spatie: of een spatie hoort te staan tussen kleur en voorwerp
- wit: of voorwerp met of zonder witte kleurstof moet worden gemaakt
- false: er worden twee aliasen gemaakt - één mét witte kleur
en één zonder. De alias zonder wit wordt 'gekleurd(e)'
genoemd
- true: er wordt één alias gemaakt, mét witte kleur
Overige:
- $1: kleur en vorm komen overeen
- $2: kleur en vorm komen niet overeen
In beide gevallen wordt de kleur als eerste ingevuld in correcte vorm.
Er wordt uitgegaan dat de kleur op de juiste locatie staat. Hierom
wordt de parameter 'spatie' niet meegenomen.
]]
local gekleurdeVoorwerpen = {
['ballon'] = { vorm = 'verbogen', spatie = true, wit = true },
['banier'] = { vorm = 'verbogen', spatie = true, wit = true },
['bed'] = { vorm = 'onverbogen', spatie = true, wit = false },
['beton'] = { vorm = 'onverbogen', spatie = true, wit = true },
['cement'] = { vorm = 'onverbogen', spatie = true, wit = true },
['geglazuurd terracotta'] = { vorm = 'onverbogen', spatie = false, wit = true },
['gehard $1gekleurd glas'] = { vorm = 'onverbogen', spatie = false, wit = true },
['geharde $2gekleurde glazen ruit'] = { vorm = 'verbogen', spatie = false, wit = true },
['gekleurd glas'] = { vorm = 'onverbogen', spatie = false, wit = true },
['$2gekleurde glazen ruit'] = { vorm = 'verbogen', spatie = false, wit = true },
['tapijt'] = { vorm = 'onverbogen', spatie = true, wit = false },
['terracotta'] = { vorm = 'onverbogen', spatie = true, wit = false },
['kaars'] = { vorm = 'verbogen', spatie = true, wit = false },
['kleurstof'] = { vorm = 'verbogen', spatie = true, wit = false },
['schild'] = { vorm = 'onverbogen', spatie = true, wit = true },
['Shulkerdoos'] = { vorm = 'verbogen', spatie = true, wit = true },
['wol'] = { vorm = 'verbogen', spatie = true, wit = false },
}
for voorwerp, eigenschappen in pairs( gekleurdeVoorwerpen ) do
local gekleurdeVoorwerpenAliases = {}
local voorwerpnaam = ''
local voorwerpalias = ''
for _, kleur in ipairs( kleuren ) do
if eigenschappen.vorm == 'onverbogen' then
if voorwerp:find( '%$1' ) then
local kl = kleur.onverbogen:lower()
voorwerpnaam = voorwerp:gsub( '%$1', kl )
voorwerpnaam = hoofdletter( voorwerpnaam )
table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
elseif voorwerp:find( '%$2' ) then
local kl = kleur.verbogen:lower()
voorwerpnaam = voorwerp:gsub( '%$2', kl )
voorwerpnaam = hoofdletter( voorwerpnaam )
table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
else
if eigenschappen.spatie == true then
voorwerpnaam = kleur.onverbogen .. ' ' .. voorwerp
table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
else
voorwerpnaam = kleur.onverbogen .. voorwerp
table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
end
end
elseif eigenschappen.vorm == 'verbogen' then
if voorwerp:find( '%$1' ) then
local kl = kleur.verbogen:lower()
voorwerpnaam = voorwerp:gsub( '%$1', kl )
voorwerpnaam = hoofdletter( voorwerpnaam )
table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
elseif voorwerp:find( '%$2' ) then
local kl = kleur.onverbogen:lower()
voorwerpnaam = voorwerp:gsub( '%$2', kl )
voorwerpnaam = hoofdletter( voorwerpnaam )
table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
else
if eigenschappen.spatie == true then
voorwerpnaam = kleur.verbogen .. ' ' .. voorwerp
table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
else
voorwerpnaam = kleur.verbogen .. voorwerp
table.insert( gekleurdeVoorwerpenAliases, voorwerpnaam )
end
end
else
error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
end
end
if eigenschappen.vorm == 'onverbogen' then
voorwerpalias = voorwerp:gsub( '%$%d', '' )
aliases['Elk ' .. voorwerpalias] = gekleurdeVoorwerpenAliases
aliases['Overeenkomend ' .. voorwerpalias] = gekleurdeVoorwerpenAliases
if eigenschappen.wit == false then
local alleenGekleurdeVoorwerpenAliases = mw.clone( gekleurdeVoorwerpenAliases )
local witWeg = table.remove( alleenGekleurdeVoorwerpenAliases, 1 ) -- verwijder het eerste element van de tabel (wit)
aliases['Elk gekleurd ' .. voorwerpalias] = alleenGekleurdeVoorwerpenAliases
aliases['Overeenkomend gekleurd ' .. voorwerpalias] = alleenGekleurdeVoorwerpenAliases
end
elseif eigenschappen.vorm == 'verbogen' then
voorwerpalias = voorwerp:gsub( '%$%d', '' )
aliases['Elke ' .. voorwerpalias] = gekleurdeVoorwerpenAliases
aliases['Overeenkomende ' .. voorwerpalias] = gekleurdeVoorwerpenAliases
if eigenschappen.wit == false then
local alleenGekleurdeVoorwerpenAliases = mw.clone( gekleurdeVoorwerpenAliases )
local witWeg = table.remove( alleenGekleurdeVoorwerpenAliases, 1 ) -- verwijder het eerste element van de tabel (wit)
aliases['Elke gekleurde ' .. voorwerpalias] = alleenGekleurdeVoorwerpenAliases
aliases['Overeenkomende gekleurde ' .. voorwerpalias] = alleenGekleurdeVoorwerpenAliases
end
else
error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
end
end
-- Vuurwerksterren --
local vuurwerksterren = {}
for _, kleur in ipairs( kleuren ) do
local naam = kleur.verbogen .. ' vuurwerkster'
aliases[naam] = { title = 'Vuurwerkster', name = naam, text = '&7' .. kleur.onverbogen }
table.insert( vuurwerksterren, aliases[naam] )
end
aliases['Elke vuurwerkster'] = vuurwerksterren
aliases['Overeenkomende vuurwerkster'] = vuurwerksterren
-- Dranken --
-- Geen effect
local geenEffecten = {
'Waterfles',
'Vreemde drank',
'Stroperige drank',
'Triviale drank',
'Onmaakbare drank',
'Spattende waterfles',
'Spattende vreemde drank',
'Spattende stroperige drank',
'Spattende triviale drank',
'Spattende onmaakbare drank',
'Aanhoudende waterfles',
'Aanhoudende vreemde drank',
'Aanhoudende stroperige drank',
'Aanhoudende triviale drank',
'Aanhoudende onmaakbare drank',
'Getipte pijl',
'Pijl der spatting',
'Onmaakbare getipte pijl'
}
for _, naam in ipairs( geenEffecten ) do
aliases[naam] = { name = naam, text = '&7Geen effecten' }
end
-- Begin lijst met dranken
local drankvoorwerpen = {
['drank'] = {
aliases['Waterfles'],
aliases['Vreemde drank'],
aliases['Stroperige drank'],
aliases['Triviale drank'],
},
['spattende drank'] = {
aliases['Spattende waterfles'],
aliases['Spattende vreemde drank'],
aliases['Spattende stroperige drank'],
aliases['Spattende triviale drank'],
},
['aanhoudende drank'] = {
aliases['Aanhoudende waterfles'],
aliases['Aanhoudende vreemde drank'],
aliases['Aanhoudende stroperige drank'],
aliases['Aanhoudende triviale drank'],
},
['getipte pijl'] = {
aliases['Pijl der spatting'],
aliases['Getipte pijl'],
aliases['Getipte pijl'],
aliases['Getipte pijl'],
}
}
--[[
Effecten.
Paramters:
- naam: naam van effect, inclusief genitief
- effect: naam van effect zelf, voorafgegaan door &9 (positief) of &c (negatief)
- versterking: met Romeinse cijfers aangegeven wat de versterking is
- duur: duur van het effect
- normaal: gewone & spattende drank voor normaal, verlengd en versterkt
- aanhoudend: aanhoudende drank voor normaal, verlengd en versterkt
- pijl: getipte pijl voor normaal, verlengd en versterkt
- in gevallen waar een drank meerdere effecten heeft (zoals der schildpadmeester) is de
formatting iets anders. In plaats van 'effect' heet deze parameter 'tekst'
]]
local effecten = {
{ naam = 'der regeneratie', effect = '&9Regeneratie', versterking = 'II',
duur = { normaal = { '0:45', '1:30', '0:22' }, aanhoudend = { '0:11', '0:22', '0:05' }, pijl = { '0:05', '0:11', '0:02' } } },
{ naam = 'der vlotheid', effect = '&9Snelheid', versterking = 'II',
duur = { normaal = { '3:00', '8:00', '1:30' }, aanhoudend = { '0:45', '2:00', '0:22' }, pijl = { '0:22', '1:00', '0:11' } } },
{ naam = 'der vuurbestendigheid', effect = '&9Vuurbestendigheid',
duur = { normaal = { '3:00', '8:00' }, aanhoudend = { '0:45', '2:00' }, pijl = { '0:22', '1:00' } } },
{ naam = 'des gifs', effect = '&cVergif', versterking = 'II',
duur = { normaal = { '0:45', '1:30', '0:21' }, aanhoudend = { '0:11', '0:22', '0:05' }, pijl = { '0:05', '0:11', '0:02' } } },
{ naam = 'der genezing', effect = '&9Onmiddellijke genezing', versterking = 'II' },
{ naam = 'des nachtzichts', effect = '&9Nachtzicht',
duur = { normaal = { '3:00', '8:00' }, aanhoudend = { '0:45', '2:00' }, pijl = { '0:22', '1:00' } } },
{ naam = 'der zwakheid', effect = '&cZwakheid',
duur = { normaal = { '1:30', '4:00' }, aanhoudend = { '0:22', '1:00' }, pijl = { '0:11', '0:30' } } },
{ naam = 'der kracht', effect = '&9Kracht', versterking = 'II',
duur = { normaal = { '3:00', '8:00', '1:30' }, aanhoudend = { '0:45', '2:00', '0:22' }, pijl = { '0:22', '1:00', '0:11' } } },
{ naam = 'der traagheid', effect = '&cTraagheid', versterking = 'IV',
duur = { normaal = { '1:30', '4:00', '0:20' }, aanhoudend = { '0:22', '1:00', '0:05' }, pijl = { '0:11', '0:30', '0:02' } } },
{ naam = 'der sprongen', effect = '&9Sprongversterking', versterking = 'II',
duur = { normaal = { '3:00', '8:00', '1:30' }, aanhoudend = { '0:45', '2:00', '0:22' }, pijl = { '0:22', '1:00', '0:11' } } },
{ naam = 'der verwonding', effect = '&cOnmiddellijke schade', versterking = 'II' },
{ naam = 'des wateradems', effect = '&9Wateradem',
duur = { normaal = { '3:00', '8:00' }, aanhoudend = { '0:45', '2:00' }, pijl = { '0:22', '1:00' } } },
{ naam = 'der onzichtbaarheid', effect = '&9Onzichtbaarheid',
duur = { normaal = { '3:00', '8:00' }, aanhoudend = { '0:45', '2:00' }, pijl = { '0:22', '1:00' } } },
{ naam = 'der valvertraging', effect = '&9Valvertraging',
duur = { normaal = { '1:30', '4:00' }, aanhoudend = { '0:22', '1:00' }, pijl = { '0:11', '0:30' } } },
{ naam = 'des geluks', effect = '&9Geluk',
duur = { normaal = { '5:00' }, aanhoudend = { '1:15' }, pijl = { '0:37' } } },
{ naam = 'der verval', effect = '&cVerschrompeling',
duur = { normaal = { '0:40' }, aanhoudend = { '0:10' }, pijl = { '0:05' } } },
-- Drank der schildpadmeester heeft speciale formatting nodig. Hierom volgt het niet het standaardformaat.
{ naam = 'der schildpadmeester', tekst = '&cTraagheid IV ($1)/&9Weerstand III ($1)', versterking = '&cTraagheid VI ($1)/&9Weerstand IV ($1)',
duur = { normaal = { '0:20', '0:40', '0:20' }, aanhoudend = { '0:15', '0:45', '0:15' }, pijl = { '0:07', '0:22', '0:07' } } },
}
local soorten = {
{ naam = 'Drank', duur = 'normaal', tekst = 'Drank ' },
{ naam = 'Spattende drank', duur = 'normaal', tekst = 'Spattende drank ' },
{ naam = 'Aanhoudende drank', duur = 'aanhoudend', tekst = 'Aanhoudende drank ' },
{ naam = 'Getipte pijl', duur = 'pijl', tekst = 'Pijl ' },
}
for _, effect in ipairs( effecten ) do
for _, soort in ipairs( soorten ) do
-- Maak naam van drank
local naam = soort.tekst .. effect.naam
local dranknaam = {}
if soort.naam == 'Getipte pijl' then
dranknaam = soort.tekst .. effect.naam
else
dranknaam = soort.tekst .. effect.naam .. '.gif'
end
-- Voeg duur toe als er een duur is
if effect.duur then
local duur = effect.duur[soort.duur]
-- Vervang $1 door tijden
if effect.tekst then
aliases[naam] = { name = dranknaam, text = effect.tekst:gsub( '%$1', duur[1] ) }
aliases[naam .. ' - verlengd'] = { name = dranknaam, text = effect.tekst:gsub( '%$1', duur[2] ) }
aliases[naam .. ' - versterkt'] = { name = dranknaam, text = effect.versterking:gsub( '%$1', duur[3] ) }
else
-- Er is altijd de normale variant
aliases[naam] = { name = dranknaam, text = string.format( '%s (%s)', effect.effect, duur[1] ) }
-- Verlengde variant als die er is
if duur[2] then
aliases[naam .. ' - verlengd'] = { name = dranknaam, text = string.format( '%s (%s)', effect.effect, duur[2] ) }
end
-- Versterkte variant als die er is
if effect.versterking then
aliases[naam .. ' - versterkt'] = { name = dranknaam, text = string.format( '%s %s (%s)', effect.effect, effect.versterking, duur[3] ) }
end
end
else
-- Anders is het drank zonder duur
aliases[naam] = { name = dranknaam, text = effect.effect }
-- Voeg de versterkte variant toe als die er is
if effect.versterking then
aliases[naam .. ' - versterkt'] = { name = dranknaam, text = effect.effect .. ' ' .. effect.versterking }
end
end
-- Voeg de standaarddrank toe aan de drankenlijst
table.insert( drankvoorwerpen[soort.naam:lower()], aliases[naam] )
end
end
-- Maak ten slotte de lijst met dranken
-- Op dit moment zijn alle drankvoorwerpen in de verbogen vorm, dus hoeft daar
-- geen rekening gehouden mee te worden.
for voorwerp, drankaliases in pairs( drankvoorwerpen ) do
aliases['Elke ' .. voorwerp] = drankaliases
aliases['Overeenkomende ' .. voorwerp] = drankaliases
end
--[[
Houtsoorten.
Parameters:
- vorm:
- onverbogen: geen -e
- verbogen: met -e
]]
local houtsoorten = {
bovenwereld = {
{ onverbogen = 'Eik', verbogen = 'Eiken' },
{ onverbogen = 'Spar', verbogen = 'Sparren' },
{ onverbogen = 'Berk', verbogen = 'Berken' },
{ onverbogen = 'Oerwoud', verbogen = 'Oerwoud' },
{ onverbogen = 'Acacia', verbogen = 'Acacia' },
{ onverbogen = 'Donkereik', verbogen = 'Donkereiken' },
},
Nether = {
{ onverbogen = 'Helrood', verbogen = 'Helrode' },
{ onverbogen = 'Spookachtig', verbogen = 'Spookachtige' },
}
}
--[[
Houten voorwerpen.
Parameters:
- vorm:
- onverbogen: geen -e
- verbogen: met -e
- bovenwereld: optioneel.
Naam van het blok in de bovenwereld.
- Nether: optioneel
Naam van het blok in de Nether.
- overige:
- $1: Gebruik de onverbogen variant van de houtsoort
- $1l: Zelfde als bovenstaande, maar in kleine letters - van :lower()
- $2: Gebruik de verbogen variant van de houtsoort
- $2l: Zelfde als bovenstaande, maar in kleine letters - van :lower()
]]
local houtenVoorwerpen = {
['hout'] = { vorm = 'onverbogen', bovenwereld = '$2hout' },
['gestript hout'] = { vorm = 'onverbogen', bovenwereld = 'Gestript $2lhout' },
['gestripte schimmeldraden'] = { vorm = 'verbogen', Nether = 'Gestripte $2l schimmeldraden' },
['gestripte stam'] = { vorm = 'verbogen', bovenwereld = 'Gestripte $2lstam', Nether = 'Gestripte $2l stam' },
['houten boot'] = { vorm = 'verbogen', bovenwereld = '$2houten boot' },
['houten bord'] = { vorm = 'onverbogen', bovenwereld = '$2houten bord', Nether = '$1 houten bord' },
['houten deur'] = { vorm = 'verbogen', bovenwereld = '$2houten deur', Nether = '$2 houten deur' },
['houten drukplaat'] = { vorm = 'verbogen', bovenwereld = '$2houten drukplaat', Nether = '$2 houten drukplaat' },
['houten hek'] = { vorm = 'onverbogen', bovenwereld = '$2houten hek', Nether = '$1 houten hek' },
['houten knop'] = { vorm = 'verbogen', bovenwereld = '$2houten knop', Nether = '$2 houten knop' },
['houten plaat'] = { vorm = 'verbogen', bovenwereld = '$2houten plaat', Nether = '$2 houten plaat' },
['houten planken'] = { vorm = 'verbogen', bovenwereld = '$2houten planken', Nether = '$2 houten planken' },
['houten poort'] = { vorm = 'verbogen', bovenwereld = '$2houten poort', Nether = '$2 houten poort' },
['houten trap'] = { vorm = 'verbogen', bovenwereld = '$2houten trap', Nether = '$2 houten trap' },
['houten valluik'] = { vorm = 'onverbogen', bovenwereld = '$2houten valluik', Nether = '$1 houten valluik' },
['kiemplant'] = { vorm = 'verbogen', bovenwereld = '$2kiemplant' },
['schimmeldraden'] = { vorm = 'verbogen', Nether = '$2 schimmeldraden' },
['stam'] = { vorm = 'verbogen', bovenwereld = '$2stam', Nether = '$2 stam' },
}
-- Geparseerd hout, door onderstaande drie for-loops gebruikt
local geparseerdHout = {}
-- Vul bovenstaande tabel
for groep, data in pairs( houtenVoorwerpen ) do
for wereld, houtsoortenInWereld in pairs( houtsoorten ) do
local geparseerdHoutenVoorwerp = ''
if data.bovenwereld and wereld == 'bovenwereld' then
for _, houttype in ipairs( houtsoortenInWereld ) do
geparseerdHoutenVoorwerp = data.bovenwereld:gsub('%$1l', houttype.verbogen:lower()):gsub('%$1', houttype.onverbogen):gsub('%$2l', houttype.verbogen:lower()):gsub('%$2', houttype.verbogen)
if geparseerdHout[groep .. ' - bovenwereld'] == nil then geparseerdHout[groep .. ' - bovenwereld'] = {} end
if geparseerdHout[groep] == nil then geparseerdHout[groep] = {} end
table.insert(geparseerdHout[groep .. ' - bovenwereld'], geparseerdHoutenVoorwerp)
table.insert(geparseerdHout[groep], geparseerdHoutenVoorwerp) -- compatibiliteit met vorige versie
end
end
if data.Nether and wereld == 'Nether' then
for _, houttype in ipairs( houtsoortenInWereld ) do
geparseerdHoutenVoorwerp = data.Nether:gsub('%$1l', houttype.verbogen:lower()):gsub('%$1', houttype.onverbogen):gsub('%$2l', houttype.verbogen:lower()):gsub('%$2', houttype.verbogen)
if geparseerdHout[groep .. ' - Nether'] == nil then geparseerdHout[groep .. ' - Nether'] = {} end
table.insert(geparseerdHout[groep .. ' - Nether'], geparseerdHoutenVoorwerp)
end
end
end
end
-- Voeg toe aan de aliasestabel
for houtPerWereld, voorwerpen in pairs( geparseerdHout ) do
local houtRegex = ''
if houtPerWereld:match( '%-' ) then
houtRegex = houtPerWereld:match( '(.+)%s%-' )
else
houtRegex = houtPerWereld
end
if houtenVoorwerpen[houtRegex].vorm == 'onverbogen' then
aliases['Elk ' .. houtPerWereld] = voorwerpen
aliases['Overeenkomend ' .. houtPerWereld] = voorwerpen
elseif houtenVoorwerpen[houtRegex].vorm == 'verbogen' then
aliases['Elke ' .. houtPerWereld] = voorwerpen
aliases['Overeenkomende ' .. houtPerWereld] = voorwerpen
else
error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
end
end
-- Zet hier blokken neer die samengevoegd moeten worden
-- volgorde: bovenwereld, Nether
local houtSamenvoegen = {
{ 'hout', 'schimmeldraden' },
{ 'gestript hout', 'gestripte schimmeldraden' },
{ 'gestripte stam' },
{ 'houten bord' },
{ 'houten deur' },
{ 'houten drukplaat' },
{ 'houten hek' },
{ 'houten knop' },
{ 'houten plaat' },
{ 'houten planken' },
{ 'houten poort' },
{ 'houten trap' },
{ 'houten valluik' },
{ 'stam' },
}
-- Merge two tables into one https://stackoverflow.com/a/43460349
function merge_tables( a, b )
local result = {}
for k,v in pairs ( a ) do
table.insert( result, v )
end
for k,v in pairs ( b ) do
table.insert( result, v )
end
return result
end
-- Voeg houten voorwerpen (bovenwereld en Nether) samen
for _, samenvoegen in ipairs( houtSamenvoegen ) do
local samengevoegd
if #samenvoegen > 1 then
local samenTeVoegenLinks = samenvoegen[1] -- zoals altijd fantastische
local samenTeVoegenRechts = samenvoegen[2] -- future-proofing
samengevoegd = merge_tables( geparseerdHout[samenTeVoegenLinks .. ' - bovenwereld'], geparseerdHout[samenTeVoegenRechts .. ' - Nether'] )
if houtenVoorwerpen[samenTeVoegenLinks].vorm == houtenVoorwerpen[samenTeVoegenRechts].vorm then
-- omdat beide vormen gelijk zijn aan elkaar, hoeft enkel één
-- opgehaald te worden
local vorm = houtenVoorwerpen[samenTeVoegenLinks].vorm
if vorm == 'onverbogen' then
aliases['Elk ' .. samenTeVoegenLinks .. ' of ' .. samenTeVoegenRechts] = samengevoegd
aliases['Overeenkomend ' .. samenTeVoegenLinks .. ' of ' .. samenTeVoegenRechts] = samengevoegd
elseif vorm == 'verbogen' then
aliases['Elke ' .. samenTeVoegenLinks .. ' of ' .. samenTeVoegenRechts] = samengevoegd
aliases['Overeenkomende ' .. samenTeVoegenLinks .. ' of ' .. samenTeVoegenRechts] = samengevoegd
else
error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'\nWaarde: " .. vorm)
end
else
-- beide vormen zijn verschillend, dus de linkervorm is het
-- tegenovergestelde van de rechter
local vormLinks = houtenVoorwerpen[samenTeVoegenLinks].vorm
if vormLinks == 'onverbogen' then
aliases['Elk ' .. samenTeVoegenLinks .. ' of elke ' .. samenTeVoegenRechts] = samengevoegd
aliases['Overeenkomend ' .. samenTeVoegenLinks .. ' of overeenkomende ' .. samenTeVoegenRechts] = samengevoegd
elseif vormLinks == 'verbogen' then
aliases['Elke ' .. samenTeVoegenLinks .. ' of elk ' .. samenTeVoegenRechts] = samengevoegd
aliases['Overeenkomende ' .. samenTeVoegenLinks .. ' of overeenkomend ' .. samenTeVoegenRechts] = samengevoegd
else
error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'\nWaarde: " .. vormLinks)
end
end
else
-- Er is slechts één element in de tabel, dus hoeft er geen rekening
-- gehouden te worden met of de vorm van beide verschillen of gelijk
-- zijn.
samenTeVoegen = samenvoegen[1]
samengevoegd = merge_tables( geparseerdHout[samenTeVoegen .. ' - bovenwereld'], geparseerdHout[samenTeVoegen .. ' - Nether'] )
if houtenVoorwerpen[samenTeVoegen].vorm == 'onverbogen' then
aliases['Elk ' .. samenTeVoegen .. ' - nieuw'] = samengevoegd
aliases['Overeenkomend ' .. samenTeVoegen .. ' - nieuw'] = samengevoegd
elseif houtenVoorwerpen[samenTeVoegen].vorm == 'verbogen' then
aliases['Elke ' .. samenTeVoegen .. ' - nieuw'] = samengevoegd
aliases['Overeenkomende ' .. samenTeVoegen .. ' - nieuw'] = samengevoegd
else
error("Eigenschap 'vorm' moet één van de volgende waarden bevatten:\n\t'verbogen'\n\t'onverbogen'")
end
end
end
-- Bedrock en console-specifieke voorwerpen --
local editievoorwerpen = {
['(BE)'] = {
'Acaciahouten poort',
'Baken', 'Betoveringstafel', 'Berkenhouten poort', 'Blauw ijs', 'Boog', 'Bosontdekkingskaart',
'Constructieleegte', 'Creeperhoofd',
'Donkereikenhouten poort', 'Drakenei', 'Drakenhoofd',
'Eikenhouten poort', 'Emmer kogelvis', 'Emmer tropische vis', 'Enderkist', 'Endpoort', 'Endportaal', 'Endportaalframe', 'Endstaf',
'Glazen ruit', 'Gloeisteen',
'Helrode houten poort', 'Honingblok', 'Hoofd', 'Hoornkoraalblok', 'Huilend obsidiaan',
"Jack-o'-lantern",
'Kaart', 'Kattenspawnei', 'Kist', 'Kist met valstrik', 'Kracht van de zee',
'Lava',
'Magmablok', 'Mijnkar met opdrachtblok', 'Monsterkooi',
'Observeerder', 'Oceaanontdekkingskaart', 'Oerwoudbladeren', 'Oerwoudhouten poort',
'Pandaspawnei', 'Pioenroos', 'Puzzelblok',
'Rondreizendehandelaarsspawnei', 'Rozenstruik',
'Skelettenschedel', 'Sparrenhouten poort', 'Spookachtige houten poort', 'Steiger', 'Stromende lava',
'Tralies',
'Witherskelettenschedel',
'Zeelantaarn', 'Zombiehoofd', 'Zwammenlicht',
},
['(LCE)'] = {
'Pioenroos',
'Rozenstruik',
'Struik'
}
}
for editie, voorwerpen in pairs( editievoorwerpen ) do
for _, voorwerp in ipairs( voorwerpen ) do
local naam = voorwerp .. ' ' .. editie
aliases[naam] = { title = voorwerp, name = naam }
end
end
-- Lichtblokken (BE)
for niveau = 0,15 do
aliases['Lichtblok ' .. niveau] = { title = 'Lichtblok', name = 'Lichtblok ' .. niveau }
end
return aliases