Spawn particles for lock break
parent
130cbb44fa
commit
07906961fb
|
@ -12,6 +12,8 @@ local INFOTEXT_CRACKED_PUBLIC = N("Locked Chest (cracked open)")
|
||||||
local INFOTEXT_CRACKED_OWNED = N("Locked Chest (cracked open) (Owned by @1)")
|
local INFOTEXT_CRACKED_OWNED = N("Locked Chest (cracked open) (Owned by @1)")
|
||||||
local INFOTEXT_NAMED_OWNED = N("@1 (Owned by @2)")
|
local INFOTEXT_NAMED_OWNED = N("@1 (Owned by @2)")
|
||||||
|
|
||||||
|
local GRAVITY = minetest.settings:get("movement_gravity") or 9.81
|
||||||
|
|
||||||
locks = {}
|
locks = {}
|
||||||
|
|
||||||
-- Settings
|
-- Settings
|
||||||
|
@ -130,6 +132,47 @@ minetest.register_tool(
|
||||||
end
|
end
|
||||||
achievements.trigger_achievement(player, "burglar")
|
achievements.trigger_achievement(player, "burglar")
|
||||||
minetest.sound_play({name="locks_unlock",gain=0.8},{pos=pos, max_hear_distance=16}, true)
|
minetest.sound_play({name="locks_unlock",gain=0.8},{pos=pos, max_hear_distance=16}, true)
|
||||||
|
|
||||||
|
-- Spawn particles at lock to indicate lock break
|
||||||
|
local dir = minetest.facedir_to_dir(node.param2)
|
||||||
|
local w = 1/16
|
||||||
|
local k = 11/16
|
||||||
|
local l = 7/16
|
||||||
|
local vup, vdn, vs, v0 = 0.1, -0.2, 0.5, 0
|
||||||
|
local minoff, maxoff, minvel, maxvel
|
||||||
|
if dir.x > 0 then
|
||||||
|
minoff = vector.new(-k, -w, -w)
|
||||||
|
maxoff = vector.new(-l, w, w)
|
||||||
|
minvel = vector.new(-vs, vdn, -vs)
|
||||||
|
maxvel = vector.new(v0, vup, vs)
|
||||||
|
elseif dir.x < 0 then
|
||||||
|
minoff = vector.new(l, -w, -w)
|
||||||
|
maxoff = vector.new(k, w, w)
|
||||||
|
minvel = vector.new(v0, vdn, -vs)
|
||||||
|
maxvel = vector.new(vs, vup, vs)
|
||||||
|
elseif dir.z > 0 then
|
||||||
|
minoff = vector.new(-w, -w, -k)
|
||||||
|
maxoff = vector.new(w, w, -l)
|
||||||
|
minvel = vector.new(-vs, vdn, v0)
|
||||||
|
maxvel = vector.new(vs, vup, vs)
|
||||||
|
elseif dir.z < 0 then
|
||||||
|
minoff = vector.new(-w, -w, l)
|
||||||
|
maxoff = vector.new(w, w, k)
|
||||||
|
minvel = vector.new(-vs, vdn, -vs)
|
||||||
|
maxvel = vector.new(vs, vup, v0)
|
||||||
|
end
|
||||||
|
if minoff then
|
||||||
|
minetest.add_particlespawner({
|
||||||
|
amount = 12,
|
||||||
|
time = 0.001,
|
||||||
|
pos = { min = vector.add(pos, minoff), max = vector.add(pos, maxoff) },
|
||||||
|
vel = { min = minvel, max = maxvel },
|
||||||
|
acc = { min = vector.new(0, 0, 0), max = vector.new(0, -GRAVITY, 0) },
|
||||||
|
size = 1.2,
|
||||||
|
exptime = { min = 0.60, max = 0.65 },
|
||||||
|
texture = "rp_locks_particle_lock.png",
|
||||||
|
})
|
||||||
|
end
|
||||||
else
|
else
|
||||||
-- Failure!
|
-- Failure!
|
||||||
minetest.sound_play({name="locks_pick",gain=0.5},{pos=pos, max_hear_distance=16}, true)
|
minetest.sound_play({name="locks_pick",gain=0.5},{pos=pos, max_hear_distance=16}, true)
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 513 B |
Loading…
Reference in New Issue