123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- local MT = minetest
- local vMod = vm_lighting_wand
- local play_sound = MT.settings:get_bool(vMod.modname .. "_sound", true)
- local play_particles = MT.settings:get_bool(vMod.modname .. "_particles", true)
- local play_wand_particles, play_wand_sound
- -- Main function to play effects
- vMod.play_effects = function(player_pos, node_pos)
- if play_sound then
- play_wand_sound(player_pos)
- end
- if play_particles then
- play_wand_particles(node_pos)
- end
- end
- play_wand_sound = function(pos)
- MT.sound_play(vMod.modname, {pos = pos, gain = 0.1, max_hear_distance = 6})
- end
- -- spawns particles at given pos
- local speed = 24
- play_wand_particles = function(pos)
- for _, color in pairs({"green", "red", "blue", "yellow"}) do
- MT.add_particlespawner(
- {
- amount = 20,
- time = 1,
- minpos = {x = pos.x + 2, y = pos.y + 2, z = pos.z + 2},
- maxpos = {x = pos.x - 2, y = pos.y - 2, z = pos.z - 2},
- minvel = {x = -1, y = -1, z = -1},
- maxvel = {x = 1, y = 1, z = 1},
- minacc = {x = -speed, y = -speed, z = -speed},
- maxacc = {x = speed, y = speed, z = speed},
- minexptime = 1,
- maxexptime = 3,
- minsize = 0.5,
- maxsize = 1.5,
- vertical = false,
- collisiondetection = false,
- texture = vMod.modname .. "_particle_" .. color .. ".png"
- }
- )
- end
- end
|