mirror of
https://github.com/theFox6/microexpansion.git
synced 2024-11-22 23:23:52 +01:00
do not stack tools with different wear
This commit is contained in:
parent
347cec5894
commit
96a66c3336
@ -4,32 +4,38 @@ local networks = me.networks
|
|||||||
local path = microexpansion.get_module_path("network")
|
local path = microexpansion.get_module_path("network")
|
||||||
|
|
||||||
local function split_stack_values(stack)
|
local function split_stack_values(stack)
|
||||||
local stack_name, stack_count, stack_meta
|
local stack_name, stack_count, stack_wear, stack_meta
|
||||||
if type(stack) == "string" then
|
if type(stack) == "string" then
|
||||||
local split_string = stack:split(" ")
|
local split_string = stack:split(" ")
|
||||||
stack_name = split_string[1]
|
stack_name = split_string[1]
|
||||||
if (#split_string > 1) then
|
if (#split_string > 1) then
|
||||||
stack_count = tonumber(split_string[2])
|
stack_count = tonumber(split_string[2])
|
||||||
|
if (#split_string > 2) then
|
||||||
|
stack_wear = tonumber(split_string[3])
|
||||||
|
else
|
||||||
|
stack_wear = 0
|
||||||
|
end
|
||||||
else
|
else
|
||||||
stack_count = 1
|
stack_count = 1
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
stack_name = stack:get_name()
|
stack_name = stack:get_name()
|
||||||
stack_count = stack:get_count()
|
stack_count = stack:get_count()
|
||||||
|
stack_wear = stack:get_wear()
|
||||||
stack_meta = stack:get_meta()
|
stack_meta = stack:get_meta()
|
||||||
end
|
end
|
||||||
return stack_name, stack_count, stack_meta
|
return stack_name, stack_count, stack_wear, stack_meta
|
||||||
end
|
end
|
||||||
|
|
||||||
function me.insert_item(stack, inv, listname)
|
function me.insert_item(stack, inv, listname)
|
||||||
if me.settings.huge_stacks == false then
|
if me.settings.huge_stacks == false then
|
||||||
return inv:add_item(listname, stack)
|
return inv:add_item(listname, stack)
|
||||||
end
|
end
|
||||||
local stack_name,stack_count,stack_meta = split_stack_values(stack)
|
local stack_name,stack_count,stack_wear,stack_meta = split_stack_values(stack)
|
||||||
local found = false
|
local found = false
|
||||||
for i = 0, inv:get_size(listname) do
|
for i = 0, inv:get_size(listname) do
|
||||||
local inside = inv:get_stack(listname, i)
|
local inside = inv:get_stack(listname, i)
|
||||||
if inside:get_name() == stack_name then
|
if inside:get_name() == stack_name and inside:get_wear() == stack_wear then
|
||||||
if inside:get_meta():equals(stack_meta) then
|
if inside:get_meta():equals(stack_meta) then
|
||||||
local total_count = inside:get_count() + stack_count
|
local total_count = inside:get_count() + stack_count
|
||||||
-- bigger item count is not possible we only have unsigned 16 bit
|
-- bigger item count is not possible we only have unsigned 16 bit
|
||||||
|
@ -209,7 +209,7 @@ local function create_inventory(net)
|
|||||||
local inside_stack = inv:get_stack(listname, index)
|
local inside_stack = inv:get_stack(listname, index)
|
||||||
local stack_name = stack:get_name()
|
local stack_name = stack:get_name()
|
||||||
-- improve performance by skipping unnessecary calls
|
-- improve performance by skipping unnessecary calls
|
||||||
if inside_stack:get_name() ~= stack_name or inside_stack:get_count() >= inside_stack:get_stack_max() then
|
if inside_stack:get_name() ~= stack_name or inside_stack:get_count() >= inside_stack:get_stack_max() then
|
||||||
if inv:get_stack(listname, index+1):get_name() ~= "" then
|
if inv:get_stack(listname, index+1):get_name() ~= "" then
|
||||||
return stack:get_count()
|
return stack:get_count()
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user