MineClone2/mods/CORE/events/oxidation.lua

40 lines
1.2 KiB
Lua

voxelibre.events.oxidation_chain = {"exposed", "weathered", "oxidized"}
local function set_oxidize(definitions)
local var = definitions._mcl_oxidized_variant
if var then
for count, level in pairs(voxelibre.events.oxidation_chain) do
if var:find(level) then
return var:gsub(level, voxelibre.events.oxidation_chain[count + 1])
end
end
end
end
local function set_identifier(identifier, definitions)
for count, level in pairs(voxelibre.events.oxidation_chain) do
if identifier:find(level) then
return identifier:gsub(level, voxelibre.events.oxidation_chain[count + 1])
end
end
return definitions._mcl_oxidized_variant:gsub("blocks:", "")
end
function voxelibre.events.register_decay_chain(identifier, definitions)
if definitions.groups.oxidizable then
local copy_defs = table.copy(definitions)
local new_id = set_identifier(identifier, definitions)
if copy_defs.description then
copy_defs.description = nil
end
set_oxidize(copy_defs)
copy_defs._mcl_stripped_variant = "blocks:"..identifier
voxelibre.register_block(new_id, copy_defs)
end
end