mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-12-01 15:01:06 +01:00
Update potions to not hit player feet when thrown.
This commit is contained in:
parent
323223e5a1
commit
25d092a95e
3 changed files with 28 additions and 13 deletions
|
@ -78,7 +78,7 @@ function mcl_potions.register_lingering(name, descr, color, def)
|
||||||
local velocity = 10
|
local velocity = 10
|
||||||
local dir = placer:get_look_dir();
|
local dir = placer:get_look_dir();
|
||||||
local pos = placer:getpos();
|
local pos = placer:getpos();
|
||||||
local obj = minetest.add_entity({x=pos.x+dir.x,y=pos.y+2+dir.y,z=pos.z+dir.z}, id.."_flying")
|
local obj = minetest.add_entity({x=pos.x+(dir.x*2),y=pos.y+2+(dir.y*3),z=pos.z+(dir.z*2)}, id.."_flying")
|
||||||
obj:setvelocity({x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity})
|
obj:setvelocity({x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity})
|
||||||
obj:setacceleration({x=dir.x*-3, y=-9.8, z=dir.z*-3})
|
obj:setacceleration({x=dir.x*-3, y=-9.8, z=dir.z*-3})
|
||||||
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
||||||
|
|
|
@ -150,18 +150,33 @@ local function register_potion(def)
|
||||||
local splash_dur_2 = dur_2 * mcl_potions.SPLASH_FACTOR
|
local splash_dur_2 = dur_2 * mcl_potions.SPLASH_FACTOR
|
||||||
local ling_dur_2 = dur_2 * mcl_potions.LINGERING_FACTOR
|
local ling_dur_2 = dur_2 * mcl_potions.LINGERING_FACTOR
|
||||||
|
|
||||||
if def.name == "healing" then effect_II = 7 end
|
local splash_def_2
|
||||||
local splash_def_2 = {
|
if def.name == "healing" then
|
||||||
|
splash_def_2 = {
|
||||||
|
tt = get_tt(def._tt_2, 7, splash_dur_2),
|
||||||
|
potion_fun = get_splash_fun(7, splash_dur_2),
|
||||||
|
}
|
||||||
|
else
|
||||||
|
splash_def_2 = {
|
||||||
tt = get_tt(def._tt_2, effect_II, splash_dur_2),
|
tt = get_tt(def._tt_2, effect_II, splash_dur_2),
|
||||||
potion_fun = get_splash_fun(effect_II, splash_dur_2),
|
potion_fun = get_splash_fun(effect_II, splash_dur_2),
|
||||||
}
|
}
|
||||||
if def.name == "healing" or def.name == "harming" then
|
|
||||||
effect_II = def.effect*mcl_potions.II_FACTOR*mcl_potions.LINGERING_FACTOR
|
|
||||||
end
|
end
|
||||||
local ling_def_2 = {
|
|
||||||
|
|
||||||
|
local ling_def_2
|
||||||
|
if def.name == "healing" or def.name == "harming" then
|
||||||
|
ling_def_2 = {
|
||||||
|
tt = get_tt(def._tt_2, effect_II*mcl_potions.LINGERING_FACTOR, ling_dur_2),
|
||||||
|
potion_fun = get_lingering_fun(effect_II*mcl_potions.LINGERING_FACTOR, ling_dur_2),
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ling_def_2 = {
|
||||||
tt = get_tt(def._tt_2, effect_II, ling_dur_2),
|
tt = get_tt(def._tt_2, effect_II, ling_dur_2),
|
||||||
potion_fun = get_lingering_fun(effect_II, ling_dur_2),
|
potion_fun = get_lingering_fun(effect_II, ling_dur_2),
|
||||||
}
|
}
|
||||||
|
end
|
||||||
|
|
||||||
if def.color then
|
if def.color then
|
||||||
mcl_potions.register_splash(def.name.."_2", S("Splash "..def.description..desc_mod), def.color, splash_def_2)
|
mcl_potions.register_splash(def.name.."_2", S("Splash "..def.description..desc_mod), def.color, splash_def_2)
|
||||||
mcl_potions.register_lingering(def.name.."_2", S("Lingering "..def.description..desc_mod), def.color, ling_def_2)
|
mcl_potions.register_lingering(def.name.."_2", S("Lingering "..def.description..desc_mod), def.color, ling_def_2)
|
||||||
|
|
|
@ -20,7 +20,7 @@ function mcl_potions.register_splash(name, descr, color, def)
|
||||||
local velocity = 10
|
local velocity = 10
|
||||||
local dir = placer:get_look_dir();
|
local dir = placer:get_look_dir();
|
||||||
local pos = placer:get_pos();
|
local pos = placer:get_pos();
|
||||||
local obj = minetest.add_entity({x=pos.x+dir.x,y=pos.y+2+dir.y,z=pos.z+dir.z}, id.."_flying")
|
local obj = minetest.add_entity({x=pos.x+(dir.x*2),y=pos.y+2+(dir.y*3),z=pos.z+(dir.z*2)}, id.."_flying")
|
||||||
obj:set_velocity({x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity})
|
obj:set_velocity({x=dir.x*velocity,y=dir.y*velocity,z=dir.z*velocity})
|
||||||
obj:set_acceleration({x=dir.x*-3, y=-9.8, z=dir.z*-3})
|
obj:set_acceleration({x=dir.x*-3, y=-9.8, z=dir.z*-3})
|
||||||
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
||||||
|
|
Loading…
Reference in a new issue