Forbid digging milkers with buckets in them
[feedlot.git] / fakeplayer.lua
index d56f29a..1e1e2ab 100644 (file)
@@ -49,15 +49,30 @@ local function get_feed (pos)
       if not inv or not inv:get_list("main") then
         return ItemStack(nil)
       end
-      -- minetest.chat_send_all(inv:get_stack("main", 1):get_name())
+      if inv:get_list("bucket") then
+        return inv:get_stack("bucket", 1)
+      end
       return inv:get_stack("main", 1)
    end
 end
+
+local function get_inv(pos)
+   return function ()
+      local meta = minetest.get_meta(pos)
+      local inv = meta:get_inventory()
+      return inv
+   end
+end
+
 local function set_feed (pos)
    return function (_, stack)
       local meta = minetest.get_meta(pos)
       local inv = meta:get_inventory()
-      inv:set_stack("main", 1, stack)
+      if inv:get_list("bucket") then
+        inv:set_stack("bucket", 1, stack)
+      else
+        inv:set_stack("main", 1, stack)
+      end
       return 
    end
 end
@@ -76,7 +91,7 @@ function feedlotFakePlayer.create(pos, player_name)
        self.right_click = return_nil
        self.get_hp = return_value(10)
        self.set_hp = return_nil
-       self.get_inventory = return_nil -- returns an `InvRef`
+       self.get_inventory = get_inv(pos) -- returns an `InvRef`
        self.get_wield_list = return_empty_string
        self.get_wield_index = return_value(1)
 --     self.get_wielded_item = return_value(ItemStack(nil))