Fix crash when buffer doesn't accept fluids

This commit is contained in:
Evert Prants 2020-05-20 17:49:18 +03:00
parent f7250e5bec
commit 4b9b42c409
Signed by: evert
GPG Key ID: 1688DA83D222D0B5
3 changed files with 6 additions and 1 deletions

View File

@ -47,6 +47,10 @@ function fluid_lib.buffer_accepts_fluid(pos, buffer, fluid)
local bfdata = fluid_lib.get_buffer_data(pos, buffer)
if not bfdata then return false end
if not bfdata.accepts then
return false
end
if bfdata.fluid ~= "" and bfdata.fluid ~= fluid then
return false
end

View File

@ -32,6 +32,7 @@ function fluid_lib.cleanse_node_description(node)
local ndef = minetest.registered_nodes[node]
if not ndef then return nil end
-- Remove translation string
local desc_no_translation = ndef.description
if string.match(desc_no_translation, "^\27") ~= nil then
desc_no_translation = desc_no_translation:match("[)]([%w%s]+)\27")

View File

@ -212,7 +212,7 @@ function fluid_lib.transfer_timer_tick(pos, elapsed)
local fluidcount = srcdef.node_io_get_liquid_stack(srcpos, srcnode, "", aindex):get_count()
local defc = math.min(fluidcount, idef)
local defi = srcdef.node_io_take_liquid(srcpos, srcnode, "", nil, afluid, defc)
if defi.millibuckets > 0 then
if defi and defi.millibuckets > 0 then
local lo = destdef.node_io_put_liquid(pos, destnode, "", nil, afluid, defi.millibuckets)
pumped = pumped + (defi.millibuckets - lo)
changed = true