From ebc114df71cc20868afbd3c6dea4039dc14c1a0e Mon Sep 17 00:00:00 2001
From: Carter Kolwey <fhrfuyduduf@gmail.com>
Date: Sat, 11 Jan 2014 18:30:10 +0100
Subject: [PATCH] Fixed music player

---
 technic/machines/register/common.lua |   44 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/technic/machines/register/common.lua b/technic/machines/register/common.lua
index 475e35b..8aab96e 100644
--- a/technic/machines/register/common.lua
+++ b/technic/machines/register/common.lua
@@ -1,4 +1,6 @@
 
+local S = technic.getter
+
 function technic.handle_machine_upgrades(meta)
 	-- Get the names of the upgrades
 	local inv = meta:get_inventory()
@@ -46,7 +48,7 @@
 			local item0 = stack:to_table()
 			if item0 then 
 				item0["count"] = "1"
-				local item1 = tube_item({x=pos.x, y=pos.y, z=pos.z}, item0)
+				local item1 = pipeworks.tube_item({x=pos.x, y=pos.y, z=pos.z}, item0)
 				item1:get_luaentity().start_pos = {x=pos.x, y=pos.y, z=pos.z}
 				item1:setvelocity({x=x_velocity, y=0, z=z_velocity})
 				item1:setacceleration({x=0, y=0, z=0})
@@ -70,7 +72,7 @@
 	if result and result.item then
 		meta:set_int("cook_time", 0)
 		-- check if there's room for output in "dst" list
-		if inv:room_for_item("dst", result) then
+		if inv:room_for_item("dst", result.item) then
 			srcstack = inv:get_stack("src", 1)
 			srcstack:take_item()
 			inv:set_stack("src", 1, srcstack)
@@ -100,7 +102,7 @@
 	end
 	tube_time = meta:get_int("tube_time")
 	tube_time = tube_time + tube_upgrade
-	if tube_time > 3 then
+	if tube_time >= 2 then
 		tube_time = 0
 		if output_tube_connected then
 			technic.send_items(pos, x_velocity, z_velocity)
@@ -109,3 +111,39 @@
 	meta:set_int("tube_time", tube_time)
 end
 
+
+function technic.machine_can_dig(pos, player)
+	local meta = minetest.get_meta(pos)
+	local inv = meta:get_inventory()
+	if not inv:is_empty("src") or not inv:is_empty("dst") or
+	   not inv:is_empty("upgrade1") or not inv:is_empty("upgrade2") then
+		minetest.chat_send_player(player:get_player_name(),
+			S("Machine cannot be removed because it is not empty"))
+		return false
+	else
+		return true
+	end
+end
+
+local function inv_change(pos, player, count)
+	if minetest.is_protected(pos, player:get_player_name()) then
+		minetest.chat_send_player(player:get_player_name(),
+			S("Inventory move disallowed due to protection"))
+		return 0
+	end
+	return count
+end
+
+function technic.machine_inventory_put(pos, listname, index, stack, player)
+	return inv_change(pos, player, stack:get_count())
+end
+
+function technic.machine_inventory_take(pos, listname, index, stack, player)
+	return inv_change(pos, player, stack:get_count())
+end
+
+function technic.machine_inventory_move(pos, from_list, from_index,
+		to_list, to_index, count, player)
+	return inv_change(pos, player, count)
+end
+

--
Gitblit v1.8.0