2018-04-02 12:39:41 +02:00
|
|
|
-- Register molten metals
|
|
|
|
|
|
|
|
fluidity.molten_metals = {}
|
|
|
|
|
|
|
|
local function firstToUpper(str)
|
|
|
|
return (str:gsub("^%l", string.upper))
|
|
|
|
end
|
|
|
|
|
|
|
|
function fluidity.get_metal_for_fluid(fluid)
|
|
|
|
for i,v in pairs(fluidity.molten_metals) do
|
|
|
|
if v == fluid then
|
|
|
|
return i
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function fluidity.register_molten_metal(metal)
|
|
|
|
local description = firstToUpper(metal)
|
2018-04-05 11:54:07 +02:00
|
|
|
local mod_name = minetest.get_current_modname()
|
|
|
|
fluidity.molten_metals[metal] = mod_name..":"..metal.."_source"
|
2018-04-02 12:39:41 +02:00
|
|
|
|
2018-04-05 11:54:07 +02:00
|
|
|
minetest.register_node(mod_name..":"..metal.."_source", {
|
2018-04-02 12:39:41 +02:00
|
|
|
description = "Molten "..description.." Source",
|
|
|
|
drawtype = "liquid",
|
|
|
|
tiles = {
|
|
|
|
{
|
|
|
|
name = "fluidity_"..metal.."_source_animated.png",
|
|
|
|
animation = {
|
|
|
|
type = "vertical_frames",
|
|
|
|
aspect_w = 16,
|
|
|
|
aspect_h = 16,
|
|
|
|
length = 3.0,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
special_tiles = {
|
|
|
|
{
|
|
|
|
name = "fluidity_"..metal.."_source_animated.png",
|
|
|
|
animation = {
|
|
|
|
type = "vertical_frames",
|
|
|
|
aspect_w = 16,
|
|
|
|
aspect_h = 16,
|
|
|
|
length = 3.0,
|
|
|
|
},
|
|
|
|
backface_culling = false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
paramtype = "light",
|
|
|
|
light_source = default.LIGHT_MAX - 1,
|
|
|
|
walkable = false,
|
|
|
|
pointable = false,
|
|
|
|
diggable = false,
|
|
|
|
buildable_to = true,
|
|
|
|
is_ground_content = false,
|
|
|
|
drop = "",
|
|
|
|
drowning = 1,
|
|
|
|
liquidtype = "source",
|
2018-04-05 11:54:07 +02:00
|
|
|
liquid_alternative_flowing = mod_name..":"..metal.."_flowing",
|
|
|
|
liquid_alternative_source = mod_name..":"..metal.."_source",
|
2018-04-02 12:39:41 +02:00
|
|
|
liquid_viscosity = 7,
|
|
|
|
liquid_renewable = false,
|
|
|
|
damage_per_second = 4 * 2,
|
|
|
|
post_effect_color = {a = 191, r = 255, g = 64, b = 0},
|
|
|
|
groups = {molten_metal = 1, lava = 1, liquid = 2, igniter = 1},
|
|
|
|
})
|
|
|
|
|
2018-04-05 11:54:07 +02:00
|
|
|
minetest.register_node(mod_name..":"..metal.."_flowing", {
|
2018-04-02 12:39:41 +02:00
|
|
|
description = "Flowing Molten "..description,
|
|
|
|
drawtype = "flowingliquid",
|
|
|
|
tiles = {"fluidity_"..metal..".png"},
|
|
|
|
special_tiles = {
|
|
|
|
{
|
|
|
|
name = "fluidity_"..metal.."_flowing_animated.png",
|
|
|
|
backface_culling = false,
|
|
|
|
animation = {
|
|
|
|
type = "vertical_frames",
|
|
|
|
aspect_w = 16,
|
|
|
|
aspect_h = 16,
|
|
|
|
length = 3.3,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name = "fluidity_"..metal.."_flowing_animated.png",
|
|
|
|
backface_culling = true,
|
|
|
|
animation = {
|
|
|
|
type = "vertical_frames",
|
|
|
|
aspect_w = 16,
|
|
|
|
aspect_h = 16,
|
|
|
|
length = 3.3,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
paramtype = "light",
|
|
|
|
paramtype2 = "flowingliquid",
|
|
|
|
light_source = default.LIGHT_MAX - 1,
|
|
|
|
walkable = false,
|
|
|
|
pointable = false,
|
|
|
|
diggable = false,
|
|
|
|
buildable_to = true,
|
|
|
|
is_ground_content = false,
|
|
|
|
drop = "",
|
|
|
|
drowning = 1,
|
|
|
|
liquidtype = "flowing",
|
2018-04-05 11:54:07 +02:00
|
|
|
liquid_alternative_flowing = mod_name..":"..metal.."_flowing",
|
|
|
|
liquid_alternative_source = mod_name..":"..metal.."_source",
|
2018-04-02 12:39:41 +02:00
|
|
|
liquid_viscosity = 7,
|
|
|
|
liquid_renewable = false,
|
|
|
|
damage_per_second = 4 * 2,
|
|
|
|
post_effect_color = {a = 191, r = 255, g = 64, b = 0},
|
|
|
|
groups = {molten_metal = 1, lava = 1, liquid = 2, igniter = 1,
|
|
|
|
not_in_creative_inventory = 1},
|
|
|
|
})
|
|
|
|
|
|
|
|
bucket.register_liquid(
|
2018-04-05 11:54:07 +02:00
|
|
|
mod_name..":"..metal.."_source",
|
|
|
|
mod_name..":"..metal.."_flowing",
|
|
|
|
mod_name..":bucket_"..metal,
|
|
|
|
mod_name.."_bucket_"..metal..".png",
|
2018-04-02 12:39:41 +02:00
|
|
|
"Molten "..description.." Bucket"
|
|
|
|
)
|
|
|
|
end
|