forked from minetest-mods/unified_inventory
Properly seperate chance digs from normal digs
This commit is contained in:
parent
80f99cffe7
commit
1c5fcd18ca
39
api.lua
39
api.lua
@ -58,11 +58,10 @@ minetest.after(0.01, function()
|
|||||||
end
|
end
|
||||||
-- Complex drops
|
-- Complex drops
|
||||||
elseif type(def.drop) == "table" then
|
elseif type(def.drop) == "table" then
|
||||||
--[[ Extract single items from the table and save them into dedicated table
|
--[[ Extract single items from the table and save them into dedicated tables
|
||||||
to register them later, in order to avoid duplicates ]]
|
to register them later, in order to avoid duplicates ]]
|
||||||
local drop_memo = {}
|
local drop_guaranteed = {}
|
||||||
--[[ Also take count into account ]]
|
local drop_maybe = {}
|
||||||
local drop_count = {}
|
|
||||||
for i=1,#def.drop.items do
|
for i=1,#def.drop.items do
|
||||||
local itit = def.drop.items[i]
|
local itit = def.drop.items[i]
|
||||||
for j=1,#itit.items do
|
for j=1,#itit.items do
|
||||||
@ -70,27 +69,33 @@ minetest.after(0.01, function()
|
|||||||
if not dstack:is_empty() and dstack:get_name() ~= name then
|
if not dstack:is_empty() and dstack:get_name() ~= name then
|
||||||
local dname = dstack:get_name()
|
local dname = dstack:get_name()
|
||||||
local dcount = dstack:get_count()
|
local dcount = dstack:get_count()
|
||||||
if drop_count[dname] == nil then
|
|
||||||
drop_count[dname] = 0
|
|
||||||
end
|
|
||||||
if #itit.items == 1 and itit.rarity == 1 then
|
if #itit.items == 1 and itit.rarity == 1 then
|
||||||
if drop_count[dname] == "digging_chance" then
|
if drop_guaranteed[dname] == nil then
|
||||||
drop_count[dname] = 0
|
drop_guaranteed[dname] = 0
|
||||||
end
|
end
|
||||||
drop_memo[dname] = "digging"
|
drop_guaranteed[dname] = drop_guaranteed[dname] + dcount
|
||||||
drop_count[dname] = drop_count[dname] + dcount
|
else
|
||||||
elseif drop_memo[dname] ~= "digging" then
|
if drop_maybe[dname] == nil then
|
||||||
drop_memo[dname] = "digging_chance"
|
drop_maybe[dname] = 0
|
||||||
drop_count[dname] = drop_count[dname] + dcount
|
end
|
||||||
|
drop_maybe[dname] = drop_maybe[dname] + dcount
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
for itemstring, crafttype in pairs(drop_memo) do
|
for itemstring, count in pairs(drop_guaranteed) do
|
||||||
unified_inventory.register_craft({
|
unified_inventory.register_craft({
|
||||||
type = crafttype,
|
type = "digging",
|
||||||
items = {name},
|
items = {name},
|
||||||
output = itemstring .. " " .. drop_count[itemstring],
|
output = itemstring .. " " .. count,
|
||||||
|
width = 0,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
for itemstring, count in pairs(drop_maybe) do
|
||||||
|
unified_inventory.register_craft({
|
||||||
|
type = "digging_chance",
|
||||||
|
items = {name},
|
||||||
|
output = itemstring .. " " .. count,
|
||||||
width = 0,
|
width = 0,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user