diff options
| -rw-r--r-- | default_settings.txt | 1 | ||||
| -rw-r--r-- | item_transport.lua | 25 | 
2 files changed, 18 insertions, 8 deletions
| diff --git a/default_settings.txt b/default_settings.txt index 41a3f7a..b1aa331 100644 --- a/default_settings.txt +++ b/default_settings.txt @@ -19,5 +19,6 @@ pipeworks.enable_mese_sand_tube = true  pipeworks.enable_one_way_tube = true  pipeworks.enable_priority_tube = true  pipeworks.enable_cyclic_mode = true +pipeworks.drop_on_routing_fail = false  pipeworks.delete_item_on_clearobject = true diff --git a/item_transport.lua b/item_transport.lua index ee17611..ab1ce55 100644 --- a/item_transport.lua +++ b/item_transport.lua @@ -246,15 +246,24 @@ luaentity.register_entity("pipeworks:tubed_item", {  		if moved then  			local found_next, new_velocity = go_next(self.start_pos, velocity, stack) -- todo: color +			local rev_vel = vector.multiply(velocity, -1) +			local rev_dir = vector.direction(self.start_pos,vector.add(self.start_pos,rev_vel)) +			local rev_node = minetest.get_node(vector.round(vector.add(self.start_pos,rev_dir))) +			local tube_present = minetest.get_item_group(rev_node.name,"tubedevice") == 1  			if not found_next then -				drop_pos = minetest.find_node_near(vector.add(self.start_pos, velocity), 1, "air") -				if drop_pos then -					-- Using add_item instead of item_drop since this makes pipeworks backward -					-- compatible with Minetest 0.4.13. -					-- Using item_drop here makes Minetest 0.4.13 crash. -					minetest.add_item(drop_pos, stack) -					self:remove() -					return +				if pipeworks.drop_on_routing_fail or not tube_present then +					drop_pos = minetest.find_node_near(vector.add(self.start_pos, velocity), 1, "air") +					if drop_pos then +						-- Using add_item instead of item_drop since this makes pipeworks backward +						-- compatible with Minetest 0.4.13. +						-- Using item_drop here makes Minetest 0.4.13 crash. +						minetest.add_item(drop_pos, stack) +						self:remove() +						return +					end +				else +					velocity = vector.multiply(velocity, -1) +					self:setvelocity(velocity)  				end  			end | 
