41 lines
1.1 KiB
Lua
41 lines
1.1 KiB
Lua
minetest.register_node("sparktech: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 = {oddly_breakable_by_hand = 1},
|
|
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
|
local meta = minetest.get_meta(pos)
|
|
minetest.chat_send_player(clicker:get_player_name(), meta:get_int("energy"))
|
|
end,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_int("energy_out", 20)
|
|
meta:set_int("energy_nobalance", 1)
|
|
meta:set_int("energy_max", 50)
|
|
end
|
|
})
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"sparktech: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)
|
|
if meta:get_int("energy") > meta:get_int("energy_max") then
|
|
meta:set_int("energy", meta:get_int("energy_max"))
|
|
end
|
|
end
|
|
})
|