minetest.register_node(minetest.get_current_modname() .. ":solar", { description = "Solar Cell", tiles = { "solar_top.png", "solar_side.png" }, drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", fixed = { {0.5, -0.1, 0.5, -0.5, -0.5, -0.5} } }, groups = { sparktech_techy = 1, sparktech_energy_conductor = 2, sparktech_energy_max = 50 } }) minetest.register_abm({ nodenames = {minetest.get_current_modname() .. ":solar"}, interval = 1.0, chance = 1, catch_up = true, action = function(pos, node, active_object_count, active_object_count_wider) local meta = minetest.get_meta(pos) meta:set_int("energy", meta:get_int("energy") + 5) local emax = minetest.get_item_group(node.name, "sparktech_energy_max") if meta:get_int("energy") > emax then meta:set_int("energy", emax) end end })