summaryrefslogtreecommitdiff
path: root/farming/api.txt
blob: eda12898ede97b46faa9f92d4d4ea99d5269e889 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Farming API
-----------

The farming API allows you to easily register plants and hoes.

`farming.register_hoe(name, hoe definition)`
 * Register a new hoe, see [#hoe definition]

`farming.register_plant(name, Plant definition)`
 * Register a new growing plant, see [#Plant definition]

`farming.registered_plants[name] = definition`
 * Table of registered plants, indexed by plant name

### Hoe Definition


	{
		description = "",                      -- Description for tooltip
		inventory_image = "unknown_item.png",  -- Image to be used as wield- and inventory image
		max_uses = 30,                         -- Uses until destroyed
		material = "",                         -- Material for recipes
		recipe = {                             -- Craft recipe, if material isn't used
			{"air", "air", "air"},
			{"", "group:stick"},
			{"", "group:stick"},
		}
	}

### Plant definition

	{
		description = "",                      -- Description of seed item
		inventory_image = "unknown_item.png",  -- Image to be used as seed's wield- and inventory image
		steps = 8,                             -- How many steps the plant has to grow, until it can be harvested
		-- ^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber)
		minlight = 13,                         -- Minimum light to grow
		maxlight = default.LIGHT_MAX           -- Maximum light to grow
	}

Note: Any crops registered with the above function will use the new growing routines, also if crops are manually added with the {growing=1} group they will also grow.

### Crop functions

If a mod registers nodes to be used as crops using the {growing=1} group then an additional function can be used for custom growth checks instead of the standard 'are we above wet soil'.

growth_check = function(pos, node_name)
	-- check surrounding for jungle tree
	if minetest.find_node_near(pos, 1, {"default:jungletree"}) then
		return false -- place next growth stage
	end
	return true -- condition not met, skip next growth stage until next check
end,