3.7 KiB
mcl_cauldrons
This mod add an API to add cauldrons to mcl.
Node definitions
Extensions to the base node definition descriptor (as passed to minetest.register_node()
) for cauldrons:
-
.groups.cauldron
: 1 - is a cauldron -
.groups.cauldron_filled
: number 0..3 - content level (0=empty, 3=full) -
.groups.cauldron_maximum
: number 1.. - maximum contents level -
.groups.cauldron_water
: 1 - contains water -
.groups.cauldron_river_water
: 1 - contains river water -
._mcl_on_fill(node, amount)
: returns node { name, param1, param2 } -
._mcl_on_drain(node, amount)
: returns node { name, param1, param2 }
mcl_cauldrons.registered_cauldrons
Table containing cauldron definitions, indexed by name.
mcl_cauldrons.register_cauldron_node(nodename, cauldron_def)
Cauldron interactions
mcl_cauldrons.find_cauldron(substance, fill_level)
Returns table, { node_name, node_definition }, returns nil if no match. Find registered cauldron best matching substance and fill level.
substance
: string, one of the groups keys qualifying the content (e.g."cauldron_water"
); empty string for empty cauldron.fill_level
: desired fill level of cauldron;nil
for first/any match; 0 resolves to empty cauldron.
mcl_cauldrons.is_cauldron(node)
Returns boolean. Test is nodename describes a cauldron.
node
: Minetest node { name, param1, param2 }
mcl_cauldrons.is_empty(node)
Returns boolean. Test cauldron is empty.
node
: Minetest node { name, param1, param2 }
mcl_cauldrons.is_full(node)
Returns boolean. Test cauldron is full.
node
: Minetest node { name, param1, param2 }
mcl_cauldrons.has_substance(node, substance)
Returns boolean. Test the content is a certain substance.
node
: Minetest node { name, param1, param2 }substance
: string, one of the groups key qualifying the content (e.g."cauldron_water"
).
mcl_cauldrons.get_maximum(node, substance)
Returns number. Get the maximum number of levels for requested substance.
node
: Minetest node { name, param1, param2 }substance
: string, group-key qualifying the content (e.g."cauldron_water"
);nil
for any/do-not-care.
mcl_cauldrons.get_level(node, substance)
Returns number. Get the fill level of the requested substance.
node
: Minetest node { name, param1, param2 }substance
: string, group-key qualifying the content (e.g."cauldron_water"
);nil
for any/do-not-care.
mcl_cauldrons.set_level(node, fill_level, substance)
Returns node { name, param1, param2 }. Set the fill level of cauldron, with optional explicit substance.
node
: Minetest node { name, param1, param2 }substance
: string, group-key of cauldron content;nil
to preserve substance.
mcl_cauldrons.fill_levels(node, change_levels, substance)
Returns node { name, param1, param2 }. Increase levels in cauldron, constrained by game rules.
node
: Minetest node { name, param1, param2 }substance
: string, group-key of cauldron content;nil
to preserve substance.
mcl_cauldrons.drain_levels(nodename, change_levels, substance)
Returns node { name, param1, param2 }. Reduce levels in cauldron, constrained by game rules.
node
: Minetest node { name, param1, param2 }substance
: string, group-key of cauldron content;nil
to preserve substance.
mcl_cauldrons.register_cauldron_node(nodename, cauldron_definition, doc_alias)
Register cauldron's node defintion. Affects mcl_cauldrons.registered_cauldrons
while ultimately ending up at minetest.register_node
.
nodename
: string - name to assign to registered node.cauldron_defintion
: table - node definition (expecting mcl_cauldrons extensions).doc_alias
: string - documentation (in-game encyclopedia) entry associated with this definition.