Make dependency on Technic optional
parent
cdb78d3f9c
commit
904b226f00
|
@ -1,3 +1,3 @@
|
||||||
intllib?
|
intllib?
|
||||||
technic
|
technic?
|
||||||
default?
|
default?
|
||||||
|
|
54
init.lua
54
init.lua
|
@ -5,6 +5,26 @@ else
|
||||||
S = function ( s ) return s end
|
S = function ( s ) return s end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
teletool = {}
|
||||||
|
|
||||||
|
function teletool.teleport(player, pointed_thing)
|
||||||
|
local 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 = player: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})
|
||||||
|
player: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
|
||||||
|
|
||||||
|
if(minetest.get_modpath("technic") ~= nil) then
|
||||||
|
technic.register_power_tool("teletool:teletool", 50000)
|
||||||
|
teletool.on_refill = technic.refill_RE_charge
|
||||||
|
else
|
||||||
|
teletool.on_refill = nil
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_tool("teletool:teletool", {
|
minetest.register_tool("teletool:teletool", {
|
||||||
description = S("point teleporter"),
|
description = S("point teleporter"),
|
||||||
range = 20.0,
|
range = 20.0,
|
||||||
|
@ -13,23 +33,18 @@ minetest.register_tool("teletool:teletool", {
|
||||||
inventory_image = "teletool_teletool.png",
|
inventory_image = "teletool_teletool.png",
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
if(pointed_thing.type == "node") then
|
if(pointed_thing.type == "node") then
|
||||||
local meta = minetest.deserialize(itemstack:get_metadata())
|
local has_technic = minetest.get_modpath("technic") ~= nil
|
||||||
if not meta or not meta.charge then return end
|
if(has_technic) then
|
||||||
|
local meta = minetest.deserialize(itemstack:get_metadata())
|
||||||
if meta.charge >= 1000 then
|
if not meta or not meta.charge then return end
|
||||||
meta.charge = meta.charge - 1000
|
if meta.charge >= 1000 then
|
||||||
|
meta.charge = meta.charge - 1000
|
||||||
pos = pointed_thing.above
|
teletool.teleport(user, pointed_thing)
|
||||||
local over1 = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z})
|
technic.set_RE_wear(itemstack, meta.charge, 50000)
|
||||||
local over2 = minetest.get_node({x=pos.x,y=pos.y+2,z=pos.z})
|
itemstack:set_metadata(minetest.serialize(meta))
|
||||||
local src = user:getpos()
|
end
|
||||||
local dest = {x=pos.x, y=math.ceil(pos.y)-0.5, z=pos.z}
|
else
|
||||||
minetest.sound_play( {name="teletool_teleport1", gain=1}, {pos=src, max_hear_distance=12})
|
teletool.teleport(user, pointed_thing)
|
||||||
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)
|
|
||||||
|
|
||||||
technic.set_RE_wear(itemstack, meta.charge, 50000)
|
|
||||||
itemstack:set_metadata(minetest.serialize(meta))
|
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
@ -37,7 +52,7 @@ minetest.register_tool("teletool:teletool", {
|
||||||
|
|
||||||
-- Technic data
|
-- Technic data
|
||||||
wear_represents = "technic_RE_charge",
|
wear_represents = "technic_RE_charge",
|
||||||
on_refill = technic.refill_RE_charge
|
on_refill = teletool.on_refill,
|
||||||
})
|
})
|
||||||
|
|
||||||
if(minetest.get_modpath("default") ~= nil and minetest.get_modpath("technic") ~= nil) then
|
if(minetest.get_modpath("default") ~= nil and minetest.get_modpath("technic") ~= nil) then
|
||||||
|
@ -51,6 +66,3 @@ if(minetest.get_modpath("default") ~= nil and minetest.get_modpath("technic") ~=
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
if(minetest.get_modpath("technic") ~= nil) then
|
|
||||||
technic.register_power_tool("teletool:teletool", 50000)
|
|
||||||
end
|
|
||||||
|
|
Loading…
Reference in New Issue