mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-08-21 17:37:25 +02:00
147 lines
4.8 KiB
Lua
147 lines
4.8 KiB
Lua
local init = os.clock()
|
|
|
|
local block = {}
|
|
|
|
block.dyes = {
|
|
{"white", "White", "white"},
|
|
{"grey", "Grey", "dark_grey"},
|
|
{"silver", "Light Grey", "grey"},
|
|
{"black", "Black", "black"},
|
|
{"red", "Red", "red"},
|
|
{"yellow", "Yellow", "yellow", true},
|
|
{"green", "Green", "dark_green"},
|
|
{"cyan", "Cyan", "cyan"},
|
|
{"blue", "Blue", "blue"},
|
|
{"magenta", "Magenta", "magenta", true},
|
|
{"orange", "Orange", "orange"},
|
|
{"purple", "Purple", "violet", true},
|
|
{"brown", "Brown", "brown"},
|
|
{"pink", "Pink", "pink"},
|
|
{"lime", "Lime", "green"},
|
|
{"light_blue", "Light Blue", "lightblue"},
|
|
}
|
|
|
|
minetest.register_node("mcl_colorblocks:hardened_clay", {
|
|
description = "Hardened Clay",
|
|
tiles = {"hardened_clay.png"},
|
|
stack_max = 64,
|
|
groups = {pickaxey=1, hardened_clay=1,building_block=1},
|
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
|
_mcl_blast_resistance = 21,
|
|
_mcl_hardness = 1.25,
|
|
})
|
|
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "mcl_colorblocks:hardened_clay",
|
|
recipe = "mcl_core:clay",
|
|
cooktime = 10,
|
|
})
|
|
|
|
|
|
for _, row in ipairs(block.dyes) do
|
|
local name = row[1]
|
|
local desc = row[2]
|
|
local craft_color_group = row[3]
|
|
-- TODO: Remove when all 16 terracotta textures are available
|
|
local terracotta = row[4]
|
|
-- Node Definition
|
|
minetest.register_node("mcl_colorblocks:hardened_clay_"..name, {
|
|
description = desc.." Hardened Clay",
|
|
tiles = {"hardened_clay_stained_"..name..".png"},
|
|
groups = {pickaxey=1, hardened_clay=1,building_block=1},
|
|
stack_max = 64,
|
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
|
_mcl_blast_resistance = 21,
|
|
_mcl_hardness = 1.25,
|
|
})
|
|
|
|
minetest.register_node("mcl_colorblocks:concrete_powder_"..name, {
|
|
description = desc.." Concrete Powder",
|
|
tiles = {"mcl_colorblocks_concrete_powder_"..name..".png"},
|
|
groups = {handy=1,shovely=1, concrete_powder=1,building_block=1,falling_node=1},
|
|
stack_max = 64,
|
|
is_ground_content = false,
|
|
sounds = mcl_sounds.node_sound_sand_defaults(),
|
|
|
|
-- Specify the node to which this node will convert after getting in contact with water
|
|
_mcl_colorblocks_harden_to = "mcl_colorblocks:concrete_"..name,
|
|
_mcl_blast_resistance = 2.5,
|
|
_mcl_hardness = 0.5,
|
|
})
|
|
|
|
minetest.register_node("mcl_colorblocks:concrete_"..name, {
|
|
description = desc.." Concrete",
|
|
tiles = {"mcl_colorblocks_concrete_"..name..".png"},
|
|
groups = {handy=1,pickaxey=1, concrete=1,building_block=1},
|
|
stack_max = 64,
|
|
is_ground_content = false,
|
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
|
_mcl_blast_resistance = 9,
|
|
_mcl_hardness = 1.8,
|
|
})
|
|
|
|
if terracotta then
|
|
local tex = "mcl_colorblocks_glazed_terracotta_"..name..".png"
|
|
local texes = { tex, tex, tex.."^[transformR180", tex, tex.."^[transformR270", tex.."^[transformR90" }
|
|
minetest.register_node("mcl_colorblocks:glazed_terracotta_"..name, {
|
|
description = desc.." Glazed Terracotta",
|
|
tiles = texes,
|
|
groups = {handy=1,pickaxey=1, glazed_terracotta=1,building_block=1},
|
|
paramtype2 = "facedir",
|
|
stack_max = 64,
|
|
is_ground_content = false,
|
|
sounds = mcl_sounds.node_sound_stone_defaults(),
|
|
_mcl_blast_resistance = 7,
|
|
_mcl_hardness = 1.4,
|
|
})
|
|
end
|
|
|
|
-- Crafting recipes
|
|
if craft_color_group then
|
|
minetest.register_craft({
|
|
output = 'mcl_colorblocks:hardened_clay_'..name..' 8',
|
|
recipe = {
|
|
{'mcl_colorblocks:hardened_clay', 'mcl_colorblocks:hardened_clay', 'mcl_colorblocks:hardened_clay'},
|
|
{'mcl_colorblocks:hardened_clay', 'mcl_dye:'..craft_color_group, 'mcl_colorblocks:hardened_clay'},
|
|
{'mcl_colorblocks:hardened_clay', 'mcl_colorblocks:hardened_clay', 'mcl_colorblocks:hardened_clay'},
|
|
},
|
|
})
|
|
minetest.register_craft({
|
|
type = "shapeless",
|
|
output = 'mcl_colorblocks:concrete_powder_'..name..' 8',
|
|
recipe = {
|
|
'mcl_core:sand', 'mcl_core:gravel', 'mcl_core:sand',
|
|
'mcl_core:gravel', 'mcl_dye:'..craft_color_group, 'mcl_core:gravel',
|
|
'mcl_core:sand', 'mcl_core:gravel', 'mcl_core:sand',
|
|
}
|
|
})
|
|
|
|
if terracotta then
|
|
minetest.register_craft({
|
|
type = "cooking",
|
|
output = "mcl_colorblocks:glazed_terracotta_"..name,
|
|
recipe = "mcl_colorblocks:hardened_clay_"..name,
|
|
cooktime = 10,
|
|
})
|
|
end
|
|
end
|
|
end
|
|
|
|
-- When water touches concrete powder, it turns into concrete of the same color
|
|
minetest.register_abm({
|
|
label = "Concrete powder hardening",
|
|
interval = 1,
|
|
chance = 1,
|
|
nodenames = {"group:concrete_powder"},
|
|
neighbors = {"group:water"},
|
|
action = function(pos, node)
|
|
local harden_to = minetest.registered_nodes[node.name]._mcl_colorblocks_harden_to
|
|
minetest.swap_node(pos, { name = harden_to, param = node.param, param2 = node.param2 })
|
|
end,
|
|
})
|
|
|
|
local time_to_load= os.clock() - init
|
|
print(string.format("[MOD] "..minetest.get_current_modname().." loaded in %.4f s", time_to_load))
|
|
|