I know that my code is not the cleanest and probably a lot of bugs and better ways to accomplish the same thing, but any information on what I am doing wrong is greatly apreaciated.
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
-- sl_base
VERSION = "0.0.1"
minetest.register_node("sl_base:concrete_off", {
drawtype = "normal",
description = "Street Lamp - Concrete Base",
tiles = sl_tiles.concrete_off,
groups = {cracky=3, mesecon=3},
after_place_node = function(pos, placer)
local node = minetest.env:get_node(pos)
if sl_check_power(pos, mesecon:get_rules(node.name)) then
minetest.env:add_node(pos, {name="sl_base:concrete_on"})
mesecon:turnon(pos)
end
-- local node = minetest.env:get_node(pos)
-- local rules = mesecon:conductor_get_rules(node)
-- print(node.name)
-- for i, rule in ipairs(rules) do
-- local np = {}
-- np.x = pos.x + rule.x
-- np.y = pos.y + rule.y
-- np.z = pos.z + rule.z
-- local n = minetest.env:get_node(np)
-- -- if mesecon:is_receptor
-- -- if mesecon:is_powered(np) then
-- if mesecon:connected_to_pw_src(np) then
-- mesecon:turnon(pos)
-- nodeupdate(pos)
-- mesecon:receptor_on(pos)
-- end
-- end
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
end,
})
minetest.register_node("sl_base:concrete_on", {
drawtype = "normal",
description = "Street Lamp - Concrete Base",
tiles = sl_tiles.concrete_on,
groups = {cracky=3, mesecon=3, not_in_creative_inventory=1},
drop = "sl_base:concrete_off",
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local node = minetest.env:get_node(pos)
local rules = mesecon:get_rules("sl_base:concrete_on")
for i, rule in ipairs(rules) do
local np = {}
np.x = pos.x + rule.x
np.y = pos.y + rule.y
np.z = pos.z + rule.z
local name = minetest.env:get_node(np).name
print("here i am "..name)
if name ~= "air" and not sl_check_power(np, mesecon:get_rules(name)) then
if not mesecon:connected_to_pw_src(np) then
mesecon:turnoff(np)
end
end
end
end,
})
mesecon:register_conductor("sl_base:concrete_on", "sl_base:concrete_off", mesecon:get_rules("sl_base:concrete_off"))
print("[Street Lamp] -- sl_base -- loaded. Version: "..VERSION)