Add buffer_to_string API function
This commit is contained in:
parent
0260ee789e
commit
69b7e1c410
@ -137,3 +137,16 @@ function fluid_lib.take_from_buffer(pos, buffer, count)
|
|||||||
|
|
||||||
return bfdata.fluid, take_count
|
return bfdata.fluid, take_count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function fluid_lib.buffer_to_string(buffer)
|
||||||
|
if not buffer then return "" end
|
||||||
|
local amount = fluid_lib.comma_value(buffer.amount)
|
||||||
|
local capacity = fluid_lib.comma_value(buffer.capacity)
|
||||||
|
local description = "Empty"
|
||||||
|
|
||||||
|
if buffer.fluid ~= "" then
|
||||||
|
description = fluid_lib.cleanse_node_description(buffer.fluid)
|
||||||
|
end
|
||||||
|
|
||||||
|
return ("%s (%s / %s %s)"):format(description, amount, capacity, fluid_lib.unit)
|
||||||
|
end
|
||||||
|
@ -38,4 +38,9 @@ function fluid_lib.cleanse_node_description(node)
|
|||||||
return no_source
|
return no_source
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function fluid_lib.comma_value(n) -- credit http://richard.warburton.it
|
||||||
|
local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
|
||||||
|
return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
|
||||||
|
end
|
||||||
|
|
||||||
dofile(modpath.."/buffer.lua")
|
dofile(modpath.."/buffer.lua")
|
||||||
|
@ -12,17 +12,12 @@ local function preserve_metadata(pos, oldnode, oldmeta, drops)
|
|||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
local ndef = minetest.registered_nodes[node.name]
|
local ndef = minetest.registered_nodes[node.name]
|
||||||
|
|
||||||
local fluid_desc = "Empty"
|
|
||||||
if buffer.fluid ~= "" then
|
|
||||||
fluid_desc = fluid_lib.cleanse_node_description(buffer.fluid)
|
|
||||||
end
|
|
||||||
|
|
||||||
for i,stack in pairs(drops) do
|
for i,stack in pairs(drops) do
|
||||||
local stack_meta = stack:get_meta()
|
local stack_meta = stack:get_meta()
|
||||||
stack_meta:set_int("fluid_storage", buffer.amount)
|
stack_meta:set_int("fluid_storage", buffer.amount)
|
||||||
stack_meta:set_string("fluid", buffer.fluid)
|
stack_meta:set_string("fluid", buffer.fluid)
|
||||||
stack_meta:set_string("description", ("%s\nContains: %s (%d/%d %s)"):format(ndef.description,
|
stack_meta:set_string("description", ("%s\nContents: %s (%d/%d %s)"):format(ndef.description,
|
||||||
fluid_desc, buffer.amount, buffer.capacity, fluid_lib.unit))
|
fluid_lib.buffer_to_string(buffer)))
|
||||||
|
|
||||||
drops[i] = stack
|
drops[i] = stack
|
||||||
end
|
end
|
||||||
@ -78,14 +73,9 @@ local function tank_on_timer(pos, elapsed)
|
|||||||
meta:set_string("buffer_fluid", "")
|
meta:set_string("buffer_fluid", "")
|
||||||
end
|
end
|
||||||
|
|
||||||
local fluid_desc = "Empty"
|
|
||||||
if buffer.fluid ~= "" then
|
|
||||||
fluid_desc = fluid_lib.cleanse_node_description(buffer.fluid)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Update infotext
|
-- Update infotext
|
||||||
meta:set_string("infotext", ("%s\nContains: %s (%d/%d %s)"):format(ndef.description, fluid_desc,
|
meta:set_string("infotext", ("%s\nContents: %s"):format(ndef.description,
|
||||||
buffer.amount, buffer.capacity, fluid_lib.unit))
|
fluid_lib.buffer_to_string(buffer)))
|
||||||
|
|
||||||
local param2 = math.min(percentile * 63, 63)
|
local param2 = math.min(percentile * 63, 63)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user