Universal Fluid API for Minetest
Go to file
2018-06-20 16:56:24 +03:00
bucket Initial commit 2018-06-20 16:55:16 +03:00
fluid_lib Initial commit 2018-06-20 16:55:16 +03:00
LICENSE Initial commit 2018-06-20 16:55:16 +03:00
modpack.txt Initial commit 2018-06-20 16:55:16 +03:00
README.md readme 2018-06-20 16:56:24 +03:00

Universal Fluid API

This API adds support for fluid_buffers inside nodes. This means that nodes can contain fluid.

How to Use

  1. Add the node to the fluid_container group.
  2. Add the following to the node defintion:
fluid_buffers = {
    buffer_name = {
        capacity = 2000,
        accepts = {"default:water_source", "group:water_source"}, -- you can also set this to true to accept any fluid!
        drainable = true,
    },
}
  1. Set the appropriate metadata.
  • buffer_name_fluid = string - Source node of the fluid.
  • buffer_name_fluid_storage = int - How much fluid there is in this buffer.

API

All numbers are in milli-buckets (1 bucket = 1000 mB).

  • fluid_lib.get_node_buffers(pos)

    • Returns all the fluid buffers present inside a node.
  • fluid_lib.get_buffer_data(pos, buffer)

    • Returns all the information about this buffer.
{
    fluid     = fluid source block,
    amount    = amount of fluid,
    accepts   = list of accepted fluids,
    capacity  = capacity of the buffer,
    drainable = is this buffer drainable,
}
  • fluid_lib.buffer_accepts_fluid(pos, buffer, fluid)

    • Returns true if fluid can go inside the buffer at pos.
  • fluid_lib.can_insert_into_buffer(pos, buffer, fluid, count)

    • Returns the amount of fluid that can go inside the buffer at pos. If all of it fits, it returns count.
  • fluid_lib.insert_into_buffer(pos, buffer, fluid, count)

    • Actually does the inserting.
  • fluid_lib.can_take_from_buffer(pos, buffer, count)

    • Returns the amount of fluid that can be taken from the buffer at pos.
  • fluid_lib.take_from_buffer(pos, buffer, count)

    • Actually takes the fluid. On success, returns the source block that was taken and how much was actually taken.
  • bucket.register_liquid(source, flowing, itemname, inventory_image, name, groups, force_renew)

    • Works exactly the same as the default bucket mod, except it adds callbacks to insert/take fluid from nodes.
    • inventory_image can be a ColorString.

License

bucket

See bucket/license.txt

fluid_lib

See LICENSE