123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- minetest.register_node("ufowreck:pad", {
- description = minetest.colorize("#0E0", "Alien ")..minetest.colorize("#A0F", "Teleport"),
- tiles = {
- "scifi_nodes_pad.png",
- "scifi_nodes_pad.png",
- "scifi_nodes_pad.png",
- "scifi_nodes_pad.png",
- "scifi_nodes_pad.png",
- "scifi_nodes_pad.png"
- },
- drawtype = "nodebox",
- paramtype = "light",
- groups = {cracky=1, oddly_breakable_by_hand=1},
- light_source = 5,
- mesecons = {effector = {
- rules = {
- {x=0, y=0, z=-1},
- {x=1, y=0, z=0},
- {x=-1, y=0, z=0},
- {x=0, y=0, z=1},
- {x=1, y=1, z=0},
- {x=1, y=-1, z=0},
- {x=-1, y=1, z=0},
- {x=-1, y=-1, z=0},
- {x=0, y=1, z=1},
- {x=0, y=-1, z=1},
- {x=0, y=1, z=-1},
- {x=0, y=-1, z=-1},
- {x=0, y=-1, z=0},
- },
- action_on = function (pos, node)
- local obj_list = minetest.get_objects_inside_radius(pos, 3)
- for _,obj in ipairs(obj_list) do
- if obj:is_player() then
- minetest.add_particlespawner(
- 25, --amount
- 1.5, --time
- {x=pos.x-0.9, y=pos.y-0.3, z=pos.z-0.9}, --minpos
- {x=pos.x+0.9, y=pos.y-0.3, z=pos.z+0.9}, --maxpos
- {x=0, y=0, z=0}, --minvel
- {x=0, y=0, z=0}, --maxvel
- {x=-0,y=1,z=-0}, --minacc
- {x=0,y=2,z=0}, --maxacc
- 0.5, --minexptime
- 1, --maxexptime
- 2, --minsize
- 5, --maxsize
- false, --collisiondetection
- "scifi_nodes_tp_part.png" --texture
- )
- local name = obj:get_player_name()
- minetest.after(1, function(name)
- minetest.sound_play("travelnet_travel", {pos = pos, gain = 0.75, max_hear_distance = 10,});
- local connected = minetest.get_connected_players()
- local still_con = false
- for _,player in pairs(connected) do
- local p_name = player:get_player_name()
- if p_name == name then
- still_con = true
- break
- end
- end
-
- if still_con == true then
- player = minetest.get_player_by_name(name)
- player:setpos({ x = pos.x + math.random(-1,1)*1000, y = pos.y, z = pos.z + math.random(-1,1)*1000})
- end
- end, name)
- end
- end
-
-
- end,
-
- }},
- on_rightclick = function(pos, node, clicker)
- minetest.add_particlespawner(
- 25, --amount
- 1.5, --time
- {x=pos.x-0.9, y=pos.y-0.3, z=pos.z-0.9}, --minpos
- {x=pos.x+0.9, y=pos.y-0.3, z=pos.z+0.9}, --maxpos
- {x=0, y=0, z=0}, --minvel
- {x=0, y=0, z=0}, --maxvel
- {x=-0,y=1,z=-0}, --minacc
- {x=0,y=2,z=0}, --maxacc
- 0.5, --minexptime
- 1, --maxexptime
- 2, --minsize
- 5, --maxsize
- false, --collisiondetection
- "scifi_nodes_tp_part.png" --texture
- )
- local name = clicker:get_player_name() or '|none'
- minetest.after(1, function(name)
- minetest.sound_play("travelnet_travel", {pos = pos, gain = 0.75, max_hear_distance = 10,});
- local connected = minetest.get_connected_players()
- local still_con = false
- for _,player in pairs(connected) do
- local p_name = player:get_player_name()
- if p_name == name then
- still_con = true
- break
- end
- end
- if still_con == true then
- player = minetest.get_player_by_name(name)
- player:setpos({ x = pos.x + math.random(-1,1)*1000, y = pos.y, z = pos.z + math.random(-1,1)*1000})
- end
- end, name)
- end,
- node_box = {
- type = "fixed",
- fixed = {
- {-0.9375, -0.5, -0.75, 0.875, -0.375, 0.75}, -- NodeBox1
- {-0.8125, -0.5, -0.875, 0.75, -0.375, 0.875}, -- NodeBox2
- {-0.875, -0.5, -0.8125, 0.8125, -0.375, 0.8125}, -- NodeBox3
- {-0.8125, -0.5, -0.75, 0.75, -0.3125, 0.75}, -- NodeBox4
- },
- sounds = default.node_sound_metal_defaults(),
- }
- })
- minetest.register_craft({
- output = "ufowreck:pad",
- recipe = {
- {"ufowreck:alien_metal", "ufowreck:alien_metal", "ufowreck:alien_metal"},
- {"ufowreck:alien_metal", "ufowreck:alien_control", "ufowreck:alien_metal"},
- {"ufowreck:alien_metal", "ufowreck:alien_metal", "ufowreck:alien_metal"}
- }
- })
|