summaryrefslogtreecommitdiff
path: root/mesecons_detector
diff options
context:
space:
mode:
authorJeija <norrepli@gmail.com>2012-12-11 19:49:55 +0100
committerJeija <norrepli@gmail.com>2012-12-11 19:49:55 +0100
commitde46729b971b5e59394834b8a01d4a7005318114 (patch)
tree5a2cf1f18b485ddefa8e255ac6d6a600ef2e2e12 /mesecons_detector
parent31f3c99288355193dc68a6e83dfc63140fd02fa0 (diff)
parent5540fcbcb31eb32003fa0391113ed3b1dea25e47 (diff)
downloadmesecons-de46729b971b5e59394834b8a01d4a7005318114.tar
mesecons-de46729b971b5e59394834b8a01d4a7005318114.tar.gz
mesecons-de46729b971b5e59394834b8a01d4a7005318114.tar.bz2
mesecons-de46729b971b5e59394834b8a01d4a7005318114.tar.xz
mesecons-de46729b971b5e59394834b8a01d4a7005318114.zip
Merge branch 'mesecons_in_nodedef'
Conflicts: mesecons/internal.lua
Diffstat (limited to 'mesecons_detector')
-rw-r--r--mesecons_detector/init.lua29
1 files changed, 17 insertions, 12 deletions
diff --git a/mesecons_detector/init.lua b/mesecons_detector/init.lua
index cbee787..2394e96 100644
--- a/mesecons_detector/init.lua
+++ b/mesecons_detector/init.lua
@@ -1,19 +1,27 @@
---SHORT RANGE DETECTORS
+-- Object detector
+-- Detects all entities in a certain radius
+-- The radius can be specified in mesecons/settings.lua
+
minetest.register_node("mesecons_detector:object_detector_off", {
tiles = {"default_steel_block.png", "default_steel_block.png", "jeija_object_detector_off.png", "jeija_object_detector_off.png", "jeija_object_detector_off.png", "jeija_object_detector_off.png"},
paramtype = "light",
walkable = true,
- groups = {cracky=3, mesecon = 2},
+ groups = {cracky=3},
description="Player Detector",
+ mesecons = {receptor = {
+ state = mesecon.state.off
+ }}
})
minetest.register_node("mesecons_detector:object_detector_on", {
tiles = {"default_steel_block.png", "default_steel_block.png", "jeija_object_detector_on.png", "jeija_object_detector_on.png", "jeija_object_detector_on.png", "jeija_object_detector_on.png"},
paramtype = "light",
walkable = true,
- groups = {cracky=3,not_in_creative_inventory=1, mesecon = 2},
+ groups = {cracky=3,not_in_creative_inventory=1},
drop = 'mesecons_detector:object_detector_off',
- description="Player Detector",
+ mesecons = {receptor = {
+ state = mesecon.state.on
+ }}
})
minetest.register_craft({
@@ -30,9 +38,9 @@ minetest.register_abm(
interval = 1.0,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
- local objs = minetest.env:get_objects_inside_radius(pos, 6)
+ local objs = minetest.env:get_objects_inside_radius(pos, OBJECT_DETECTOR_RADIUS)
for k, obj in pairs(objs) do
- if obj:get_entity_name()~="mesecons_pistons:piston_pusher_sticky" and obj:get_entity_name()~="mesecons_pistons:piston_pusher_normal" and obj:get_player_name()~=nil then -- Detected object is not piston pusher - will be changed if every entity has a type (like entity_type=mob)
+ if obj:get_entity_name()~="mesecons_pistons:piston_pusher_sticky" and obj:get_entity_name()~="mesecons_pistons:piston_pusher_normal" and obj:get_player_name()~=nil then
if minetest.env:get_node({x=pos.x, y=pos.y-1, z=pos.z}).name=="default:sign_wall" then
if obj:get_player_name()~=minetest.env:get_meta({x=pos.x, y=pos.y-1, z=pos.z}):get_string("text") then
return
@@ -40,7 +48,7 @@ minetest.register_abm(
end
local objpos=obj:getpos()
minetest.env:add_node(pos, {name="mesecons_detector:object_detector_on"})
- mesecon:receptor_on(pos, mesecon:get_rules("pressureplate"))
+ mesecon:receptor_on(pos)
end
end
end,
@@ -51,7 +59,7 @@ minetest.register_abm(
interval = 1.0,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
- local objs = minetest.env:get_objects_inside_radius(pos, 6)
+ local objs = minetest.env:get_objects_inside_radius(pos, OBJECT_DETECTOR_RADIUS)
local objectfound=0
for k, obj in pairs(objs) do
if obj:get_entity_name()~="mesecons_pistons:piston_pusher_sticky" and obj:get_entity_name()~="mesecons_pistons:piston_pusher_normal" and obj~=nil
@@ -68,10 +76,7 @@ minetest.register_abm(
end
if objectfound==0 then
minetest.env:add_node(pos, {name="mesecons_detector:object_detector_off"})
- mesecon:receptor_off(pos, mesecon:get_rules("pressureplate"))
+ mesecon:receptor_off(pos)
end
end,
})
-
-mesecon:add_receptor_node("mesecons_detector:object_detector_on", mesecon:get_rules("pressureplate"))
-mesecon:add_receptor_node_off("mesecons_detector:object_detector_off", mesecon:get_rules("pressureplate"))