forked from VoxeLibre/VoxeLibre
40 lines
1.2 KiB
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
|