summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api.lua29
1 files changed, 18 insertions, 11 deletions
diff --git a/api.lua b/api.lua
index 2654e20..5c0bed7 100644
--- a/api.lua
+++ b/api.lua
@@ -1,5 +1,5 @@
--- Mobs Api (8th November 2016)
+-- Mobs Api (22nd November 2016)
mobs = {}
mobs.mod = "redo"
@@ -238,9 +238,12 @@ function line_of_sight_water(self, pos1, pos2, stepsize)
end
-- particle effects
-function effect(pos, amount, texture, max_size, radius)
+function effect(pos, amount, texture, min_size, max_size, radius, gravity)
radius = radius or 2
+ min_size = min_size or 0.5
+ max_size = max_size or 1
+ gravity = gravity or -10
minetest.add_particlespawner({
amount = amount,
@@ -249,12 +252,12 @@ function effect(pos, amount, texture, max_size, radius)
maxpos = pos,
minvel = {x = -radius, y = -radius, z = -radius},
maxvel = {x = radius, y = radius, z = radius},
- minacc = {x = -radius, y = -radius, z = -radius},
- maxacc = {x = radius, y = radius, z = radius},
+ minacc = {x = 0, y = gravity, z = 0},
+ maxacc = {x = 0, y = gravity, z = 0},
minexptime = 0.1,
maxexptime = 1,
- minsize = 0.5,
- maxsize = (max_size or 1),
+ minsize = min_size,
+ maxsize = max_size,
texture = texture,
})
end
@@ -688,7 +691,7 @@ local function breed(self)
local pos = self.object:getpos()
- effect({x = pos.x, y = pos.y + 1, z = pos.z}, 4, "heart.png")
+ effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "heart.png", 3, 4, 1, 0.1)
local objs = minetest.get_objects_inside_radius(pos, 3)
local num = 0
@@ -1515,7 +1518,7 @@ local do_states = function(self, dtime)
self.object:remove()
- effect(pos, 15, "tnt_smoke.png", 5)
+ effect(pos, 15, "tnt_smoke.png")
return
end
@@ -2688,7 +2691,7 @@ function mobs:explosion(pos, radius, fire, smoke, sound)
minetest.set_node(p, {name = "air"})
if smoke > 0 then
- effect(p, 2, "tnt_smoke.png", 5)
+ effect(p, 2, "tnt_smoke.png")
end
end
end
@@ -2741,8 +2744,12 @@ function mobs:register_arrow(name, def)
if def.tail
and def.tail == 1
and def.tail_texture then
--- effect(pos, 1, def.tail_texture, 10, 0)
+ effect(pos, 1, def.tail_texture,
+ def.tail_size or 5,
+ def.tail_size or 10,
+ 0, 0) -- 0 radius and 0 gravity to just hover
+--[[
minetest.add_particlespawner({
amount = 1,
time = 0.25,
@@ -2757,7 +2764,7 @@ function mobs:register_arrow(name, def)
minsize = def.tail_size or 5,
maxsize = def.tail_size or 10,
texture = def.tail_texture,
- })
+ })]]
end
if self.hit_node then