In the past week of my unintentional (almost) full Internet abstinence, I have worked very hard on this tool.
I am now proud to present you version 0.2.0. I switched to using a SemVer (http://www.semver.org/
). The mod is now called “L-System Tree Utility” (short name: still “ltool”) by me.
You find the download in the attachment of the first post.
Overall, version 0.2.0 has a lot of work in it and it is a massive update compared to version 0.1. Briefly, I think this mod now has finally become to something which is actually useful. It is now easy and quicker (in my opinion) to experiment with L-system trees without restarting the server for every tiny change. I say this because I managed to painlessly create a simple L-tree. You see the result on these screenshots:
Click here for full size.
You can stop reading from here if you don’t want to know all the gory details.
Giant dry shrub: tree definition
In case you want to know, here is (sorta) the tree definition table for these strange looking "giant dry shrubs" from the first screenshot:
Current state of this mod
Code: Select all
axiom = "A/A/A/A/A/A/A/A/A/A/A/A",
rules_a = "[B+B+B+B]",
rules_b = "[FFFFFFFFFF]",
trunk = "default:tree",
angle = 30,
iterations = 1,
random_level = 0,
trunk_type = "single",
thin_branches = true
There is no changelog this time, I better describe this mod in the state it is now, because so much has changed.
The heart of this mod, the tree formular has four tabs now. It still can be accessed with the chat command “treeform”.
The four tabs are: Edit (… a tree), Database (… of trees), Plant (… a tree) and a simple help.
The basic workflow in this mod is this:
- Create tree in "Edit" tab and save it.
- Select it in "Database" tab.
- Plant it with help of the "Plant" tab.
The first one is the “Edit” tab. This is used to enter the tree definition, which is still a wrapper around the tree definition data structure required by minetest.spawn_tree. When you are done editing, hit "Save" to store the tree to the database. Trees now can have a name. This tab quite agressively enforces correct parameters. If you think your input was rejected for stupid reasons, please write a message here.
Tree names have to be unique server-wide. If there is a name-clash, you have to change the name. If the clash is with one of your own trees, you can choose to simply replace said tree.
The second tab is the "Database" tab. This has a list of all installed trees on the server. Your own trees are in yellow font. You have to select a tree here first so you can plant it later. Currently the list also shows the unique tree ID. This is only there for debugging at the moment and I may remove it later.
"Tree" is a data structure in this mod. It contains the tree definition (for L-systems), a name and the name of the "owner".
Ownership is weak in the L-System Tree Utility. The owner of a tree may rename, delete and change his/her trees, everyone else is prevented from doing that. However, everyone can still copy and plant it. Copying a tree is a way to gain ownership … to a copy of that tree. Maybe this is interesting for collaborative projects. In theory, you could collaborate without interfering with the work of others. This has never been tested in practice yet, however.
The third tab is for actually planting/spawning the trees. You can choose to spawn the tree immediately by providing absolute or relative coordinates. The relative coordinates are relative to your position.
You can even request a sapling. If you place this sapling, the tree will spawn at this point with a delay of 5 seconds.
You can see said sapling in the first screenshot. Saplings continue to work even if the tree definition has been deleted.
The fourth tab is contains some help for using the mod. It also contains a cheat sheet which contains a quick overview over all the symbols you can use in the axiom and rule sets.
Version 0.2.0 finally remembers the content of the formular, but only if you press a button or change tabs for the moment. I don’t know how to rescue the field contents when the player hits [Esc] to close the formular.
There is one extremely nasty bug in Minetest which is not blocked by this mod either: If you try to spawn a tree which tries to pop from an empty stack, Minetest blows up all over your face. This means, a tree which has, in extended form, more “]” than “[” will crash Minetest when spawned.
This bug has been reported, see issue #1525 on GitHub
So anyone who uses this mod can crash your server!
Plans for the future
First of all, this mod needs more testing. Especially the part which involves multiple players is pretty much untested. I expect to have some bugs as soon as more than one player is on the server, using this mod.
I plan to make extensions to the in-game help. I want a full-blown in-game help, maybe, if I’m very good at this I could even manage to teach newbies the basics of L-systems and, of course, how they are used in Minetest.
I plan to provide a very basic API to add, remove, rename, copy, etc. trees in the database. (done!)
I plan to add more chat commands.
Using this mod requires no privileges whatsoever at the moment. I think I should change that, but I am still unsure how exactly. (done!)
Of course I’d like to hear feedback from you. Especially I want to know how useful you find this mod in regards to usability. Is it easy to use or still rather cumbersome? If you find something confusing or don’t understand something, please
Please remember this mod is currently aimed to people who already know the basics of L-systems.
Oh, and yes, it is true. Very very earlier there was another mod. I think you mean this one: viewtopic.php?id=4766
I consider the other mod to be outdated; L-System Tree Utility is now obviously miles ahead. :-)