MineClone2/mods/ITEMS/mcl_cauldrons/API.md

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.