This repository has been archived on 2020-05-24. You can view files and clone it, but cannot push or open issues or pull requests.
minetest-mod-sparktech/sparkgenerator/lua/solar.lua

50 lines
1.4 KiB
Lua

local NAME = minetest.get_current_modname()
local MAX_ENERGY = 50
minetest.register_node(NAME .. ":solar", {
description = "Solar Cell",
tiles = {
"solar_top.png",
"solar_side.png"
},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{0.5, -0.2, 0.5, -0.5, 0.2, -0.5},
{-0.2, -0.5, -0.2, 0.2, -0.2, 0.2}
}
},
groups = {
sparktech_techy = WRENCHABLE,
sparktech_energy_type = ENERGY_PRODUCER,
sparktech_net_trigger = TRUE,
sparktech_energy_max = MAX_ENERGY
}
})
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") + 2 * ( minetest.get_node_light(pos) / 15 ) ) -- this needs to be sunlight only... api missing
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
})
minetest.register_craft({
output = NAME .. ":solar",
recipe = {
{ "default:glass", "default:glass", "default:glass" },
{ "group:silicon", "default:copper_ingot", "group:silicon" },
{ "group:steel_plate", "group:steel_plate", "group:steel_plate"},
}
})