27 lines
1009 B
Lua
27 lines
1009 B
Lua
if (minetest.get_modpath("intllib")) then
|
|
dofile(minetest.get_modpath("intllib").."/intllib.lua")
|
|
S = intllib.Getter(minetest.get_current_modname())
|
|
else
|
|
S = function ( s ) return s end
|
|
end
|
|
|
|
minetest.register_tool("teletool:teletool", {
|
|
description = S("point teleporter"),
|
|
range = 20.0,
|
|
tool_capabilities = {},
|
|
wield_image = "teletool_teletool.png",
|
|
inventory_image = "teletool_teletool.png",
|
|
on_use = function(itemstack, user, pointed_thing)
|
|
if(pointed_thing.type == "node") then
|
|
pos = pointed_thing.above
|
|
local over1 = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
|
local over2 = minetest.get_node({x=pos.x,y=pos.y+2,z=pos.z})
|
|
local src = user:getpos()
|
|
local dest = {x=pos.x, y=math.ceil(pos.y)-0.5, z=pos.z}
|
|
minetest.sound_play( {name="teletool_teleport1", gain=1}, {pos=src, max_hear_distance=12})
|
|
user:setpos(dest)
|
|
minetest.after(0.5, function(dest) minetest.sound_play( {name="teletool_teleport2", gain=1}, {pos=dest, max_hear_distance=12}) end, dest)
|
|
end
|
|
end,
|
|
})
|