By the way, I've heard a number of people saying stuff like "Why won't Notch add huge trees?!?"
Short answer: It's hard to do on an infinite map that's not generated yet.
Here's my best understanding:
All normal features are 16 by 16 blocks. This is the same size as a chunk, and makes it easy to add features to existing chunks. First you generate the chunk geometry, then (when all the adjacent chunks are added) you throw the features on top. This ensures that features only get added on top of pre-existing terrain. If you added ore and trees and treasure rooms half overlapping terrain that hadn't been generated yet they would be overwritten when the rocks and dirt and water and stuff went in.
So, if you want to have large features, you need a way to make sure that they can't be blocked by chunks that might get in the way. Caves are like this. They burrow through rock and nothing stops them. In this way the large features (256 by 256 I think) can be generated BEFORE the chunks are populated with terrain. Whenever a new chunk is generated, it is flagged that it needs to have the existing large features applied to it, and Minecraft burrows the caves and whatever other large features happen.
The problem is, trees must respect terrain. It would look weird for a huge tree to be growing right into the side of a cliff, or just chopped off by a hillside. This is exactly what would happen if Notch put huge trees in as a large feature. There is a solution of course, and it's the same as with the normal features. Only generate terrain dependent features (like huge trees, or big creeper cities, or whatever) after ALL of the affected chunks have been populated with terrain. This causes a problem of its own though. Huge things (which you should see a long ways off) will suddenly pop up quite close to you because the far edge was overlapping a chunk that was just recently generated. For very short view distances and very large objects, this may even result in large features jumping right on top of you. Not cool.
As far as I can see, there are only a few ways to solve this. When you come up to a large terrain dependant feature (like a huge tree) Minecraft would prioritize chunk population for all of the affected chunks, and then generate the large feature. The other way is to abstract the terrain generation and essentially allow the large features to say, "I know this terrain has not been generated yet, but if it was, what would it look like?" Both approaches are likely to be computationally expensive and bog down the game even more than it already is.
So, that's why you (probably) won't be seeing really big terrain dependant features (like huge trees and giant ruined cities) showing up any time soon. In the meantime though, there are a lot of great tools to help you make these yourself!
You modders r awesome, u know that? Can I get a giant ruined city option in mcedit too?
You modders r awesome, u know that? Can I get a giant ruined city option in mcedit too?
Yes! I'll convert Groundwork and MountainFortress to Beta eventually. Then you could run a weathering script on them (I know I've seen one around here). The catch is you need to be prepared to wait a lot, or pay a lot.
Great stuff man! I got it to work once, but then I tried it again and I keep getting this error. Mind interpreting for me?
Traceback (most recent call last):
File "C:\Users\Navi\AppData\Roaming\.minecraft\saves\Forester.py", line 990, in <module>
main()
File "C:\Users\Navi\AppData\Roaming\.minecraft\saves\Forester.py", line 974, in main
processtrees(the_map,treelist)
File "C:\Users\Navi\AppData\Roaming\.minecraft\saves\Forester.py", line 959, in processtrees
newtree.prepare()
File "C:\Users\Navi\AppData\Roaming\.minecraft\saves\Forester.py", line 839, in prepare
ProceduralTree.prepare(self)
File "C:\Users\Navi\AppData\Roaming\.minecraft\saves\Forester.py", line 771, in prepare
shapefac = self.shapefunc(y-ystart)
File "C:\Users\Navi\AppData\Roaming\.minecraft\saves\Forester.py", line 846, in shapefunc
if HEIGHT < self.height:
NameError: global name 'HEIGHT' is not defined
EDIT: Never mind, I guess I just deleted HEIGHT = X.
Anyways, I love this script! Are you planning on updating your other ones?
*GASP* I see you set your username to Navi, Avatar FTW! /offtopic
Forester has been included with MCEdit for a few weeks now and a lot of people are getting use out of it. I don't have all the options in, but I think the ones shown in the picture are enough for anyone - well, anyone who isn't editing the python script directly!
Thanks again for making Forester. The only suggestion I would have is to make it respect the bounding box a bit better, but my best idea for that is to predict the max size for each tree before planting it.
Forester is now fully supported in MCEdit! See the top post for a download link.
Don't forget to get the latest versions of all three files. Put them in the "filters" directory and away you go!
Add huge trees to your maps, now works with Beta minecraft, single and multiplayer.
Download: Forester script (latest version, 5)
Download: Interface module (latest version, 4)
Perfect for building tree houses in the trunks, treeforts, etc.
Thanks to salisburymistake for the idea. Thanks to God for designing trees in the first place. Please let me know if there are other types of trees you'd like or various changes or additions.
Instructions:
1. You must have Python (3.x) installed, go get it if you don't http://www.python.org/download/.
2. Save (or copy) the script and interface module to the folder where your maps are (usually .../.minecraft/saves).
3. Open the script with a text editor.
4. Change the settings at the top of the file to your liking (the file includes extensive instructions). Save it.
5. Make a backup of your world (just in case!)
6. Double click the script (for debugging open it in IDLE). Wait for it to finish (can take a while if adding a lot of trees).
Optional: update the lighting in your favorite level editor (the script re-lighting is not perfect).
7. If you had loaded the file since you started Minecraft, restart Minecraft. This prevents caching errors which could corrupt the save file!
8. Load up the map in Minecraft and and enjoy!
NOTE: If you want to use this script inside MCEdit, you now can! Download the MCEdit filter along with the script and the interface module (top) and place them all in the "MCEdit\MCEditData\filters" folder. You can then use Forester as a filter with an interactive GUI! No more editing the script to change settings!
Can you give us the directions for making a forest with this script? Directly in MCEdit I mean.
First off, if you're making more than a few small trees, or one large tree, I highly suggest using the standalone script. the MCEdit filter is cool and fun, but it takes around five times longer to run, and can be a real drag. I use MCEdit to experiment with settings, but for making big forests I use the standalone.
That said! How to use the filter:
First you need to download all three of the files (Forester.py, mcInterface.py, and MCEditForester.py) and put them in the filters folder. (Wherever you installed MCEdit. ...MCEdit\MCEditData\filters)
Once that's done you can run MCEdit, and Forester should show up as a filter. (Filters are the middle button on the bottom toolbar, looks like a... coffee pot or something) Usually the filter starts off with "Replace" or somesuch, but if you hold down the mouse button on the name of the filter (top of the box) a menu will come up and you can select Forester.
Don't use Forester yet though! You have to select the area of the map you want to add trees to (selection is the leftmost button on the toolbar). Trees take up a lot of area, and if you're making a big forest, be sure to select a lot of space. Trees can also be very tall, and if you want to make roots, the selection box needs to extend into the ground as well. A bigger box will also expand the area that the trees are spread over.
Once you have a large enough selection box, click the "filters" button and select Forester. There will be a bunch of options... defaults work well. Height has a large effect on how long the filter takes to run. Foliage does as well, so if you want to experiement with tree sizes, shapes, and options, turn "Foliage" off (to make it run faster) until you're happy with the general shape.
To "apply" or run the filter, click the yellow "Filter" text at the bottom of the menu. Then wait a while. When it's done, if you're not happy with the result, press ctrl-z (undo) and change the settings and try again.
I hope that's exhaustive enough. If anyone has further questions, don't be afraid to ask. I'll try to help if I can.
Ehehehehehe.... WELCOME TO MINECRAFTTTTTTTTTTT!
My mind... is blown away by this.
It is... way too epic.
Good job on it, keep up the good work!
(Goes off to work on EPIC tree.... EPIC!)
Epic indeed! They kinda remind me of mushroom clouds after a nuclear explosion. :biggrin.gif:
I'm trying out Forester right now. I'll post some pictures and possibly a video tutorial.
I don't get how i am supposed to paste text into a folder... (the download buttons lead me to a page full of text)
Could someone please paraphrase how to install this in a more understandable way. Also, does this cause larger trees to spawn or just allow trees to be created in MC edit?
TheGrayGoo is referring to this post which explains the mindset required to run this script. While that still holds Let me see what I can do for you all.
Does this work for bukkit, too?
Also, could you add a "wait = input("Waiting")" at the end, so we can actually read the error?
No, this is a script, not a plugin.
the line you can add would be:
input('press Enter to close')
Add it very near the bottom, right under "standalone()". Don't forget to use correct indentation.
I don't get how i am supposed to paste text into a folder... (the download buttons lead me to a page full of text)
Could someone please paraphrase how to install this in a more understandable way. Also, does this cause larger trees to spawn or just allow trees to be created in MC edit?
Rightclick (or function click?) on the page and select "Save as" or "download" or the equivalent. Alternatively, select all of the text and copy it. Then create a new text file and paste the text in. Change the file extension to ".py" instead of ".txt" and you should be good.
This generates large trees in an already existent save file. It does not change the behavior of the game in the slightest. It is a save-editing tool; It is not a plugin or an extension.
I'm glad you are all still using this tool! It was fun to write and I'm glad it's still useful. With the adventure update coming soon we should see a spike in Minecraft interest. Enjoy!
Same thing happens to me. In MCEdit I tried to use the filter script, but it generate a tree.
I can't do anything with the Forester. I Click Filter, but nothing generates. I have a box. I get an error int he console about Invalidating Box. I'm trying to do the floating island. Nothing the filters works. I'm using the 64bit version. Should I try the x86 version?
Trying to get this to work, but it's not.
A red box just goes everywhere.
I'm on the latest MC 1.8.
Python Script didn't work.
Importing the map
Planting new trees
Tree Locations: x, y, z, tree height
Traceback (most recent call last):
File "C:\Users\hidden\AppData\Roaming\.minecraft\saves\Forester.py", line 1290, i
n <module>
standalone()
File "C:\Users\hidden\AppData\Roaming\.minecraft\saves\Forester.py", line 1280, i
n standalone
main(the_map)
File "C:\Users\hidden\AppData\Roaming\.minecraft\saves\Forester.py", line 1258, i
n main
planttrees(the_map,treelist)
File "C:\Users\hidden\AppData\Roaming\.minecraft\saves\Forester.py", line 1133, i
n planttrees
y_top = mcmap.surface_block(x, z)
File "C:\Users\hidden\AppData\Roaming\.minecraft\saves\mcInterface.py", line 935,
in surface_block
output = self.block(x, y, z, options)
File "C:\Users\hidden\AppData\Roaming\.minecraft\saves\mcInterface.py", line 810,
in block
idx = self.block_to_idx(x, y, z)
File "C:\Users\hidden\AppData\Roaming\.minecraft\saves\mcInterface.py", line 672,
in block_to_idx
if y > 127 or y < 0: raise IndexError
IndexError
Same thing happens to me. In MCEdit I tried to use the filter script, but it generate a tree.
I can't do anything with the Forester. I Click Filter, but nothing generates.
I think your problem is you have a vast plain of sand, but the "Plant On" (bottom right-hand corner) is set to grass. It won't plant trees on any block type but the one selected. Also, make sure to select fairly deep into the ground if you're creating roots.
The "Invalidating bounding box" just means that it's asking MCEdit to re-do the lighting calculations. That's supposed to happen.
This, I think I can fix. The problem is you're running the script on a map with no bottom, which I didn't account for. I uploaded version 5 of the interface file (Refresh if it's still "Version 4" at the top), which should fix this problem.
If you're trying to make floating islands, try out Wizard Mountain. It's specifically designed for that sort of thing. Once you have a good number of floating islands, run Forester on them (with roots set to "hanging") and see how it looks!
First off, love the mod. Secondly, I was browsing around and I came across an awesome looking tree, and someone stated that it was made with forester. I've tried many times to duplicate it but it seems to me that the type/style of tree can't be generated. So I was just wondering if it was at all possible to make this kind of tree?
teh_Foxx0rz: Sorry, but this looks like we're dealing with a modified savefile format. Unfortunately, Forester only works with the default vanillacraft format. Are you using a mod which changes the way save files are stored? If so, I can't help you. If not, and you're running plain vanilla Minecraft, pm me and I'll see what I can do.
I was just wondering if it was at all possible to make this kind of tree?
Unfortunately, the answer is "no, not exactly". Forester only makes straight branches, and you can see that this tree has non-straight branches. It also has a very shallow foliage depth. You can see some of the foliage near to the trunk still has vertical trunks beneath them, so my best guess is that tree was hand-made using saplings! Whoever did it had a lot of patience!
If you want to get this effect (without so much work), here's what I would do:
1: Go into the forester script and find the line "r = (sqrt(random()) + .328)*shapefac" . This line determines how random the radius of the foliage is. Set it to something like "r = (random()* 0.1 + 0.9)*shapefac", which will make the foliage more "hollow", like in the picture.
2: The foliage is a bit more random than Forester normally makes, so let's do that too. A few lines down you can find "x = int(" and "z = int(" with a bunch of stuff following. Tack on to the end of both lines " + int((random()-0.5) * 4.5)". The "3.5" is the randomness factor, adjust it as you wish.
3: Now find the line "if y < self.height * (.282 + .1*sqrt(random())) :" . This tells the "round tree" how high the cutoff is. Change the ".282" to something a bit larger, say, ".356". You can experiement with this value to get the right shape. This will make more of an "umbrella" instead of a "bulb", which is what you see in the picture.
Once all those changes are made, run the script and see what you get. When you get a general shape that you like, you'll have to manually go in and un-straighten the branches.
I hope this gives you an idea of how the script works, and what you can do to fine-tune the results! Enjoy!
teh_Foxx0rz: Sorry, but this looks like we're dealing with a modified savefile format. Unfortunately, Forester only works with the default vanillacraft format. Are you using a mod which changes the way save files are stored? If so, I can't help you. If not, and you're running plain vanilla Minecraft, pm me and I'll see what I can do.
Unfortunately, the answer is "no, not exactly". Forester only makes straight branches, and you can see that this tree has non-straight branches. It also has a very shallow foliage depth. You can see some of the foliage near to the trunk still has vertical trunks beneath them, so my best guess is that tree was hand-made using saplings! Whoever did it had a lot of patience!
If you want to get this effect (without so much work), here's what I would do:
1: Go into the forester script and find the line "r = (sqrt(random()) + .328)*shapefac" . This line determines how random the radius of the foliage is. Set it to something like "r = (random()* 0.1 + 0.9)*shapefac", which will make the foliage more "hollow", like in the picture.
2: The foliage is a bit more random than Forester normally makes, so let's do that too. A few lines down you can find "x = int(" and "z = int(" with a bunch of stuff following. Tack on to the end of both lines " + int((random()-0.5) * 4.5)". The "3.5" is the randomness factor, adjust it as you wish.
3: Now find the line "if y < self.height * (.282 + .1*sqrt(random())) :" . This tells the "round tree" how high the cutoff is. Change the ".282" to something a bit larger, say, ".356". You can experiement with this value to get the right shape. This will make more of an "umbrella" instead of a "bulb", which is what you see in the picture.
Once all those changes are made, run the script and see what you get. When you get a general shape that you like, you'll have to manually go in and un-straighten the branches.
I hope this gives you an idea of how the script works, and what you can do to fine-tune the results! Enjoy!
Thank you so much :smile.gif:
It worked great. The first rendition of it was exactly what I wanted. I was just looking for a way to get the round tree, but just without the round shape of the leaves. And your edits did it :smile.gif: than you so much :smile.gif:
Dudecon, I recently put in a fix for the uneven distribution that puts all of the trees in the center. By putting a 1-x^2 term in the distance, it's now just as likely to place trees near the center as near the edge.
Open forester.py in a text editor, and find the lines:
# this is linear interpolation.
# add other interpolation modes later
Replace them with
# this is some kind of square interpolation
rad_fraction = 1.0 - rad_fraction
rad_fraction **= 2
rad_fraction = 1.0 - rad_fraction
Dudecon, I recently put in a fix for the uneven distribution ...
Thanks much! Incorporated this change, and version 6 is now live. To space trees evenly over the area, set INTERPOLATION = "even" in the advanced section.
... However i was wondering if you could put density in as an option for forester or if possible, make it so one would be able to plant a tree in a specific spot rather than generating them at random in a large selected area, that would help though i guess i could clone the tree
lastly im now noticing that some parts of the foliage are not connected to the tree and i never changed any of the default settings other than tree count. Is that normal?
If you make the selection box small enough, it will place one tree right in the center. You can place individual trees exactly where you want by editing the script (not the MCEdit plugin). It's really not that hard, and much faster!
Yes, not all of the foliage is connected to the trunk. This keeps branch over-crowding down when making really big trees. If you want to guarantee each foliage cluster gets a branch, set BRANCHDENSITY to something really big (like a 1000000.6 or so)
P.S. You're quite welcome Gleiphnir! Glad it worked.
Trying to cover a small adventure map in rainforest trees, setting RADIUS=350 and TREECOUNT=500, but when I run the script with Python Launcher, it seems to fail and Terminal pops open with this report:
Last login: Sun Nov 13 18:35:00 on ttys000
andrew-dakins-macbook-pro:~ andrewdakin$ cd '/Users/andrewdakin/Library/Application Support/minecraft/saves/' && '/usr/local/bin/pythonw' '/Users/andrewdakin/Library/Application Support/minecraft/saves/Forester.py' && echo Exit status: $? && exit 1
Importing the map
Traceback (most recent call last):
File "/Users/andrewdakin/Library/Application Support/minecraft/saves/Forester.py", line 1296, in <module>
standalone()
File "/Users/andrewdakin/Library/Application Support/minecraft/saves/Forester.py", line 1282, in standalone
the_map = mcInterface.SaveFile(LOADNAME)
File "/Users/andrewdakin/Library/Application Support/minecraft/saves/mcInterface.py", line 666, in __init__
self.read_dat()
File "/Users/andrewdakin/Library/Application Support/minecraft/saves/mcInterface.py", line 963, in read_dat
this_data = NbtData(dat_data)
File "/Users/andrewdakin/Library/Application Support/minecraft/saves/mcInterface.py", line 415, in __init__
new_tag = tag_list[key](self)
TypeError: list indices must be integers, not str
andrew-dakins-macbook-pro:saves andrewdakin$
EDIT:
This is the Console report for repeated attempts (I think?):
13/11/11 6:21:22 PM Terminal[8426] .sdef error: Operation could not be completed. (NSXMLParserErrorDomain error 1549.)
13/11/11 6:21:22 PM Terminal[8426] line number: 2
13/11/11 6:21:22 PM Terminal[8426] .sdef error: Operation could not be completed. (NSXMLParserErrorDomain error 1549.)
13/11/11 6:21:22 PM Terminal[8426] line number: 2
13/11/11 6:32:49 PM Terminal[8541] .sdef error: Operation could not be completed. (NSXMLParserErrorDomain error 1549.)
13/11/11 6:32:49 PM Terminal[8541] line number: 2
13/11/11 6:32:49 PM Terminal[8541] .sdef error: Operation could not be completed. (NSXMLParserErrorDomain error 1549.)
13/11/11 6:32:49 PM Terminal[8541] line number: 2
13/11/11 6:33:19 PM Terminal[8580] .sdef error: Operation could not be completed. (NSXMLParserErrorDomain error 1549.)
13/11/11 6:33:19 PM Terminal[8580] line number: 2
13/11/11 6:33:19 PM Terminal[8580] .sdef error: Operation could not be completed. (NSXMLParserErrorDomain error 1549.)
13/11/11 6:33:19 PM Terminal[8580] line number: 2
13/11/11 6:35:00 PM Terminal[8609] .sdef error: Operation could not be completed. (NSXMLParserErrorDomain error 1549.)
13/11/11 6:35:00 PM Terminal[8609] line number: 2
13/11/11 6:35:00 PM Terminal[8609] .sdef error: Operation could not be completed. (NSXMLParserErrorDomain error 1549.)
13/11/11 6:35:00 PM Terminal[8609] line number: 2
Trying to cover a small adventure map in rainforest trees, setting RADIUS=350 and TREECOUNT=500, but when I run the script with Python Launcher, it seems to fail and Terminal pops open with this report:
...
line 415, in __init__
new_tag = tag_list[key](self)
TypeError: list indices must be integers, not str
Any help?
This error shows up under Python 2.X. Unfortunately The script requires Python 3.X to work properly (Should work in 3.1 and 3.2 or above). Python 2 and Python 3 handle strings and binary data differently. Hope that helps!
It would be cool to be able to see information about already produced roots / leaves... should be configurable
Done. Version 7 is live. Check the bottom of the "advanced" section for two new verbose options!
Also, now if VERBOSE = True (by default) the script will wait for you to press Enter before closing, so you can read the output. This is on by default, so just be aware that you need to press Enter to close the script when it is done.
You modders r awesome, u know that? Can I get a giant ruined city option in mcedit too?
Yes! I'll convert Groundwork and MountainFortress to Beta eventually. Then you could run a weathering script on them (I know I've seen one around here). The catch is you need to be prepared to wait a lot, or pay a lot.
*GASP* I see you set your username to Navi, Avatar FTW! /offtopic
Forester is now fully supported in MCEdit! See the top post for a download link.
Don't forget to get the latest versions of all three files. Put them in the "filters" directory and away you go!
Can you give us the directions for making a forest with this script? Directly in MCEdit I mean.
I just took the Minecraft Noob test! Check out what I scored. Think you can beat me?!
To take the test, check out
https://minecraftnoobtest.com/test.php
Don't click this link, HE is haunting it...
First off, if you're making more than a few small trees, or one large tree, I highly suggest using the standalone script. the MCEdit filter is cool and fun, but it takes around five times longer to run, and can be a real drag. I use MCEdit to experiment with settings, but for making big forests I use the standalone.
That said! How to use the filter:
First you need to download all three of the files (Forester.py, mcInterface.py, and MCEditForester.py) and put them in the filters folder. (Wherever you installed MCEdit. ...MCEdit\MCEditData\filters)
Once that's done you can run MCEdit, and Forester should show up as a filter. (Filters are the middle button on the bottom toolbar, looks like a... coffee pot or something) Usually the filter starts off with "Replace" or somesuch, but if you hold down the mouse button on the name of the filter (top of the box) a menu will come up and you can select Forester.
Don't use Forester yet though! You have to select the area of the map you want to add trees to (selection is the leftmost button on the toolbar). Trees take up a lot of area, and if you're making a big forest, be sure to select a lot of space. Trees can also be very tall, and if you want to make roots, the selection box needs to extend into the ground as well. A bigger box will also expand the area that the trees are spread over.
Once you have a large enough selection box, click the "filters" button and select Forester. There will be a bunch of options... defaults work well. Height has a large effect on how long the filter takes to run. Foliage does as well, so if you want to experiement with tree sizes, shapes, and options, turn "Foliage" off (to make it run faster) until you're happy with the general shape.
To "apply" or run the filter, click the yellow "Filter" text at the bottom of the menu. Then wait a while. When it's done, if you're not happy with the result, press ctrl-z (undo) and change the settings and try again.
I hope that's exhaustive enough. If anyone has further questions, don't be afraid to ask. I'll try to help if I can.
Epic indeed! They kinda remind me of mushroom clouds after a nuclear explosion. :biggrin.gif:
I'm trying out Forester right now. I'll post some pictures and possibly a video tutorial.
Feed my dragon by clicking on it!
Could someone please paraphrase how to install this in a more understandable way. Also, does this cause larger trees to spawn or just allow trees to be created in MC edit?
No, this is a script, not a plugin.
the line you can add would be:
input('press Enter to close')
Add it very near the bottom, right under "standalone()". Don't forget to use correct indentation.
The radius for tree placement is determined by the size of the selection box. Select a larger area if you want the trees more spread out.
There are screenshots in this thread, as well as on this page (along with several other scripts)
More details please? I'd like to fix the error, but this isn't much to go on.
Rightclick (or function click?) on the page and select "Save as" or "download" or the equivalent. Alternatively, select all of the text and copy it. Then create a new text file and paste the text in. Change the file extension to ".py" instead of ".txt" and you should be good.
This generates large trees in an already existent save file. It does not change the behavior of the game in the slightest. It is a save-editing tool; It is not a plugin or an extension.
I'm glad you are all still using this tool! It was fun to write and I'm glad it's still useful. With the adventure update coming soon we should see a spike in Minecraft interest. Enjoy!
I can't do anything with the Forester. I Click Filter, but nothing generates. I have a box. I get an error int he console about Invalidating Box. I'm trying to do the floating island. Nothing the filters works. I'm using the 64bit version. Should I try the x86 version?
Trying to get this to work, but it's not.
A red box just goes everywhere.
I'm on the latest MC 1.8.
Python Script didn't work.
I think your problem is you have a vast plain of sand, but the "Plant On" (bottom right-hand corner) is set to grass. It won't plant trees on any block type but the one selected. Also, make sure to select fairly deep into the ground if you're creating roots.
The "Invalidating bounding box" just means that it's asking MCEdit to re-do the lighting calculations. That's supposed to happen.
This, I think I can fix. The problem is you're running the script on a map with no bottom, which I didn't account for. I uploaded version 5 of the interface file (Refresh if it's still "Version 4" at the top), which should fix this problem.
If you're trying to make floating islands, try out Wizard Mountain. It's specifically designed for that sort of thing. Once you have a good number of floating islands, run Forester on them (with roots set to "hanging") and see how it looks!
thanks
Unfortunately, the answer is "no, not exactly". Forester only makes straight branches, and you can see that this tree has non-straight branches. It also has a very shallow foliage depth. You can see some of the foliage near to the trunk still has vertical trunks beneath them, so my best guess is that tree was hand-made using saplings! Whoever did it had a lot of patience!
If you want to get this effect (without so much work), here's what I would do:
1: Go into the forester script and find the line "r = (sqrt(random()) + .328)*shapefac" . This line determines how random the radius of the foliage is. Set it to something like "r = (random()* 0.1 + 0.9)*shapefac", which will make the foliage more "hollow", like in the picture.
2: The foliage is a bit more random than Forester normally makes, so let's do that too. A few lines down you can find "x = int(" and "z = int(" with a bunch of stuff following. Tack on to the end of both lines " + int((random()-0.5) * 4.5)". The "3.5" is the randomness factor, adjust it as you wish.
3: Now find the line "if y < self.height * (.282 + .1*sqrt(random())) :" . This tells the "round tree" how high the cutoff is. Change the ".282" to something a bit larger, say, ".356". You can experiement with this value to get the right shape. This will make more of an "umbrella" instead of a "bulb", which is what you see in the picture.
Once all those changes are made, run the script and see what you get. When you get a general shape that you like, you'll have to manually go in and un-straighten the branches.
I hope this gives you an idea of how the script works, and what you can do to fine-tune the results! Enjoy!
Thank you so much :smile.gif:
It worked great. The first rendition of it was exactly what I wanted. I was just looking for a way to get the round tree, but just without the round shape of the leaves. And your edits did it :smile.gif: than you so much :smile.gif:
"We will absolutely not keep in mind what external mapeditors will have to do to read data from the disk, that makes no sense whatsoever." - Grum
Thanks much! Incorporated this change, and version 6 is now live. To space trees evenly over the area, set INTERPOLATION = "even" in the advanced section.
If you make the selection box small enough, it will place one tree right in the center. You can place individual trees exactly where you want by editing the script (not the MCEdit plugin). It's really not that hard, and much faster!
Yes, not all of the foliage is connected to the trunk. This keeps branch over-crowding down when making really big trees. If you want to guarantee each foliage cluster gets a branch, set BRANCHDENSITY to something really big (like a 1000000.6 or so)
P.S. You're quite welcome Gleiphnir! Glad it worked.
Trying to cover a small adventure map in rainforest trees, setting RADIUS=350 and TREECOUNT=500, but when I run the script with Python Launcher, it seems to fail and Terminal pops open with this report:
EDIT:
This is the Console report for repeated attempts (I think?):
Any help?
This error shows up under Python 2.X. Unfortunately The script requires Python 3.X to work properly (Should work in 3.1 and 3.2 or above). Python 2 and Python 3 handle strings and binary data differently. Hope that helps!
Done. Version 7 is live. Check the bottom of the "advanced" section for two new verbose options!
Also, now if VERBOSE = True (by default) the script will wait for you to press Enter before closing, so you can read the output. This is on by default, so just be aware that you need to press Enter to close the script when it is done.