Advertisement
Doyousketch2

Minetest autodoor ABM

Mar 2nd, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.72 KB | None | 0 0
  1. minetest .register_abm {
  2.   label  = 'automatic doors',
  3.   nodenames  = { 'paradroid_mt:autodoor_closed',
  4.                  'paradroid_mt:autodoor_cracked',
  5.                  'paradroid_mt:autodoor_ajar',
  6.                  'paradroid_mt:autodoor_open' }, -- group:door  ??
  7.  
  8.   interval  = 0.25,
  9.   chance  = 1,
  10.  
  11.   action  = function(pos, node, active_object_count, active_object_count_wider)
  12.     local name  = node .name
  13.     local vacant  = true
  14.  
  15.     if active_object_count_wider > 0 then
  16.       print('wider ' ..active_object_count_wider) -- reports back every mouse on level
  17.       local entities  = minetest .get_objects_inside_radius(pos, 1)
  18.       --print('found ' ..#entities ..' entities at ' ..dump(pos))
  19.  
  20.       for entity = 1,  #entities do
  21.         vacant  = false
  22.         if name == 'paradroid_mt:autodoor_ajar' then
  23.           minetest .set_node( pos,  {name = 'paradroid_mt:autodoor_open' })
  24.         elseif name == 'paradroid_mt:autodoor_cracked' then
  25.           minetest .set_node( pos,  {name = 'paradroid_mt:autodoor_ajar' })
  26.         elseif name == 'paradroid_mt:autodoor_closed' then
  27.           minetest .set_node( pos,  {name = 'paradroid_mt:autodoor_cracked' })
  28.         end -- if name
  29.  
  30.       end -- entities
  31.  
  32.     elseif vacant then
  33.  
  34.       if name == 'paradroid_mt:autodoor_cracked' then
  35.         minetest .set_node( pos,  {name = 'paradroid_mt:autodoor_closed' })
  36.       elseif name == 'paradroid_mt:autodoor_ajar' then
  37.         minetest .set_node( pos,  {name = 'paradroid_mt:autodoor_cracked' })
  38.       elseif name == 'paradroid_mt:autodoor_open' then
  39.         minetest .set_node( pos,  {name = 'paradroid_mt:autodoor_ajar' })
  40.       end -- if name
  41.  
  42.     end -- if active_object_count_wider()
  43.  
  44.   end -- action
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement