Gábriel
2024-03-25 d5ff69d1d9efd683d852562af6cfddac5ac69879
technic/tools/vacuum.lua
@@ -14,24 +14,23 @@
   wear_represents = "technic_RE_charge",
   on_refill = technic.refill_RE_charge,
   on_use = function(itemstack, user, pointed_thing)
      local meta = minetest.deserialize(itemstack:get_metadata())
      if not meta or not meta.charge then
      local meta = technic.get_stack_meta(itemstack)
      local charge = meta:get_int("technic:charge")
      if charge < vacuum_charge_per_object then
         return
      end
      if meta.charge > vacuum_charge_per_object then
         minetest.sound_play("vacuumcleaner", {
            to_player = user:get_player_name(),
            gain = 0.4,
         })
      end
      local pos = user:getpos()
      minetest.sound_play("vacuumcleaner", {
         to_player = user:get_player_name(),
         gain = 0.4,
      })
      local pos = user:get_pos()
      local inv = user:get_inventory()
      for _, object in ipairs(minetest.env:get_objects_inside_radius(pos, vacuum_range)) do
      for _, object in ipairs(minetest.get_objects_inside_radius(pos, vacuum_range)) do
         local luaentity = object:get_luaentity()
         if not object:is_player() and luaentity and luaentity.name == "__builtin:item" and luaentity.itemstring ~= "" then
            if inv and inv:room_for_item("main", ItemStack(luaentity.itemstring)) then
               meta.charge = meta.charge - vacuum_charge_per_object
               if meta.charge < vacuum_charge_per_object then
               charge = charge - vacuum_charge_per_object
               if charge < vacuum_charge_per_object then
                  return
               end
               inv:add_item("main", ItemStack(luaentity.itemstring))
@@ -44,9 +43,9 @@
            end
         end
      end
      technic.set_RE_wear(itemstack, meta.charge, vacuum_max_charge)
      itemstack:set_metadata(minetest.serialize(meta))
      meta:set_int("technic:charge", charge)
      technic.set_RE_wear(itemstack, charge, vacuum_max_charge)
      return itemstack
   end,
})
@@ -55,7 +54,7 @@
   output = 'technic:vacuum',
   recipe = {
      {'pipeworks:tube_1',              'pipeworks:filter', 'technic:battery'},
      {'pipeworks:tube_1',              'technic:motor',    'technic:battery'},
      {'pipeworks:tube_1',              'basic_materials:motor',    'technic:battery'},
      {'technic:stainless_steel_ingot', '',                 ''},
   }
})