111 lines
2.7 KiB
Lua
111 lines
2.7 KiB
Lua
-- LUALOCALS < ---------------------------------------------------------
|
|
local minetest, nodecore
|
|
= minetest, nodecore
|
|
-- LUALOCALS > ---------------------------------------------------------
|
|
|
|
local modname = minetest.get_current_modname()
|
|
|
|
function nodecore.register_concrete(def)
|
|
def = nodecore.underride(def, {
|
|
name = def.description:lower():gsub("%W", "_"),
|
|
groups_powder = {
|
|
falling_node = 1,
|
|
falling_repose = 1,
|
|
concrete_powder = 1
|
|
},
|
|
groups_wet = {concrete_wet = 1},
|
|
swim_color = {a = 240, r = 32, g = 32, b = 32}
|
|
})
|
|
local basename = modname .. ":" .. def.name
|
|
def.basename = basename
|
|
|
|
if def.register_dry ~= false then
|
|
minetest.register_node(":" .. basename, {
|
|
description = def.description,
|
|
tiles = {def.tile_powder},
|
|
groups = def.groups_powder,
|
|
crush_damage = 1,
|
|
sounds = nodecore.sounds(def.sound),
|
|
concrete_def = def
|
|
})
|
|
end
|
|
|
|
if def.register_wet ~= false then
|
|
local wetdef = {
|
|
description = "Wet " .. def.description,
|
|
tiles = {def.tile_wet},
|
|
special_tiles = {def.tile_wet, def.tile_wet},
|
|
paramtype = "light",
|
|
liquid_viscosity = 15,
|
|
liquid_renewable = false,
|
|
liquid_range = 1,
|
|
liquid_alternative_flowing = basename .. "_wet_flowing",
|
|
liquid_alternative_source = basename .. "_wet_source",
|
|
walkable = false,
|
|
drowning = 2,
|
|
post_effect_color = def.swim_color,
|
|
groups = def.groups_wet,
|
|
sounds = nodecore.sounds(def.sound),
|
|
concrete_def = def
|
|
}
|
|
minetest.register_node(":" .. basename .. "_wet_source", nodecore.underride({
|
|
liquidtype = "source",
|
|
groups = {concrete_source = 1}
|
|
}, wetdef))
|
|
minetest.register_node(":" .. basename .. "_wet_flowing", nodecore.underride({
|
|
drawtype = "flowingliquid",
|
|
liquidtype = "flowing",
|
|
paramtype2 = "flowingliquid",
|
|
groups = {concrete_flow = 1}
|
|
}, wetdef))
|
|
end
|
|
|
|
if def.craft_mix ~= false then
|
|
nodecore.register_craft({
|
|
label = "mix " .. def.name .. " (fail)",
|
|
action = "pummel",
|
|
priority = 2,
|
|
toolgroups = {thumpy = 1},
|
|
normal = {y = 1},
|
|
indexkeys = def.craft_from_keys,
|
|
nodes = {
|
|
{
|
|
match = def.craft_from
|
|
},
|
|
{
|
|
x = 1,
|
|
y = -1,
|
|
match = {buildable_to = true}
|
|
},
|
|
{
|
|
y = -1,
|
|
match = "nc_fire:ash",
|
|
replace = "air"
|
|
}
|
|
},
|
|
before = function(pos)
|
|
nodecore.item_disperse(pos, "nc_fire:lump_ash", 8)
|
|
end
|
|
})
|
|
nodecore.register_craft({
|
|
label = "mix " .. def.name,
|
|
action = "pummel",
|
|
priority = 1,
|
|
toolgroups = {thumpy = 1},
|
|
normal = {y = 1},
|
|
indexkeys = def.craft_from_keys,
|
|
nodes = {
|
|
{
|
|
match = def.craft_from,
|
|
replace = "air"
|
|
},
|
|
{
|
|
y = -1,
|
|
match = "nc_fire:ash",
|
|
replace = basename
|
|
}
|
|
}
|
|
})
|
|
end
|
|
end
|