Update to battery box

This commit is contained in:
Maciej Kasatkin 2012-10-16 00:17:32 +02:00
parent 77e83840f5
commit 5a9e866d23
15 changed files with 54 additions and 6 deletions

@ -64,11 +64,13 @@ battery_box_formspec =
minetest.register_node("technic:battery_box", { minetest.register_node("technic:battery_box", {
description = "Battery box", description = "Battery box",
tiles = {"technic_battery_box_top.png", "technic_battery_box_bottom.png", "technic_battery_box_side.png", tiles = {"technic_battery_box_top.png", "technic_battery_box_bottom.png", "technic_battery_box_side0.png",
"technic_battery_box_side.png", "technic_battery_box_side.png", "technic_battery_box_side.png"}, "technic_battery_box_side0.png", "technic_battery_box_side0.png", "technic_battery_box_side0.png"},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
technic_power_machine=1, technic_power_machine=1,
last_side_shown=0,
drop="technic:battery_box",
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.env:get_meta(pos) local meta = minetest.env:get_meta(pos)
meta:set_string("infotext", "Battery box") meta:set_string("infotext", "Battery box")
@ -79,6 +81,7 @@ minetest.register_node("technic:battery_box", {
inv:set_size("dst", 1) inv:set_size("dst", 1)
battery_charge = 0 battery_charge = 0
max_charge = 60000 max_charge = 60000
last_side_shown=0
end, end,
can_dig = function(pos,player) can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos); local meta = minetest.env:get_meta(pos);
@ -93,6 +96,42 @@ minetest.register_node("technic:battery_box", {
}) })
for i=1,8,1 do
minetest.register_node("technic:battery_box"..i, {
description = "Battery box",
tiles = {"technic_battery_box_top.png", "technic_battery_box_bottom.png", "technic_battery_box_side"..i..".png",
"technic_battery_box_side"..i..".png", "technic_battery_box_side"..i..".png", "technic_battery_box_side"..i..".png"},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
technic_power_machine=1,
last_side_shown=0,
drop="technic:battery_box",
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string("infotext", "Battery box")
meta:set_float("technic_power_machine", 1)
meta:set_string("formspec", battery_box_formspec)
local inv = meta:get_inventory()
inv:set_size("src", 1)
inv:set_size("dst", 1)
battery_charge = 0
max_charge = 60000
last_side_shown=0
end,
can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty("dst") then
return false
elseif not inv:is_empty("src") then
return false
end
return true
end,
})
end
LV_nodes_visited = {} LV_nodes_visited = {}
function get_RE_item_load (load1,max_load) function get_RE_item_load (load1,max_load)
@ -110,14 +149,23 @@ return math.floor(temp)
end end
minetest.register_abm({ minetest.register_abm({
nodenames = {"technic:battery_box"}, nodenames = {"technic:battery_box","technic:battery_box1","technic:battery_box2","technic:battery_box3","technic:battery_box4",
"technic:battery_box5","technic:battery_box6","technic:battery_box7","technic:battery_box8"
},
interval = 1, interval = 1,
chance = 1, chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider) action = function(pos, node, active_object_count, active_object_count_wider)
local meta = minetest.env:get_meta(pos) local meta = minetest.env:get_meta(pos)
charge= meta:get_float("battery_charge") charge= meta:get_float("battery_charge")
max_charge= 60000 max_charge= 60000
local i=math.ceil((charge/max_charge)*8)
if i>8 then i=8 end
j=meta:get_float("last_side_shown")
if i~=j then
if i>0 then hacky_swap_node(pos,"technic:battery_box"..i)
elseif i==0 then hacky_swap_node(pos,"technic:battery_box") end
meta:set_float("last_side_shown",i)
end
local inv = meta:get_inventory() local inv = meta:get_inventory()
if inv:is_empty("src")==false then if inv:is_empty("src")==false then
srcstack = inv:get_stack("src", 1) srcstack = inv:get_stack("src", 1)

@ -1,5 +1,5 @@
minetest.register_node("technic:solar_panel", { minetest.register_node("technic:solar_panel", {
tiles = {"technic_solar_panel_top.png", "technic_solar_panel_side.png", "technic_solar_panel_side.png", tiles = {"technic_solar_panel_top.png", "technic_solar_panel_bottom.png", "technic_solar_panel_side.png",
"technic_solar_panel_side.png", "technic_solar_panel_side.png", "technic_solar_panel_side.png"}, "technic_solar_panel_side.png", "technic_solar_panel_side.png", "technic_solar_panel_side.png"},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
@ -54,7 +54,7 @@ minetest.register_abm(
local light = minetest.env:get_node_light(pos1, nil) local light = minetest.env:get_node_light(pos1, nil)
local meta = minetest.env:get_meta(pos) local meta = minetest.env:get_meta(pos)
if light == nil then light = 0 end if light == nil then light = 0 end
if light >= 12 then if light >= 14 then
meta:set_string("infotext", "Solar Panel is active ") meta:set_string("infotext", "Solar Panel is active ")
meta:set_float("active",1) meta:set_float("active",1)
local internal_EU_buffer=meta:get_float("internal_EU_buffer") local internal_EU_buffer=meta:get_float("internal_EU_buffer")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB