Heart particles while cats are purring
This commit is contained in:
parent
89dfd5313a
commit
cd5ea51967
32
pet.lua
32
pet.lua
@ -1,8 +1,8 @@
|
|||||||
-- LUALOCALS < ---------------------------------------------------------
|
-- LUALOCALS < ---------------------------------------------------------
|
||||||
local math, minetest, nodecore, pairs, vector
|
local math, minetest, nodecore, pairs, vector
|
||||||
= math, minetest, nodecore, pairs, vector
|
= math, minetest, nodecore, pairs, vector
|
||||||
local math_abs, math_random
|
local math_abs, math_floor, math_random
|
||||||
= math.abs, math.random
|
= math.abs, math.floor, math.random
|
||||||
-- LUALOCALS > ---------------------------------------------------------
|
-- LUALOCALS > ---------------------------------------------------------
|
||||||
|
|
||||||
local modname = minetest.get_current_modname()
|
local modname = minetest.get_current_modname()
|
||||||
@ -54,6 +54,32 @@ local function playernear(pos)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function hearticles(pos, offs, time, qty)
|
||||||
|
minetest.add_particlespawner({
|
||||||
|
amount = math_floor(2 * qty),
|
||||||
|
time = time,
|
||||||
|
minpos = vector.add(pos, offs),
|
||||||
|
maxpos = vector.subtract(pos, offs),
|
||||||
|
texture = "nc_cats_heart.png",
|
||||||
|
minexptime = 1,
|
||||||
|
maxexptime = 2,
|
||||||
|
minsize = 1,
|
||||||
|
maxsize = 2,
|
||||||
|
glow = 4
|
||||||
|
})
|
||||||
|
end
|
||||||
|
local function hearticles_all(pos, time, qty)
|
||||||
|
local pdist = 0.55
|
||||||
|
for _, d in pairs({
|
||||||
|
{p = {x = pdist, y = 0, z = 0}, o = {x = 0, y = pdist, z = pdist}},
|
||||||
|
{p = {x = 0, y = pdist, z = 0}, o = {x = pdist, y = 0, z = pdist}},
|
||||||
|
{p = {x = 0, y = 0, z = pdist}, o = {x = pdist, y = pdist, z = 0}},
|
||||||
|
}) do
|
||||||
|
hearticles(vector.add(pos, d.p), d.o, time, qty)
|
||||||
|
hearticles(vector.subtract(pos, d.p), d.o, time, qty)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function purr(pos, data)
|
local function purr(pos, data)
|
||||||
purring[hashpos(pos)] = nodecore.gametime
|
purring[hashpos(pos)] = nodecore.gametime
|
||||||
|
|
||||||
@ -65,6 +91,7 @@ local function purr(pos, data)
|
|||||||
gain = purrgain,
|
gain = purrgain,
|
||||||
not_ephemeral = fade
|
not_ephemeral = fade
|
||||||
})
|
})
|
||||||
|
hearticles_all(pos, purrtimes[id], purrtimes[id])
|
||||||
if fade then
|
if fade then
|
||||||
minetest.sound_fade(sh, -purrgain / purrtimes[id], 0)
|
minetest.sound_fade(sh, -purrgain / purrtimes[id], 0)
|
||||||
return minetest.after(purrtimes[id], function()
|
return minetest.after(purrtimes[id], function()
|
||||||
@ -104,6 +131,7 @@ local function furballcheck(pos, node, ejectpos)
|
|||||||
end
|
end
|
||||||
local function purrstart(pos, data)
|
local function purrstart(pos, data)
|
||||||
furballcheck(pos)
|
furballcheck(pos)
|
||||||
|
hearticles_all(pos, 0.05, 1)
|
||||||
return purr(pos, data)
|
return purr(pos, data)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
BIN
textures/nc_cats_heart.png
Normal file
BIN
textures/nc_cats_heart.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 154 B |
Loading…
x
Reference in New Issue
Block a user