Tim
2015-03-16 137695ea67cf7096311c893de7cf139e6307b26b
technic/machines/other/injector.lua
@@ -2,7 +2,7 @@
local S = technic.getter
local function inject_items (pos)
      local meta=minetest.env:get_meta(pos)
      local meta=minetest.get_meta(pos)
      local inv = meta:get_inventory()
      local mode=meta:get_string("mode")
      if mode=="single items" then
@@ -65,11 +65,19 @@
   description = S("Self-Contained Injector"),
   tiles = {"technic_injector_top.png", "technic_injector_bottom.png", "technic_injector_side.png",
      "technic_injector_side.png", "technic_injector_side.png", "technic_injector_side.png"},
   groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, tubedevice=1},
   tube = {connect_sides={bottom=1}},
   groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, tubedevice=1, tubedevice_receiver=1},
   tube = {
      can_insert = function(pos, node, stack, direction)
         return minetest.get_meta(pos):get_inventory():room_for_item("main",stack)
      end,
      insert_object = function(pos, node, stack, direction)
         return minetest.get_meta(pos):get_inventory():add_item("main",stack)
      end,
      connect_sides = {left=1, right=1, front=1, back=1, top=1, bottom=1},
   },
   sounds = default.node_sound_wood_defaults(),
   on_construct = function(pos)
      local meta = minetest.env:get_meta(pos)
      local meta = minetest.get_meta(pos)
      meta:set_string("infotext", S("Self-Contained Injector"))
      local inv = meta:get_inventory()
      inv:set_size("main", 8*4)
@@ -77,12 +85,12 @@
      set_injector_formspec(meta)
   end,
   can_dig = function(pos,player)
      local meta = minetest.env:get_meta(pos);
      local meta = minetest.get_meta(pos);
      local inv = meta:get_inventory()
      return inv:is_empty("main")
   end,
   on_receive_fields = function(pos, formanme, fields, sender)
      local meta = minetest.env:get_meta(pos)
      local meta = minetest.get_meta(pos)
      if fields.mode_item then meta:set_string("mode", "single items") end
      if fields.mode_stack then meta:set_string("mode", "whole stacks") end
      set_injector_formspec(meta)
@@ -90,6 +98,8 @@
   allow_metadata_inventory_put = technic.machine_inventory_put,
   allow_metadata_inventory_take = technic.machine_inventory_take,
   allow_metadata_inventory_move = technic.machine_inventory_move,
   after_place_node = pipeworks.after_place,
   after_dig_node = pipeworks.after_dig
})
minetest.register_abm({