diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README b/README old mode 100644 new mode 100755 diff --git a/autocrafter.lua b/autocrafter.lua old mode 100644 new mode 100755 index 648a610..faf5381 --- a/autocrafter.lua +++ b/autocrafter.lua @@ -183,7 +183,14 @@ local function update_meta(meta, enabled) default.gui_bg_img.. default.gui_slots.. default.get_hotbar_bg(0,7) .. - "list[current_player;main;0,7;8,4;]") + "list[current_player;main;0,7;8,4;]" .. + "listring[current_player;main]".. + "listring[context;src]" .. + "listring[context;dst]" .. + "listring[current_player;main]".. + "listring[context;recipe]" .. + "listring[context;output]" + ) -- toggling the button doesn't quite call for running a recipe change check -- so instead we run a minimal version for infotext setting only diff --git a/autoplace_pipes.lua b/autoplace_pipes.lua old mode 100644 new mode 100755 diff --git a/autoplace_tubes.lua b/autoplace_tubes.lua old mode 100644 new mode 100755 diff --git a/changelog.txt b/changelog.txt old mode 100644 new mode 100755 diff --git a/common.lua b/common.lua old mode 100644 new mode 100755 diff --git a/compat.lua b/compat.lua old mode 100644 new mode 100755 diff --git a/crafts.lua b/crafts.lua old mode 100644 new mode 100755 diff --git a/decorative_tubes.lua b/decorative_tubes.lua old mode 100644 new mode 100755 diff --git a/default_settings.txt b/default_settings.txt old mode 100644 new mode 100755 diff --git a/depends.txt b/depends.txt old mode 100644 new mode 100755 diff --git a/devices.lua b/devices.lua old mode 100644 new mode 100755 index e4c5f43..f7f6f45 --- a/devices.lua +++ b/devices.lua @@ -35,6 +35,8 @@ local pipes_devicelist = { "storage_tank_10" } +local rules = pipeworks.mesecons_rules -- Enough with the undefined global variable // MFF (Mg|01/07/2016 for #68) + -- Now define the nodes. local states = { "on", "off" } @@ -67,10 +69,10 @@ for s in ipairs(states) do drop = "pipeworks:pump_off", mesecons = {effector = { action_on = function (pos, node) - minetest.add_node(pos,{name="pipeworks:pump_on", param2 = node.param2}) + minetest.add_node(pos,{name="pipeworks:pump_on", param2 = node.param2}) end, action_off = function (pos, node) - minetest.add_node(pos,{name="pipeworks:pump_off", param2 = node.param2}) + minetest.add_node(pos,{name="pipeworks:pump_off", param2 = node.param2}) end }}, on_punch = function(pos, node, puncher) @@ -78,7 +80,7 @@ for s in ipairs(states) do minetest.add_node(pos, { name = "pipeworks:pump_"..states[3-s], param2 = fdir }) end }) - + minetest.register_node("pipeworks:valve_"..states[s].."_empty", { description = "Valve", drawtype = "mesh", @@ -107,10 +109,10 @@ for s in ipairs(states) do drop = "pipeworks:valve_off_empty", mesecons = {effector = { action_on = function (pos, node) - minetest.add_node(pos,{name="pipeworks:valve_on_empty", param2 = node.param2}) + minetest.add_node(pos,{name="pipeworks:valve_on_empty", param2 = node.param2}) end, action_off = function (pos, node) - minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2}) + minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2}) end }}, on_punch = function(pos, node, puncher) @@ -148,10 +150,10 @@ minetest.register_node("pipeworks:valve_on_loaded", { drop = "pipeworks:valve_off_empty", mesecons = {effector = { action_on = function (pos, node) - minetest.add_node(pos,{name="pipeworks:valve_on_empty", param2 = node.param2}) + minetest.add_node(pos,{name="pipeworks:valve_on_empty", param2 = node.param2}) end, action_off = function (pos, node) - minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2}) + minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2}) end }}, on_punch = function(pos, node, puncher) @@ -284,7 +286,7 @@ minetest.register_node("pipeworks:entry_panel_empty", { collision_box = panel_cbox, on_place = function(itemstack, placer, pointed_thing) local playername = placer:get_player_name() - if not minetest.is_protected(pointed_thing.under, playername) + if not minetest.is_protected(pointed_thing.under, playername) and not minetest.is_protected(pointed_thing.above, playername) then local node = minetest.get_node(pointed_thing.under) @@ -376,7 +378,7 @@ minetest.register_node("pipeworks:flow_sensor_empty", { end, on_construct = function(pos) if mesecon then - mesecon.receptor_off(pos, rules) + mesecon.receptor_off(pos, rules) end end, selection_box = { @@ -415,7 +417,7 @@ minetest.register_node("pipeworks:flow_sensor_loaded", { end, on_construct = function(pos) if mesecon then - mesecon.receptor_on(pos, rules) + mesecon.receptor_on(pos, rules) end end, selection_box = { @@ -522,7 +524,7 @@ minetest.register_node("pipeworks:fountainhead", { end, on_construct = function(pos) if mesecon then - mesecon.receptor_on(pos, rules) + mesecon.receptor_on(pos, rules) end end, selection_box = { @@ -553,7 +555,7 @@ minetest.register_node("pipeworks:fountainhead_pouring", { end, on_construct = function(pos) if mesecon then - mesecon.receptor_on(pos, rules) + mesecon.receptor_on(pos, rules) end end, selection_box = { diff --git a/filter-injector.lua b/filter-injector.lua old mode 100644 new mode 100755 index 78e6f25..f5f90a0 --- a/filter-injector.lua +++ b/filter-injector.lua @@ -45,7 +45,8 @@ local function set_filter_formspec(data, meta) "Sequence slots Randomly", "Sequence slots by Rotation"}).. exmatch_button.. - "list[current_player;main;0,4.5;8,4;]" + "list[current_player;main;0,4.5;8,4;]" .. + "listring[]" end meta:set_string("formspec", formspec) end @@ -143,6 +144,17 @@ local function punch_filter(data, filtpos, filtnode, msg) local dir = minetest.facedir_to_right_dir(filtnode.param2) local frompos = vector.subtract(filtpos, dir) local fromnode = minetest.get_node(frompos) + + -- Fix crash with connected_chests (sys4 fix for MFF) + if fromnode and fromnode.name == "connected_chests:chest_right" then + local v_mul = vector.multiply(dir, 2) + frompos = vector.subtract(filtpos, v_mul) + fromnode = minetest.get_node(frompos) + if fromnode and fromnode.name ~= "connected_chests:chest_left" then + return + end + end + if not fromnode then return end local fromdef = minetest.registered_nodes[fromnode.name] if not fromdef then return end diff --git a/flowing_logic.lua b/flowing_logic.lua old mode 100644 new mode 100755 index 5166b15..ae3b4ee --- a/flowing_logic.lua +++ b/flowing_logic.lua @@ -46,8 +46,8 @@ pipeworks.check_for_inflows = function(pos,node) source = {x=coords[i].x,y=coords[i].y,z=coords[i].z} end end - if newnode then - minetest.add_node(pos,{name=newnode, param2 = node.param2}) + if newnode then + minetest.add_node(pos,{name=newnode, param2 = node.param2}) minetest.get_meta(pos):set_string("source",minetest.pos_to_string(source)) end end @@ -61,15 +61,15 @@ pipeworks.check_sources = function(pos,node) newnode = string.gsub(node.name,"loaded","empty") end - if newnode then - minetest.add_node(pos,{name=newnode, param2 = node.param2}) + if newnode then + minetest.add_node(pos,{name=newnode, param2 = node.param2}) minetest.get_meta(pos):set_string("source","") end end pipeworks.spigot_check = function(pos, node) local belowname = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name - if belowname and (belowname == "air" or belowname == "default:water_flowing" or belowname == "default:water_source") then + if belowname and (belowname == "air" or belowname == "default:water_flowing" or belowname == "default:water_source") then local spigotname = minetest.get_node(pos).name local fdir=node.param2 % 4 local check = { @@ -99,7 +99,7 @@ end pipeworks.fountainhead_check = function(pos, node) local abovename = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}).name - if abovename and (abovename == "air" or abovename == "default:water_flowing" or abovename == "default:water_source") then + if abovename and (abovename == "air" or abovename == "default:water_flowing" or abovename == "default:water_source") then local fountainhead_name = minetest.get_node(pos).name local near_node = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}) if near_node and string.find(near_node.name, "_loaded") then diff --git a/init.lua b/init.lua old mode 100644 new mode 100755 index 499f6ba..b093812 --- a/init.lua +++ b/init.lua @@ -113,5 +113,5 @@ if pipeworks.enable_autocrafter then dofile(pipeworks.modpath.."/autocrafter.lua minetest.register_alias("pipeworks:pipe", "pipeworks:pipe_110000_empty") -print("Pipeworks loaded!") +minetest.log("Pipeworks loaded!") diff --git a/item_transport.lua b/item_transport.lua old mode 100644 new mode 100755 index ee17611..57d5460 --- a/item_transport.lua +++ b/item_transport.lua @@ -252,7 +252,7 @@ luaentity.register_entity("pipeworks:tubed_item", { -- 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) + --minetest.add_item(drop_pos, stack) --Don't drop pipeworks items to reduce lag. self:remove() return end diff --git a/legacy.lua b/legacy.lua old mode 100644 new mode 100755 index b36cded..e02a236 --- a/legacy.lua +++ b/legacy.lua @@ -1,5 +1,5 @@ -if not minetest.get_modpath("auto_tree_tap") and +if not minetest.get_modpath("auto_tree_tap") and minetest.get_modpath("technic") then minetest.register_abm({ @@ -37,10 +37,10 @@ if not minetest.get_modpath("auto_tree_tap") and after_place_node = function (pos, placer) pipeworks.scan_for_tube_objects(pos, placer) local placer_pos = placer:getpos() - + --correct for the player's height if placer:is_player() then placer_pos.y = placer_pos.y + 1.5 end - + --correct for 6d facedir if placer_pos then local dir = { diff --git a/luaentity.lua b/luaentity.lua old mode 100644 new mode 100755 index 665e055..68d1660 --- a/luaentity.lua +++ b/luaentity.lua @@ -29,7 +29,7 @@ local function read_entities() end local function write_entities() - for _, entity in pairs(luaentity.entities) do + for _, entity in pairs(luaentity.entities or {}) do setmetatable(entity, nil) for _, attached in pairs(entity._attached_entities) do if attached.entity then @@ -53,31 +53,29 @@ end local active_blocks = {} -- These only contain active blocks near players (i.e., not forceloaded ones) local handle_active_blocks_step = 2 -local handle_active_blocks_timer = 0 -minetest.register_globalstep(function(dtime) - handle_active_blocks_timer = handle_active_blocks_timer + dtime - if handle_active_blocks_timer >= handle_active_blocks_step then - handle_active_blocks_timer = handle_active_blocks_timer - handle_active_blocks_step - local active_block_range = tonumber(minetest.setting_get("active_block_range")) or 2 - local new_active_blocks = {} - for _, player in ipairs(minetest.get_connected_players()) do - local blockpos = get_blockpos(player:getpos()) - local minp = vector.subtract(blockpos, active_block_range) - local maxp = vector.add(blockpos, active_block_range) +local function active_blocks_step() + local active_block_range = tonumber(minetest.setting_get("active_block_range")) or 2 + local new_active_blocks = {} + for _, player in ipairs(minetest.get_connected_players()) do + local blockpos = get_blockpos(player:getpos()) + local minp = vector.subtract(blockpos, active_block_range) + local maxp = vector.add(blockpos, active_block_range) - for x = minp.x, maxp.x do - for y = minp.y, maxp.y do - for z = minp.z, maxp.z do - local pos = {x = x, y = y, z = z} - new_active_blocks[minetest.hash_node_position(pos)] = pos - end - end - end + for x = minp.x, maxp.x do + for y = minp.y, maxp.y do + for z = minp.z, maxp.z do + local pos = {x = x, y = y, z = z} + new_active_blocks[minetest.hash_node_position(pos)] = pos + end + end end - active_blocks = new_active_blocks - -- todo: callbacks on block load/unload end -end) + active_blocks = new_active_blocks + -- todo: callbacks on block load/unload + + minetest.after(handle_active_blocks_step, active_blocks_step) +end +minetest.after(0, active_blocks_step) local function is_active(pos) return active_blocks[minetest.hash_node_position(get_blockpos(pos))] ~= nil @@ -194,7 +192,7 @@ local entitydef_default = { end end, getvelocity = function(self) - return vector.new(self._velocity) + return vector.new(self._velocity) end, setvelocity = function(self, velocity) self._velocity = vector.new(velocity) @@ -272,7 +270,7 @@ function luaentity.add_entity(pos, name) _acceleration = {x = 0, y = 0, z = 0}, _attached_entities = {}, } - + local prototype = luaentity.registered_entities[name] setmetatable(entity, prototype) -- Default to prototype for other methods luaentity.entities[index] = entity diff --git a/models.lua b/models.lua old mode 100644 new mode 100755 index 3be773c..1a302b5 --- a/models.lua +++ b/models.lua @@ -34,7 +34,7 @@ pipeworks.tube_frontstub = { pipeworks.tube_backstub = { { -9/64, -9/64, -9/64, 9/64, 9/64, 32/64 }, -- tube segment against -Z face -} +} pipeworks.tube_boxes = {pipeworks.tube_leftstub, pipeworks.tube_rightstub, pipeworks.tube_bottomstub, pipeworks.tube_topstub, pipeworks.tube_frontstub, pipeworks.tube_backstub} diff --git a/models/pipeworks_entry_panel.obj b/models/pipeworks_entry_panel.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_flow_sensor.obj b/models/pipeworks_flow_sensor.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_fountainhead.obj b/models/pipeworks_fountainhead.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pipe_10.obj b/models/pipeworks_pipe_10.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pipe_2.obj b/models/pipeworks_pipe_2.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pipe_3.obj b/models/pipeworks_pipe_3.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pipe_4.obj b/models/pipeworks_pipe_4.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pipe_5.obj b/models/pipeworks_pipe_5.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pipe_6.obj b/models/pipeworks_pipe_6.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pipe_7.obj b/models/pipeworks_pipe_7.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pipe_8.obj b/models/pipeworks_pipe_8.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pipe_9.obj b/models/pipeworks_pipe_9.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_pump.obj b/models/pipeworks_pump.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_spigot.obj b/models/pipeworks_spigot.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_spigot_pouring.obj b/models/pipeworks_spigot_pouring.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_valve_off.obj b/models/pipeworks_valve_off.obj old mode 100644 new mode 100755 diff --git a/models/pipeworks_valve_on.obj b/models/pipeworks_valve_on.obj old mode 100644 new mode 100755 diff --git a/pipes.lua b/pipes.lua old mode 100644 new mode 100755 index 2056fdf..3bfe4bf --- a/pipes.lua +++ b/pipes.lua @@ -9,7 +9,7 @@ local vti = {4, 3, 2, 1, 6, 5} local cconnects = {{}, {1}, {1, 2}, {1, 3}, {1, 3, 5}, {1, 2, 3}, {1, 2, 3, 5}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}} for index, connects in ipairs(cconnects) do local outsel = {} - + local jx = 0 local jy = 0 local jz = 0 @@ -28,7 +28,7 @@ for index, connects in ipairs(cconnects) do local v = connects[1] v = v-1 + 2*(v%2) -- Opposite side end - + local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1} local pipedesc = "Pipe segement".." "..dump(connects).."... You hacker, you." local image = nil @@ -38,11 +38,11 @@ for index, connects in ipairs(cconnects) do pipedesc = "Pipe segment" image = "pipeworks_pipe_inv.png" end - + local outimg_e = { "pipeworks_pipe_plain.png" } local outimg_l = { "pipeworks_pipe_plain.png" } - if index == 3 then + if index == 3 then outimg_e = { "pipeworks_pipe_3_empty.png" } outimg_l = { "pipeworks_pipe_3_loaded.png" } end @@ -82,7 +82,7 @@ for index, connects in ipairs(cconnects) do pipeworks.scan_for_pipe_objects(pos) end }) - + local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1} minetest.register_node("pipeworks:pipe_"..index.."_loaded", { @@ -112,7 +112,7 @@ for index, connects in ipairs(cconnects) do pipeworks.scan_for_pipe_objects(pos) end }) - + table.insert(pipes_empty_nodenames, "pipeworks:pipe_"..index.."_empty") table.insert(pipes_full_nodenames, "pipeworks:pipe_"..index.."_loaded") end @@ -206,7 +206,7 @@ minetest.register_abm({ nodenames = {"pipeworks:spigot","pipeworks:spigot_pouring"}, interval = 1, chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) + action = function(pos, node, active_object_count, active_object_count_wider) pipeworks.spigot_check(pos,node) end }) @@ -215,7 +215,7 @@ minetest.register_abm({ nodenames = {"pipeworks:fountainhead","pipeworks:fountainhead_pouring"}, interval = 1, chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) + action = function(pos, node, active_object_count, active_object_count_wider) pipeworks.fountainhead_check(pos,node) end }) diff --git a/routing_tubes.lua b/routing_tubes.lua old mode 100644 new mode 100755 diff --git a/signal_tubes.lua b/signal_tubes.lua old mode 100644 new mode 100755 index dfd7649..63c5120 --- a/signal_tubes.lua +++ b/signal_tubes.lua @@ -1,5 +1,5 @@ if pipeworks.enable_detector_tube then - local detector_tube_step = 2 * tonumber(minetest.setting_get("dedicated_server_step")) + local detector_tube_step = 1 --MFF crabman(2/1/2016 bug,step too short) 2 * tonumber(minetest.setting_get("dedicated_server_step")) pipeworks.register_tube("pipeworks:detector_tube_on", { description = "Detecting Pneumatic Tube Segment on (you hacker you)", inventory_image = "pipeworks_detector_tube_inv.png", diff --git a/sorting_tubes.lua b/sorting_tubes.lua old mode 100644 new mode 100755 diff --git a/teleport_tube.lua b/teleport_tube.lua old mode 100644 new mode 100755 index 3a870f5..f9b0328 --- a/teleport_tube.lua +++ b/teleport_tube.lua @@ -173,7 +173,7 @@ pipeworks.register_tube("pipeworks:teleport_tube", { if mode == ":" then minetest.chat_send_player(sender_name, "Sorry, channel '"..new_channel.."' is reserved for exclusive use by "..name) return - + --channels starting with '[name];' can be used by other players, but cannot be received from elseif mode == ";" and (fields.cr1 or (can_receive ~= 0 and not fields.cr0)) then minetest.chat_send_player(sender_name, "Sorry, receiving from channel '"..new_channel.."' is reserved for "..name) diff --git a/textures/homedecor_oil_extract.png b/textures/homedecor_oil_extract.png old mode 100644 new mode 100755 index b945a9e..48e6dff Binary files a/textures/homedecor_oil_extract.png and b/textures/homedecor_oil_extract.png differ diff --git a/textures/homedecor_paraffin.png b/textures/homedecor_paraffin.png old mode 100644 new mode 100755 diff --git a/textures/homedecor_plastic_sheeting.png b/textures/homedecor_plastic_sheeting.png old mode 100644 new mode 100755 index fba0ccd..034dcc2 Binary files a/textures/homedecor_plastic_sheeting.png and b/textures/homedecor_plastic_sheeting.png differ diff --git a/textures/pipeworks_accelerator_tube_end.png b/textures/pipeworks_accelerator_tube_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_accelerator_tube_inv.png b/textures/pipeworks_accelerator_tube_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_accelerator_tube_noctr.png b/textures/pipeworks_accelerator_tube_noctr.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_accelerator_tube_plain.png b/textures/pipeworks_accelerator_tube_plain.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_accelerator_tube_short.png b/textures/pipeworks_accelerator_tube_short.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_autocrafter.png b/textures/pipeworks_autocrafter.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_black.png b/textures/pipeworks_black.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_blue.png b/textures/pipeworks_blue.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_button_interm.png b/textures/pipeworks_button_interm.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_button_off.png b/textures/pipeworks_button_off.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_button_on.png b/textures/pipeworks_button_on.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_conductor_tube_end.png b/textures/pipeworks_conductor_tube_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_conductor_tube_inv.png b/textures/pipeworks_conductor_tube_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_conductor_tube_noctr.png b/textures/pipeworks_conductor_tube_noctr.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_conductor_tube_on_end.png b/textures/pipeworks_conductor_tube_on_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_conductor_tube_on_noctr.png b/textures/pipeworks_conductor_tube_on_noctr.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_conductor_tube_on_plain.png b/textures/pipeworks_conductor_tube_on_plain.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_conductor_tube_plain.png b/textures/pipeworks_conductor_tube_plain.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_conductor_tube_short.png b/textures/pipeworks_conductor_tube_short.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_crossing_tube_end.png b/textures/pipeworks_crossing_tube_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_crossing_tube_inv.png b/textures/pipeworks_crossing_tube_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_crossing_tube_noctr.png b/textures/pipeworks_crossing_tube_noctr.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_crossing_tube_plain.png b/textures/pipeworks_crossing_tube_plain.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_crossing_tube_short.png b/textures/pipeworks_crossing_tube_short.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_deployer_back.png b/textures/pipeworks_deployer_back.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_deployer_bottom.png b/textures/pipeworks_deployer_bottom.png old mode 100644 new mode 100755 index fcb863c..b5ebd43 Binary files a/textures/pipeworks_deployer_bottom.png and b/textures/pipeworks_deployer_bottom.png differ diff --git a/textures/pipeworks_deployer_front_off.png b/textures/pipeworks_deployer_front_off.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_deployer_front_on.png b/textures/pipeworks_deployer_front_on.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_deployer_side.png b/textures/pipeworks_deployer_side.png old mode 100644 new mode 100755 index 2c7da56..2527f6e Binary files a/textures/pipeworks_deployer_side.png and b/textures/pipeworks_deployer_side.png differ diff --git a/textures/pipeworks_deployer_side1.png b/textures/pipeworks_deployer_side1.png old mode 100644 new mode 100755 index 2c7da56..2527f6e Binary files a/textures/pipeworks_deployer_side1.png and b/textures/pipeworks_deployer_side1.png differ diff --git a/textures/pipeworks_deployer_side2.png b/textures/pipeworks_deployer_side2.png old mode 100644 new mode 100755 index eb24061..032d471 Binary files a/textures/pipeworks_deployer_side2.png and b/textures/pipeworks_deployer_side2.png differ diff --git a/textures/pipeworks_deployer_top.png b/textures/pipeworks_deployer_top.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_detector_tube_end.png b/textures/pipeworks_detector_tube_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_detector_tube_inv.png b/textures/pipeworks_detector_tube_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_detector_tube_noctr.png b/textures/pipeworks_detector_tube_noctr.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_detector_tube_plain.png b/textures/pipeworks_detector_tube_plain.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_detector_tube_short.png b/textures/pipeworks_detector_tube_short.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_dispenser_back.png b/textures/pipeworks_dispenser_back.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_dispenser_bottom.png b/textures/pipeworks_dispenser_bottom.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_dispenser_front_off.png b/textures/pipeworks_dispenser_front_off.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_dispenser_front_on.png b/textures/pipeworks_dispenser_front_on.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_dispenser_side1.png b/textures/pipeworks_dispenser_side1.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_dispenser_side2.png b/textures/pipeworks_dispenser_side2.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_dispenser_top.png b/textures/pipeworks_dispenser_top.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_entry_panel.png b/textures/pipeworks_entry_panel.png old mode 100644 new mode 100755 index 040f408..e7c6e76 Binary files a/textures/pipeworks_entry_panel.png and b/textures/pipeworks_entry_panel.png differ diff --git a/textures/pipeworks_filter_input.png b/textures/pipeworks_filter_input.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_filter_output.png b/textures/pipeworks_filter_output.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_filter_side.png b/textures/pipeworks_filter_side.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_filter_top.png b/textures/pipeworks_filter_top.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_flow_sensor_off.png b/textures/pipeworks_flow_sensor_off.png old mode 100644 new mode 100755 index 10c6846..e08af06 Binary files a/textures/pipeworks_flow_sensor_off.png and b/textures/pipeworks_flow_sensor_off.png differ diff --git a/textures/pipeworks_flow_sensor_on.png b/textures/pipeworks_flow_sensor_on.png old mode 100644 new mode 100755 index 03e054a..da68863 Binary files a/textures/pipeworks_flow_sensor_on.png and b/textures/pipeworks_flow_sensor_on.png differ diff --git a/textures/pipeworks_fountainhead.png b/textures/pipeworks_fountainhead.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_grating_sides.png b/textures/pipeworks_grating_sides.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_grating_top.png b/textures/pipeworks_grating_top.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_green.png b/textures/pipeworks_green.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_filter_input.png b/textures/pipeworks_mese_filter_input.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_filter_output.png b/textures/pipeworks_mese_filter_output.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_filter_side.png b/textures/pipeworks_mese_filter_side.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_filter_top.png b/textures/pipeworks_mese_filter_top.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_sand_tube_end.png b/textures/pipeworks_mese_sand_tube_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_sand_tube_inv.png b/textures/pipeworks_mese_sand_tube_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_sand_tube_noctr.png b/textures/pipeworks_mese_sand_tube_noctr.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_sand_tube_plain.png b/textures/pipeworks_mese_sand_tube_plain.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_sand_tube_short.png b/textures/pipeworks_mese_sand_tube_short.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_end.png b/textures/pipeworks_mese_tube_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_inv.png b/textures/pipeworks_mese_tube_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_noctr_1.png b/textures/pipeworks_mese_tube_noctr_1.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_noctr_2.png b/textures/pipeworks_mese_tube_noctr_2.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_noctr_3.png b/textures/pipeworks_mese_tube_noctr_3.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_noctr_4.png b/textures/pipeworks_mese_tube_noctr_4.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_noctr_5.png b/textures/pipeworks_mese_tube_noctr_5.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_noctr_6.png b/textures/pipeworks_mese_tube_noctr_6.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_plain_1.png b/textures/pipeworks_mese_tube_plain_1.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_plain_2.png b/textures/pipeworks_mese_tube_plain_2.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_plain_3.png b/textures/pipeworks_mese_tube_plain_3.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_plain_4.png b/textures/pipeworks_mese_tube_plain_4.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_plain_5.png b/textures/pipeworks_mese_tube_plain_5.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_plain_6.png b/textures/pipeworks_mese_tube_plain_6.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_mese_tube_short.png b/textures/pipeworks_mese_tube_short.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_back.png b/textures/pipeworks_nodebreaker_back.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_bottom_off.png b/textures/pipeworks_nodebreaker_bottom_off.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_bottom_on.png b/textures/pipeworks_nodebreaker_bottom_on.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_front_off.png b/textures/pipeworks_nodebreaker_front_off.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_front_on.png b/textures/pipeworks_nodebreaker_front_on.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_side1_off.png b/textures/pipeworks_nodebreaker_side1_off.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_side1_on.png b/textures/pipeworks_nodebreaker_side1_on.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_side2_off.png b/textures/pipeworks_nodebreaker_side2_off.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_side2_on.png b/textures/pipeworks_nodebreaker_side2_on.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_top_off.png b/textures/pipeworks_nodebreaker_top_off.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_nodebreaker_top_on.png b/textures/pipeworks_nodebreaker_top_on.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_one_way_tube_input.png b/textures/pipeworks_one_way_tube_input.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_one_way_tube_output.png b/textures/pipeworks_one_way_tube_output.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_one_way_tube_side.png b/textures/pipeworks_one_way_tube_side.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_one_way_tube_top.png b/textures/pipeworks_one_way_tube_top.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_pane_embedded_tube_ends.png b/textures/pipeworks_pane_embedded_tube_ends.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_pane_embedded_tube_sides.png b/textures/pipeworks_pane_embedded_tube_sides.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_pipe_3_empty.png b/textures/pipeworks_pipe_3_empty.png old mode 100644 new mode 100755 index d13ec77..f21f737 Binary files a/textures/pipeworks_pipe_3_empty.png and b/textures/pipeworks_pipe_3_empty.png differ diff --git a/textures/pipeworks_pipe_3_loaded.png b/textures/pipeworks_pipe_3_loaded.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_pipe_inv.png b/textures/pipeworks_pipe_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_pipe_plain.png b/textures/pipeworks_pipe_plain.png old mode 100644 new mode 100755 index 7cbc11b..50c9160 Binary files a/textures/pipeworks_pipe_plain.png and b/textures/pipeworks_pipe_plain.png differ diff --git a/textures/pipeworks_plastic_sheeting.png b/textures/pipeworks_plastic_sheeting.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_pump_off.png b/textures/pipeworks_pump_off.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_pump_on.png b/textures/pipeworks_pump_on.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_red.png b/textures/pipeworks_red.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_sand_tube_end.png b/textures/pipeworks_sand_tube_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_sand_tube_inv.png b/textures/pipeworks_sand_tube_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_sand_tube_noctr.png b/textures/pipeworks_sand_tube_noctr.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_sand_tube_plain.png b/textures/pipeworks_sand_tube_plain.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_sand_tube_short.png b/textures/pipeworks_sand_tube_short.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_spigot.png b/textures/pipeworks_spigot.png old mode 100644 new mode 100755 index a79dbf8..ed33665 Binary files a/textures/pipeworks_spigot.png and b/textures/pipeworks_spigot.png differ diff --git a/textures/pipeworks_storage_tank_back.png b/textures/pipeworks_storage_tank_back.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_fittings.png b/textures/pipeworks_storage_tank_fittings.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_0.png b/textures/pipeworks_storage_tank_front_0.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_1.png b/textures/pipeworks_storage_tank_front_1.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_10.png b/textures/pipeworks_storage_tank_front_10.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_2.png b/textures/pipeworks_storage_tank_front_2.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_3.png b/textures/pipeworks_storage_tank_front_3.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_4.png b/textures/pipeworks_storage_tank_front_4.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_5.png b/textures/pipeworks_storage_tank_front_5.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_6.png b/textures/pipeworks_storage_tank_front_6.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_7.png b/textures/pipeworks_storage_tank_front_7.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_8.png b/textures/pipeworks_storage_tank_front_8.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_storage_tank_front_9.png b/textures/pipeworks_storage_tank_front_9.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_teleport_tube_end.png b/textures/pipeworks_teleport_tube_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_teleport_tube_inv.png b/textures/pipeworks_teleport_tube_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_teleport_tube_noctr.png b/textures/pipeworks_teleport_tube_noctr.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_teleport_tube_plain.png b/textures/pipeworks_teleport_tube_plain.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_teleport_tube_short.png b/textures/pipeworks_teleport_tube_short.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_testobject.png b/textures/pipeworks_testobject.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_trashcan_bottom.png b/textures/pipeworks_trashcan_bottom.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_trashcan_side.png b/textures/pipeworks_trashcan_side.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_tube_connection_metallic.png b/textures/pipeworks_tube_connection_metallic.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_tube_connection_stony.png b/textures/pipeworks_tube_connection_stony.png old mode 100644 new mode 100755 index 6ed02a4..78a9979 Binary files a/textures/pipeworks_tube_connection_stony.png and b/textures/pipeworks_tube_connection_stony.png differ diff --git a/textures/pipeworks_tube_connection_wooden.png b/textures/pipeworks_tube_connection_wooden.png old mode 100644 new mode 100755 index ff199ca..36548df Binary files a/textures/pipeworks_tube_connection_wooden.png and b/textures/pipeworks_tube_connection_wooden.png differ diff --git a/textures/pipeworks_tube_end.png b/textures/pipeworks_tube_end.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_tube_inv.png b/textures/pipeworks_tube_inv.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_tube_noctr.png b/textures/pipeworks_tube_noctr.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_tube_plain.png b/textures/pipeworks_tube_plain.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_tube_short.png b/textures/pipeworks_tube_short.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_tube_transparent.png b/textures/pipeworks_tube_transparent.png old mode 100644 new mode 100755 index aa4418d..52a8348 Binary files a/textures/pipeworks_tube_transparent.png and b/textures/pipeworks_tube_transparent.png differ diff --git a/textures/pipeworks_valve.png b/textures/pipeworks_valve.png old mode 100644 new mode 100755 index 60ef960..d9ccae5 Binary files a/textures/pipeworks_valve.png and b/textures/pipeworks_valve.png differ diff --git a/textures/pipeworks_white.png b/textures/pipeworks_white.png old mode 100644 new mode 100755 diff --git a/textures/pipeworks_yellow.png b/textures/pipeworks_yellow.png old mode 100644 new mode 100755 diff --git a/trashcan.lua b/trashcan.lua old mode 100644 new mode 100755 index 87980ab..35ea321 --- a/trashcan.lua +++ b/trashcan.lua @@ -1,6 +1,6 @@ minetest.register_node("pipeworks:trashcan", { - description = "Trash Can", - drawtype = "normal", + description = "Trash Can", + drawtype = "normal", tiles = { "pipeworks_trashcan_bottom.png", "pipeworks_trashcan_bottom.png", @@ -8,15 +8,15 @@ minetest.register_node("pipeworks:trashcan", { "pipeworks_trashcan_side.png", "pipeworks_trashcan_side.png", "pipeworks_trashcan_side.png", - }, - groups = {snappy = 3, tubedevice = 1, tubedevice_receiver = 1}, + }, + groups = {snappy = 3, tubedevice = 1, tubedevice_receiver = 1}, tube = { insert_object = function(pos, node, stack, direction) return ItemStack("") end, connect_sides = {left = 1, right = 1, front = 1, back = 1, top = 1, bottom = 1}, priority = 1, -- Lower than anything else - }, + }, on_construct = function(pos) local meta = minetest.get_meta(pos) meta:set_string("formspec", @@ -31,7 +31,7 @@ minetest.register_node("pipeworks:trashcan", { "list[current_player;main;0,3;8,4;]") meta:set_string("infotext", "Trash Can") meta:get_inventory():set_size("trash", 1) - end, + end, after_place_node = pipeworks.after_place, after_dig_node = pipeworks.after_dig, on_metadata_inventory_put = function(pos, listname, index, stack, player) diff --git a/tube_registration.lua b/tube_registration.lua old mode 100644 new mode 100755 index c926216..8f4803e --- a/tube_registration.lua +++ b/tube_registration.lua @@ -38,11 +38,11 @@ local register_one_tube = function(name, tname, dropname, desc, plain, noctrs, e local outboxes = {} local outsel = {} local outimgs = {} - + for i = 1, 6 do outimgs[vti[i]] = plain[i] end - + for _, v in ipairs(connects) do table.extend(outboxes, pipeworks.tube_boxes[v]) table.insert(outsel, pipeworks.tube_selectboxes[v]) @@ -73,10 +73,10 @@ local register_one_tube = function(name, tname, dropname, desc, plain, noctrs, e outsel = { -24/64, -10/64, -10/64, 24/64, 10/64, 10/64 } wscale = {x = 1, y = 1, z = 0.01} end - + local rname = string.format("%s_%s", name, tname) table.insert(tubenodes, rname) - + local nodedef = { description = tubedesc, drawtype = "nodebox", @@ -112,7 +112,7 @@ local register_one_tube = function(name, tname, dropname, desc, plain, noctrs, e if style == "6d" then nodedef.paramtype2 = "facedir" end - + if special == nil then special = {} end for key, value in pairs(special) do diff --git a/vacuum_tubes.lua b/vacuum_tubes.lua old mode 100644 new mode 100755 index 51f6f81..ce7f31b --- a/vacuum_tubes.lua +++ b/vacuum_tubes.lua @@ -87,28 +87,35 @@ local tube_inject_item = pipeworks.tube_inject_item local get_objects_inside_radius = minetest.get_objects_inside_radius local function vacuum(pos, radius) radius = radius + 0.5 + -- Modification made by MFF to reduce lag + local max_items = 0 for _, object in pairs(get_objects_inside_radius(pos, sqrt_3 * radius)) do local lua_entity = object:get_luaentity() if not object:is_player() and lua_entity and lua_entity.name == "__builtin:item" then - local obj_pos = object:getpos() - local x1, y1, z1 = pos.x, pos.y, pos.z - local x2, y2, z2 = obj_pos.x, obj_pos.y, obj_pos.z - - if x1 - radius <= x2 and x2 <= x1 + radius - and y1 - radius <= y2 and y2 <= y1 + radius - and z1 - radius <= z2 and z2 <= z1 + radius then - if lua_entity.itemstring ~= "" then - tube_inject_item(pos, pos, vector.new(0, 0, 0), lua_entity.itemstring) - lua_entity.itemstring = "" - end + max_items = max_items + 1 + if max_items > 50 then object:remove() + else + local obj_pos = object:getpos() + local x1, y1, z1 = pos.x, pos.y, pos.z + local x2, y2, z2 = obj_pos.x, obj_pos.y, obj_pos.z + + if x1 - radius <= x2 and x2 <= x1 + radius + and y1 - radius <= y2 and y2 <= y1 + radius + and z1 - radius <= z2 and z2 <= z1 + radius then + if lua_entity.itemstring ~= "" then + tube_inject_item(pos, pos, vector.new(0, 0, 0), lua_entity.itemstring) + lua_entity.itemstring = "" + end + object:remove() + end end end end end minetest.register_abm({nodenames = {"group:vacuum_tube"}, - interval = 1, + interval = 4, chance = 1, label = "Vacuum tubes", action = function(pos, node, active_object_count, active_object_count_wider) diff --git a/wielder.lua b/wielder.lua old mode 100644 new mode 100755 index 3cb1649..09719b2 --- a/wielder.lua +++ b/wielder.lua @@ -408,7 +408,17 @@ if pipeworks.enable_deployer then sneak = false, act = function(virtplayer, pointed_thing) local wieldstack = virtplayer:get_wielded_item() - virtplayer:set_wielded_item((minetest.registered_items[wieldstack:get_name()] or {on_place=minetest.item_place}).on_place(wieldstack, virtplayer, pointed_thing) or wieldstack) + if not minetest.setting_getbool("creative_mode") then + virtplayer:set_wielded_item((minetest.registered_items[wieldstack:get_name()] or {on_place=minetest.item_place}).on_place(wieldstack, virtplayer, pointed_thing) or wieldstack) + else + local stack = (minetest.registered_items[wieldstack:get_name()] or {on_place=minetest.item_place}).on_place(wieldstack, virtplayer, pointed_thing) + if stack:get_name() ~= wieldstack:get_name() or stack:get_count() ~= wieldstack:get_count() then + virtplayer:set_wielded_item(stack) + else -- Manual decrease + wieldstack:take_item(1) + virtplayer:set_wielded_item(wieldstack) + end + end end, eject_drops = false, })