diff options
| author | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2017-04-14 04:29:56 -0400 | 
|---|---|---|
| committer | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2017-04-14 05:16:14 -0400 | 
| commit | 557dc4db1b38ab3df053245a90a6ca7d46f4d58a (patch) | |
| tree | a6c92d5bf6c0f446ee3e9119d0e3fbbaa1d11af8 | |
| parent | e65c8b7130a0ab6d382d2856e0b99a5edc95af6f (diff) | |
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
| -rw-r--r-- | technic/machines/register/battery_box.lua | 26 | 
1 files changed, 19 insertions, 7 deletions
| diff --git a/technic/machines/register/battery_box.lua b/technic/machines/register/battery_box.lua index c04875b..f176395 100644 --- a/technic/machines/register/battery_box.lua +++ b/technic/machines/register/battery_box.lua @@ -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 = {  	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  		end  		local meta = minetest.get_meta(pos)  		local inv = meta:get_inventory() -		if direction.y > 0 then +		if direction.y == 0 then  			return inv:add_item("src", stack)  		else  			return inv:add_item("dst", stack)  		end  	end,  	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  		end  		local meta = minetest.get_meta(pos)  		local inv = meta:get_inventory() -		if direction.y > 0 then +		if direction.y == 0 then  			if meta:get_int("split_src_stacks") == 1 then  				stack = stack:peek_item(1)  			end @@ -66,7 +78,7 @@ local tube = {  			return inv:room_for_item("dst", stack)  		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) @@ -219,13 +231,12 @@ function technic.register_battery_box(data)  		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 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  			top_tex = "technic_"..ltier.."_battery_box_top.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" -			bottom_tex = "technic_"..ltier.."_battery_box_bottom.png"..cable_entry  		end  		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_move = technic.machine_inventory_move,  			technic_run = run, +			on_rotate = screwdriver.rotate_simple,  			after_place_node = data.tube and pipeworks.after_place,  			after_dig_node = technic.machine_after_dig_node,  			on_receive_fields = function(pos, formname, fields, sender) | 
