lighter.lua 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. minetest.register_node("ufowreck:alien_lighter", {
  2. description = "Alien Lighter",
  3. tiles = {
  4. "scifi_nodes_lighttop.png",
  5. "scifi_nodes_lighttop.png",
  6. {name="alien_lighter.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.00},},
  7. {name="alien_lighter.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.00},},
  8. {name="alien_lighter.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.00},},
  9. {name="alien_lighter.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.00},}
  10. },
  11. light_source = 5,
  12. groups = {cracky=2, technic_machine = 1, technic_hv = 1, technic_mv = 1},
  13. connect_sides = {"top", "bottom"},
  14. sounds = default.node_sound_metal_defaults(),
  15. drop = "ufowreck:alien_lighter",
  16. after_place_node = function(pos,placer,itemstack)
  17. local meta = minetest.get_meta(pos)
  18. meta:set_string("infotext", "Alien Lighter")
  19. meta:set_int("HV_EU_demand", 4500)
  20. pos.x = pos.x - 6
  21. pos.y = pos.y + 2
  22. pos.z = pos.z - 6
  23. local xi, yi, zi
  24. for xi = 0, 6 do
  25. for zi = 0, 6 do
  26. if (minetest.get_node(pos)).name == "air" then
  27. minetest.set_node(pos,{name = "ufowreck:airlight"})
  28. -- minetest.set_node(pos,{name = "default:torch"})
  29. end
  30. pos.z = pos.z + 2
  31. end
  32. pos.x = pos.x + 2
  33. pos.z = pos.z - 14
  34. end
  35. end,
  36. after_dig_node = function(pos)
  37. pos.x = pos.x - 6
  38. pos.y = pos.y + 2
  39. pos.z = pos.z - 6
  40. local xi, yi, zi
  41. for xi = 0, 6 do
  42. for zi = 0, 6 do
  43. if (minetest.get_node(pos)).name == "ufowreck:airlight" then
  44. -- if (minetest.get_node(pos)).name == "default:torch" then
  45. minetest.set_node(pos,{name = "air"})
  46. end
  47. pos.z = pos.z + 2
  48. end
  49. pos.x = pos.x + 2
  50. pos.z = pos.z - 14
  51. end
  52. end,
  53. })
  54. --technic.register_machine("HV", "ufowreck:alien_lighter", technic.receiver)
  55. minetest.register_node("ufowreck:airlight", {
  56. description = "air light",
  57. paramtype = "light",
  58. drawtype = "airlike",
  59. light_source = 14,
  60. sunlight_propagates = true,
  61. walkable = false,
  62. pointable = false,
  63. diggable = false,
  64. buildable_to = true,
  65. on_construct = function(pos)
  66. local meta = minetest.get_meta(pos)
  67. meta:set_int("life", 12)
  68. end
  69. })
  70. minetest.register_abm({
  71. nodenames = {"ufowreck:alien_lighter"},
  72. interval = 10,
  73. chance = 1,
  74. action = function(pos, node, active_object_count, active_object_count_wider)
  75. local meta = minetest.get_meta(pos)
  76. pos.x = pos.x - 6
  77. pos.y = pos.y + 2
  78. pos.z = pos.z - 6
  79. if meta:get_int("HV_EU_input") < 4500 then
  80. local xi, yi, zi
  81. for xi = 0, 6 do
  82. for zi = 0, 6 do
  83. if (minetest.get_node(pos)).name == "ufowreck:airlight" then
  84. -- if (minetest.get_node(pos)).name == "default:torch" then
  85. minetest.set_node(pos,{name = "air"})
  86. end
  87. pos.z = pos.z + 2
  88. end
  89. pos.x = pos.x + 2
  90. pos.z = pos.z - 14
  91. end
  92. else
  93. for xi = 0, 6 do
  94. for zi = 0, 6 do
  95. if (minetest.get_node(pos)).name == "air" then
  96. minetest.set_node(pos,{name = "ufowreck:airlight"})
  97. -- minetest.set_node(pos,{name = "default:torch"})
  98. end
  99. pos.z = pos.z + 2
  100. end
  101. pos.x = pos.x + 2
  102. pos.z = pos.z - 14
  103. end
  104. end
  105. end
  106. })