Universal Fluid API for Minetest
Go to file
Evert Prants 0260ee789e
Fix tank preservation
2018-06-20 22:05:25 +03:00
bucket Fluid tanks!! More API functions 2018-06-20 18:35:53 +03:00
fluid_lib Fix drainable parameter 2018-06-20 19:57:37 +03:00
fluid_tanks Fix tank preservation 2018-06-20 22:05:25 +03:00
LICENSE Initial commit 2018-06-20 16:55:16 +03:00
README.md fixes 2018-06-20 17:05:41 +03:00
modpack.txt Initial commit 2018-06-20 16:55:16 +03:00

README.md

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