forked from Mirrorlandia_minetest/portalgun
53 lines
1.9 KiB
Lua
53 lines
1.9 KiB
Lua
|
stone_sounds = {}
|
||
|
stone_sounds.footstep = {name = "stone_walk", gain = 1.0}
|
||
|
stone_sounds.dug = {name = "stone_break", gain = 1.0}
|
||
|
stone_sounds.place = {name = "block_place", gain = 1.0}
|
||
|
glass_sounds = {}
|
||
|
glass_sounds.footstep = {name = "glass_walk", gain = 1.0}
|
||
|
glass_sounds.dug = {name = "glass_break", gain = 1.0}
|
||
|
glass_sounds.place = {name = "block_place", gain = 1.0}
|
||
|
wood_sounds = {}
|
||
|
wood_sounds.footstep = {name = "wood_walk", gain = 1.0}
|
||
|
wood_sounds.dug = {name = "wood_break", gain = 1.0}
|
||
|
wood_sounds.place = {name = "block_place", gain = 1.0}
|
||
|
local portaltarget_sig = {
|
||
|
{1, "portalgun_blue.png"},
|
||
|
{2, "portalgun_orange.png"}
|
||
|
}
|
||
|
|
||
|
for ii = 1, #portaltarget_sig, 1 do
|
||
|
minetest.register_node(
|
||
|
"portalgun:portaltarget_" .. portaltarget_sig[ii][1],
|
||
|
{
|
||
|
description = "Portal target " .. portaltarget_sig[ii][1],
|
||
|
tiles = {"portalgun_testblock.png^" .. portaltarget_sig[ii][2]},
|
||
|
groups = {mesecon = 2, cracky = 2},
|
||
|
mesecons = {receptor = {state = "off"}},
|
||
|
sounds = stone_sounds,
|
||
|
is_ground_content = false,
|
||
|
paramtype2 = "facedir",
|
||
|
paramtype = "light",
|
||
|
on_timer = function(pos, elapsed)
|
||
|
for i, ob in pairs(minetest.get_objects_inside_radius(pos, 2)) do
|
||
|
if
|
||
|
ob:get_luaentity() and ob:get_luaentity().portalgun and
|
||
|
ob:get_luaentity().project == portaltarget_sig[ii][1]
|
||
|
then
|
||
|
mesecon.receptor_on(pos)
|
||
|
|
||
|
return true
|
||
|
end
|
||
|
end
|
||
|
mesecon.receptor_off(pos)
|
||
|
return true
|
||
|
end,
|
||
|
on_construct = function(pos)
|
||
|
if not mesecon then
|
||
|
return false
|
||
|
end
|
||
|
minetest.get_node_timer(pos):start(2)
|
||
|
end
|
||
|
}
|
||
|
)
|
||
|
end
|