-local cauldron = {}
+local cauldron, sounds = {}, {}
-- Add more ingredients here that make a soup.
local ingredients_list = {
{0, 0, 0, 16, 8, 16}
}
+function cauldron.stop_sound(pos)
+ local spos = minetest.hash_node_position(pos)
+ if sounds[spos] then minetest.sound_stop(sounds[spos]) end
+end
+
function cauldron.idle_construct(pos)
local timer = minetest.get_node_timer(pos)
timer:start(10.0)
+ cauldron.stop_sound(pos)
end
function cauldron.boiling_construct(pos)
+ local spos = minetest.hash_node_position(pos)
+ sounds[spos] = minetest.sound_play("xdecor_boiling_water", {
+ pos=pos, max_hear_distance=5, gain=0.8, loop=true
+ })
+
local meta = minetest.get_meta(pos)
- local timer = minetest.get_node_timer(pos)
meta:set_string("infotext", "Cauldron (active) - Drop some foods inside to make a soup")
+
+ local timer = minetest.get_node_timer(pos)
timer:start(5.0)
end
else
minetest.chat_send_player(clicker:get_player_name(),
"No room in your inventory to add a bucket of water.")
- return
+ return itemstack
end
else
itemstack:replace("bucket:bucket_water")
else
minetest.chat_send_player(clicker:get_player_name(),
"No room in your inventory to add a bowl of soup.")
- return
+ return itemstack
end
else
itemstack:replace("xdecor:bowl_soup 1")
end
minetest.set_node(pos, {name="xdecor:cauldron_empty", param2=node.param2})
- return itemstack
end
+ return itemstack
end
xdecor.register("cauldron_empty", {
on_rotate = screwdriver.rotate_simple,
tiles = {"xdecor_cauldron_top_empty.png", "xdecor_cauldron_sides.png"},
infotext = "Cauldron (empty)",
+ on_construct = function(pos)
+ cauldron.stop_sound(pos)
+ end,
on_rightclick = cauldron.filling,
collision_box = xdecor.pixelbox(16, cauldron.cbox)
})
collision_box = xdecor.pixelbox(16, cauldron.cbox),
on_rightclick = cauldron.filling,
on_construct = cauldron.boiling_construct,
+ on_destruct = function(pos)
+ cauldron.stop_sound(pos)
+ end,
on_timer = cauldron.boiling_timer
})
-minetest.register_alias("xdecor:cauldron_boiling_water", "xdecor:cauldron_boiling")
xdecor.register("cauldron_soup", {
groups = {cracky=2, oddly_breakable_by_hand=1, not_in_creative_inventory=1},
animation={type="vertical_frames", length=3.0}},
"xdecor_cauldron_sides.png"},
collision_box = xdecor.pixelbox(16, cauldron.cbox),
- on_rightclick = cauldron.take_soup
+ on_rightclick = cauldron.take_soup,
+ on_destruct = function(pos)
+ cauldron.stop_sound(pos)
+ end
})