3 if level > 0 then subtracter = 1 end
4 minetest.register_node("redstone:pressure_plate_"..level, {
5 description = "Pressure Plate",
7 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_torch=level, redstone_power=level,pressure_plate=level+1,pressure_plate_on=level},
8 sounds = main.stoneSound(),
10 --paramtype2 = "facedir",
11 sunlight_propagates = true,
14 drop="redstone:pressure_plate_0",
18 --left front bottom right back top
19 {-0.5, -0.5, -0.5, 0.5, -0.4-(0.05*subtracter), 0.5}
22 on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
24 redstone_activation = function(pos)
26 redstone_deactivation = function(pos)
28 on_timer = function(pos, elapsed)
30 on_dig = function(pos, node, digger)
31 redstone.collect_info(pos)
32 minetest.node_dig(pos, node, digger)
34 redstone_update = function(pos)
36 after_place_node = function(pos, placer, itemstack, pointed_thing)
38 on_construct = function(pos)
40 after_destruct = function(pos)
46 minetest.register_abm{
47 label = "Redstone Pressure Plate",
48 nodenames = {"group:pressure_plate"},
49 --neighbors = {"group:water"},
52 action = function(pos)
54 local level = minetest.get_item_group(minetest.get_node(pos).name, "pressure_plate_on")
56 for _,object in ipairs(minetest.get_objects_inside_radius(pos, 1.2)) do
57 if object:is_player() and object:get_hp() > 0 then
58 local pos2 = object:get_pos()
59 local compare = vector.subtract(pos2,pos)
60 local real_y = compare.y
61 compare = vector.abs(compare)
62 if real_y <= -0.35 and real_y > -0.5 and compare.x < 0.8 and compare.z < 0.8 then
68 if power_level ~= 9 then
69 for _,object in ipairs(minetest.get_objects_inside_radius(pos, 1.2)) do
70 if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then
71 local pos2 = object:get_pos()
72 pos2.y = pos2.y + object:get_properties().collisionbox[2]
73 local compare = vector.subtract(pos2,pos)
74 local real_y = compare.y
75 compare = vector.abs(compare)
76 if real_y <= -0.35 and real_y > -0.5 and compare.x < 0.6 and compare.z < 0.6 then
77 if power_level < 9 then
78 power_level = power_level + 1
86 if level ~= power_level then
87 minetest.sound_play("lever", {pos=pos})
88 minetest.swap_node(pos,{name="redstone:pressure_plate_"..power_level})
89 redstone.collect_info(pos)