97 lines
No EOL
2.6 KiB
Lua
97 lines
No EOL
2.6 KiB
Lua
-- butterflies/init.lua
|
|
|
|
-- Load support for MT game translation.
|
|
local S = minetest.get_translator("butterflies")
|
|
|
|
-- Legacy compatibility, when pointabilities don't exist, pointable is set to true.
|
|
local pointable_compat = not minetest.features.item_specific_pointabilities
|
|
|
|
-- register butterflies
|
|
local butter_list = {
|
|
{"white", S("White Butterfly")},
|
|
{"red", S("Red Butterfly")},
|
|
{"violet", S("Violet Butterfly")}
|
|
}
|
|
|
|
for i in ipairs (butter_list) do
|
|
local name = butter_list[i][1]
|
|
local desc = butter_list[i][2]
|
|
|
|
minetest.register_node("butterflies:butterfly_"..name, {
|
|
description = desc,
|
|
drawtype = "plantlike",
|
|
tiles = {{
|
|
name = "butterflies_butterfly_"..name.."_animated.png",
|
|
animation = {
|
|
type = "vertical_frames",
|
|
aspect_w = 16,
|
|
aspect_h = 16,
|
|
length = 3
|
|
},
|
|
}},
|
|
inventory_image = "butterflies_butterfly_"..name..".png",
|
|
wield_image = "butterflies_butterfly_"..name..".png",
|
|
waving = 1,
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
buildable_to = true,
|
|
walkable = false,
|
|
pointable = pointable_compat,
|
|
groups = {catchable = 1},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
|
|
},
|
|
floodable = true,
|
|
on_construct = function(pos)
|
|
minetest.get_node_timer(pos):start(1)
|
|
end,
|
|
on_timer = function(pos, elapsed)
|
|
if minetest.get_node_light(pos) < 11 then
|
|
minetest.set_node(pos, {name = "butterflies:hidden_butterfly_"..name})
|
|
end
|
|
minetest.get_node_timer(pos):start(30)
|
|
end
|
|
})
|
|
|
|
minetest.register_node("butterflies:hidden_butterfly_"..name, {
|
|
drawtype = "airlike",
|
|
inventory_image = "butterflies_butterfly_"..name..".png^default_invisible_node_overlay.png",
|
|
wield_image = "butterflies_butterfly_"..name..".png^default_invisible_node_overlay.png",
|
|
paramtype = "light",
|
|
sunlight_propagates = true,
|
|
walkable = false,
|
|
pointable = false,
|
|
diggable = false,
|
|
drop = "",
|
|
groups = {not_in_creative_inventory = 1},
|
|
floodable = true,
|
|
on_construct = function(pos)
|
|
minetest.get_node_timer(pos):start(1)
|
|
end,
|
|
on_timer = function(pos, elapsed)
|
|
if minetest.get_node_light(pos) >= 11 then
|
|
minetest.set_node(pos, {name = "butterflies:butterfly_"..name})
|
|
end
|
|
minetest.get_node_timer(pos):start(30)
|
|
end
|
|
})
|
|
end
|
|
|
|
-- restart butterfly timers
|
|
minetest.register_lbm({
|
|
name = "butterflies:butterfly_timer",
|
|
nodenames = {
|
|
"butterflies:butterfly_white",
|
|
"butterflies:butterfly_red",
|
|
"butterflies:butterfly_violet",
|
|
"butterflies:hidden_butterfly_white",
|
|
"butterflies:hidden_butterfly_red",
|
|
"butterflies:hidden_butterfly_violet",
|
|
},
|
|
run_at_every_load = true,
|
|
|
|
action = function(pos)
|
|
minetest.get_node_timer(pos):start(math.random(1,5))
|
|
end,
|
|
}) |