Battery boxes no longer connect to tubes from bottom

(since a power cable needs to go there)

items destined for "discharge" still come from the top, but items bound for the
"charge" slot must come in from the left, right or back
This commit is contained in:
Vanessa Ezekowitz 2017-04-14 04:29:56 -04:00
parent e65c8b7130
commit 557dc4db1b
1 changed files with 19 additions and 7 deletions

View File

@ -35,26 +35,38 @@ minetest.register_tool("technic:battery", {
} }
}) })
-- x+2 + (z+2)*2
local dirtab = {
[4] = 2,
[5] = 3,
[7] = 1,
[8] = 0
}
local tube = { local tube = {
insert_object = function(pos, node, stack, direction) insert_object = function(pos, node, stack, direction)
if direction.y == 0 then print(minetest.pos_to_string(direction), dirtab[direction.x+2+(direction.z+2)*2], node.param2)
if direction.y == 1
or (direction.y == 0 and dirtab[direction.x+2+(direction.z+2)*2] == node.param2) then
return stack return stack
end end
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
if direction.y > 0 then if direction.y == 0 then
return inv:add_item("src", stack) return inv:add_item("src", stack)
else else
return inv:add_item("dst", stack) return inv:add_item("dst", stack)
end end
end, end,
can_insert = function(pos, node, stack, direction) can_insert = function(pos, node, stack, direction)
if direction.y == 0 then print(minetest.pos_to_string(direction), dirtab[direction.x+2+(direction.z+2)*2], node.param2)
if direction.y == 1
or (direction.y == 0 and dirtab[direction.x+2+(direction.z+2)*2] == node.param2) then
return false return false
end end
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
if direction.y > 0 then if direction.y == 0 then
if meta:get_int("split_src_stacks") == 1 then if meta:get_int("split_src_stacks") == 1 then
stack = stack:peek_item(1) stack = stack:peek_item(1)
end end
@ -66,7 +78,7 @@ local tube = {
return inv:room_for_item("dst", stack) return inv:room_for_item("dst", stack)
end end
end, end,
connect_sides = {left=1, right=1, back=1, top=1, bottom=1}, connect_sides = {left=1, right=1, back=1, top=1},
} }
local function add_on_off_buttons(meta, ltier, charge_percent) local function add_on_off_buttons(meta, ltier, charge_percent)
@ -219,13 +231,12 @@ function technic.register_battery_box(data)
local top_tex = "technic_"..ltier.."_battery_box_top.png"..tube_entry local top_tex = "technic_"..ltier.."_battery_box_top.png"..tube_entry
local front_tex = "technic_"..ltier.."_battery_box_front.png^technic_power_meter"..i..".png" local front_tex = "technic_"..ltier.."_battery_box_front.png^technic_power_meter"..i..".png"
local side_tex = "technic_"..ltier.."_battery_box_side.png"..tube_entry local side_tex = "technic_"..ltier.."_battery_box_side.png"..tube_entry
local bottom_tex = "technic_"..ltier.."_battery_box_bottom.png"..tube_entry local bottom_tex = "technic_"..ltier.."_battery_box_bottom.png"..cable_entry
if ltier == "lv" then if ltier == "lv" then
top_tex = "technic_"..ltier.."_battery_box_top.png" top_tex = "technic_"..ltier.."_battery_box_top.png"
front_tex = "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png" front_tex = "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png"
side_tex = "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png" side_tex = "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png"
bottom_tex = "technic_"..ltier.."_battery_box_bottom.png"..cable_entry
end end
minetest.register_node("technic:"..ltier.."_battery_box"..i, { minetest.register_node("technic:"..ltier.."_battery_box"..i, {
@ -271,6 +282,7 @@ function technic.register_battery_box(data)
allow_metadata_inventory_take = technic.machine_inventory_take, allow_metadata_inventory_take = technic.machine_inventory_take,
allow_metadata_inventory_move = technic.machine_inventory_move, allow_metadata_inventory_move = technic.machine_inventory_move,
technic_run = run, technic_run = run,
on_rotate = screwdriver.rotate_simple,
after_place_node = data.tube and pipeworks.after_place, after_place_node = data.tube and pipeworks.after_place,
after_dig_node = technic.machine_after_dig_node, after_dig_node = technic.machine_after_dig_node,
on_receive_fields = function(pos, formname, fields, sender) on_receive_fields = function(pos, formname, fields, sender)