aboutsummaryrefslogtreecommitdiff
path: root/games/devtest/mods/testtools/particles.lua
diff options
context:
space:
mode:
Diffstat (limited to 'games/devtest/mods/testtools/particles.lua')
-rw-r--r--games/devtest/mods/testtools/particles.lua36
1 files changed, 36 insertions, 0 deletions
diff --git a/games/devtest/mods/testtools/particles.lua b/games/devtest/mods/testtools/particles.lua
new file mode 100644
index 000000000..18efe2572
--- /dev/null
+++ b/games/devtest/mods/testtools/particles.lua
@@ -0,0 +1,36 @@
+minetest.register_tool("testtools:particle_spawner", {
+ description = "Particle Spawner".."\n"..
+ "Punch: Spawn random test particle",
+ inventory_image = "testtools_particle_spawner.png",
+ groups = { testtool = 1, disable_repair = 1 },
+ on_use = function(itemstack, user, pointed_thing)
+ local pos = minetest.get_pointed_thing_position(pointed_thing, true)
+ if pos == nil then
+ if user then
+ pos = user:get_pos()
+ end
+ end
+ pos = vector.add(pos, {x=0, y=0.5, z=0})
+ local tex, anim
+ if math.random(0, 1) == 0 then
+ tex = "testtools_particle_sheet.png"
+ anim = {type="sheet_2d", frames_w=3, frames_h=2, frame_length=0.5}
+ else
+ tex = "testtools_particle_vertical.png"
+ anim = {type="vertical_frames", aspect_w=16, aspect_h=16, length=3.3}
+ end
+
+ minetest.add_particle({
+ pos = pos,
+ velocity = {x=0, y=0, z=0},
+ acceleration = {x=0, y=0.04, z=0},
+ expirationtime = 6,
+ collisiondetection = true,
+ texture = tex,
+ animation = anim,
+ size = 4,
+ glow = math.random(0, 5),
+ })
+ end,
+})
+