Difference between revisions of "minetest.spawn tree"

From Minetest Developer Wiki
Jump to navigation Jump to search
m (Make sure the name “Minetest Game” is used consistently throughout this page)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{UnofficialLua}}
 
{{DISPLAYTITLE:minetest.spawn_tree}}
 
{{DISPLAYTITLE:minetest.spawn_tree}}
 
== Syntax ==
 
== Syntax ==
Line 4: Line 5:
  
 
== Description ==
 
== Description ==
* <code>pos</code> — [[position]]
+
* <code>pos</code> — position
* <code>tree</code> — [[treedef]]
+
* <code>tree</code> — treedef
  
 
Spawns an L-system tree at position <code>pos</code>, using the tree definition <code>tree</code>.
 
Spawns an L-system tree at position <code>pos</code>, using the tree definition <code>tree</code>.
Line 12: Line 13:
  
 
== Example ==
 
== Example ==
This code will spawn an apple tree with its origin at position (0,0,0), assuming that [http://wiki.minetest.net/Subgames/Minetest%20Game Minetest Game] is used:
+
This code adds the chat command "/spawn_tree" to spawn an apple tree with its origin at the current position of the player, assuming that [http://wiki.minetest.net/Subgames/Minetest%20Game Minetest Game] is used:
 
<source>
 
<source>
 
local treedef = {
 
local treedef = {
Line 29: Line 30:
 
}
 
}
  
local pos = { x=0, y=0, z=0 }
+
core.register_chatcommand("spawn_tree", {
 
+
params = "", description = "Spawns tree at player position",
minetest.spawn_tree(pos, treedef)
+
func = function(name, param)
 +
local pos = minetest.get_player_by_name(name):getpos()
 +
minetest.chat_send_player(name, "Spawning tree at " .. minetest.pos_to_string(pos)
 +
.. ", please wait")
 +
minetest.spawn_tree(pos, treedef)
 +
return true, "successfully spawned"
 +
end,
 +
})
 
</source>
 
</source>
  
Line 38: Line 46:
 
[[File:Apple Tree.png|420px]]
 
[[File:Apple Tree.png|420px]]
  
 +
== Notes ==
  
== Notes ==
+
* For examples, go to [[L-system tree examples]]
 +
* VanessaE's [https://forum.minetest.net/viewtopic.php?id=3898 plants_lib] mod ([https://github.com/VanessaE/plantlife/blob/master/plants_lib/ github]) provides functions to register L-system trees to be spawned during map generation, and finds places for them to spawn based on the map seed and biome.
 +
* [https://forum.minetest.net/viewtopic.php?f=11&t=9458 L-System Tree Utility] is a mod which helps to create L-system trees in-game
  
VanessaE's [https://forum.minetest.net/viewtopic.php?id=3898 plants_lib] mod
 
([https://github.com/VanessaE/plantlife/blob/master/plants_lib/ github])
 
provides functions to register L-system trees to be spawned during map generation,
 
and finds places for them to spawn based on the map seed and biome.
 
  
[[Category:Methods]]
+
[[Category:Methods|s]]

Latest revision as of 19:11, 25 January 2023

Mbox warning.png This page contains unofficial, low-quality Lua API documentation and is likely to be outdated or wrong. Do not rely on it!
For the official and up-to-date documentation, see Lua API Documentation.
Mbox warning.png This page has been proposed for deletion for the following reason: "Contains unofficial and potentially outdated, redundant and inconsistent Lua API information"
If you don't think that this page should be deleted, please explain why on the talk page.

Syntax

minetest.spawn_tree(pos, tree)

Description

  • pos — position
  • tree — treedef

Spawns an L-system tree at position pos, using the tree definition tree.

See Introduction to L-system trees for a description of L-system trees.

Example

This code adds the chat command "/spawn_tree" to spawn an apple tree with its origin at the current position of the player, assuming that Minetest Game is used:

local treedef = {
	axiom="FFFFFAFFBF",
	rules_a="[&&&FFFFF&&FFFF][&&&++++FFFFF&&FFFF][&&&----FFFFF&&FFFF]",
	rules_b="[&&&++FFFFF&&FFFF][&&&--FFFFF&&FFFF][&&&------FFFFF&&FFFF]",
	trunk="default:tree",
	leaves="default:leaves",
	angle=30,
	iterations=2,
	random_level=0,
	trunk_type="single",
	thin_branches=true,
	fruit_chance=10,
	fruit="default:apple"
}

core.register_chatcommand("spawn_tree", {
	params = "", description = "Spawns tree at player position",
	func = function(name, param)
		local pos = minetest.get_player_by_name(name):getpos()
		minetest.chat_send_player(name, "Spawning tree at " .. minetest.pos_to_string(pos)
			.. ", please wait")
		minetest.spawn_tree(pos, treedef)
		return true, "successfully spawned"
	end,
})

The resulting tree may look like this:

Apple Tree.png

Notes

  • For examples, go to L-system tree examples
  • VanessaE's plants_lib mod (github) provides functions to register L-system trees to be spawned during map generation, and finds places for them to spawn based on the map seed and biome.
  • L-System Tree Utility is a mod which helps to create L-system trees in-game