fluid_lib/README.md

63 lines
2.1 KiB
Markdown
Raw Normal View History

2018-06-20 13:55:16 +00: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 = {
2018-06-20 13:56:24 +00:00
buffer_name = {
capacity = 2000,
accepts = {"default:water_source", "group:water_source"}, -- you can also set this to true to accept any fluid!
drainable = true,
},
2018-06-20 13:55:16 +00:00
}
```
3. 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.
```
{
2018-06-20 13:56:24 +00:00
fluid = fluid source block,
amount = amount of fluid,
accepts = list of accepted fluids,
capacity = capacity of the buffer,
drainable = is this buffer drainable,
2018-06-20 13:55:16 +00:00
}
```
* `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](bucket/license.txt)
### fluid_lib
See [LICENSE](LICENSE)