The Growth of a Tree – Another 3.14.0 Update

Well it is time again, time to take a peak into the progress of 3.14.0. We are still not done, but as I mentioned in our last post we have been working on making the new tree generation code more reusable, so although we only have one more new tree completed today, the Bald Cypress, in creating it, we added most of the building blocks that will be needed for the last remaining trees.

But before we get to far ahead of ourselves, lets take a look at the normal Cypress and see how it has developed since last update.

Leaner, Meaner but Not Any Greener.

Since the last update we have put a bit more work tweaking the settings on the cypress trees to get them to look more like our reference photos, while at the same time still allowing for a degree of variety in their generation. This new breed of Cypress are thin and lanky with a nice variety in height, with their leaves starting at a variety of different heights as well.

As for the Bald Cypress, I thought that it would be neat to give a look into how it developed, which meant more pictures than normal, so in keeping with the current front-page format, the story of the Bald Cypress development is after the break.

The First “Knees” And Trunk
The first thing that we needed to do for the Bald Cypress was to write the code to generate the the 2×2 trunk, using the new version of the quarter logs block that the bald cypress uses. Not much to that part really, just making sure that the the logs were generated in the proper orientation. The same needed to happen with the “knees” and in our first test we mainly focused on making them spawn or the sides of the tree.
Random Heights and Placement
Once we had the “knees” generating in the correct orientation it was time to add some height to the mix. Some “knees” would generate on the left half of one side of the tree and some on the right, and occasionally there might be on on both haves, or even no knees on that side.
After the knees were finished it was time to move on to the branches. Although I could have reused the of the old code for other trees like the large Autumn Forest tree, I decided that we should start out with self documenting code that would be a littler more reusable down the road.
Forgetting a Variable Can Cause Some Weird Results.
It took a number of bug fixes to get the branches to work correctly, as I missed out on a number of things during the initial code that had to be fixed. some of them were outright funny looking, like the picture above, while other’s were a little more frustrating and I had issues tracking them down until later on when I started on the leaf clusters.
A Preliminary Foliage Test
Once the branch generation code had been fixed it came time to nail down the leaf clusters at the end of each branch. Once more there was some issues with the codes transition form paper to actual code, and the initial tests ignored the settings to allow the leaves to generate at heights other than what is pictured above, limiting the variation in how the foliage looked. Also, if you look carefully in this first shot you can see that the top of the main trunk is completely bare. It needed a little more work and a lot of tweaks but eventually we got got something that pleased the team.
A Sample Bald Cypress Tree Grown From Saplings
Although this is a fairly beautiful tree and has a large amount of variety possible as it generates, there is still a bit more room for potential improvement, so don’t be surprised if the tree changes a little as we get closer to release.

Seeds of Growth – A 3.14.0 Update

Well were are running a little behind schedule, and we still a few things left to complete, mostly on my end as I got busy helping to build a deck out in the hot sun this week so I haven’t had the free time that I thought I would have to build the new trees world generation code. Although I haven’t had as much time as I would have liked, our texture genius, Zenth has been doing some more tweaking to the textures, and correcting some of my spelling mistakes in the new blocks.
The first official Cypress tree candidate generated by minecraft.

However I finally had some time to work on world generation code for that we are using as a basis for the new trees and I finally have our first candidate for generating one of our new trees, the Cypress tree. At the moment these somewhat lanky trees have the base of their trunk that rapidly flares out the main part of their foliage and then gradually slop up to their tops. These normal cypress trees at the moment are made with a couple “building blocks” that should be able to be used on other trees without our having to copy code like was done in the old trees, making it much easier to maintain and update in the future.

Console command to to test the Cypress tree spawning parameters.
The console commands that I added for tree debugging and such have been a lifesaver in the creation of the new trees, as I don’t need to chop down trees or have a large superflat world that I do my testing in to verify that the tree is generating properly, and I don’t have to restart the game every time I want to tweak one of the spawning parameters. Now all I have to do is issue a console command and I can do my tweaking without ever needing to move about, or waiting for the game to reload.
A couple creepers kept in a pen by a scarecrow. The closer creeper is scooting away from the scarecrow.
Another thing that I have worked on is finally adding in the code that made the scarecrow not totally useless. Prior to my joining the ExtrabiomesXL team code was written so that the scarecrow would scare away mobs, but during the update to 1.5.x it never got merged into the main code, so we finally got around to making the scarecrow scare off mobs like it should. It should scare off all hostile mobs that have a brain, so slimes and golems should not be affected, but most other hostile mobs should. That being said I have had a creeper who really wanted to give me a hug so bad that he ignored the Scarecrow and still chased after me.

3.14.0 Update, The last update for v3

Since it has been almost a week since we last had an update, I thought I would show off what is coming in 3.14.0, which will be the last content update to ExtrabiomesXL v3.  I know that many of you are still eagerly awaiting v4 and our team is very excited about it too.  We are very much looking forward to all the new content it will add, as well as using the new terrain generator which will make for much better looking worlds.

Shecky took over as lead developer right about the time that 1.6 was about to be released and he wanted to get familiar with our code first before tackling v4.  So the ExtrabiomesXL team decided that we would do a small content update for v3 first, so that Shecky could get into our code and at the same time give our fans a few new things to play around with while waiting for v4.

Legend Oak

Shecky will be looking at the code for the Legend Oak so that it spawns only where it is suppose to spawn instead of how it is doing now, as it appears to be spawning where ever it wants to spawn.  We hope to also work on it’s design and make it look more “legendary”.

Below are some screen shots of the new leaves, logs, slabs, planks, stairs, saplings and flowers.  The new trees are the bald cypress tree, rainbow eucalyptus tree, Japanese maple shrub and Japanese maple tree. We have also redone the textures for the autumn forest, acacia, red wood and fir trees.  Thanks to Zenth for the awesome new textures.

Left – Yellow, Red, Orange and Brown Autumn Leaves
Center (Top – Down) – Cypress, Acacia, Red Wood and Fir Leaves
Right (Top Down) – Rainbow Eucalyptus, Japanese Maple Shrub, Japanese Maple and Bald Cypress Leaves.

These are the logs that go with the leaves in the image above.
The 2 blocks in the front will be “roots” for the Rainbow Eucalyptus and the Bald Cypress.
These are the slabs, planks and stairs to go with the new wood.
These are the saplings and flowers to go with the new and re-vamped trees.

Another exciting new thing that we have added is the ability for tree saplings to self plant.  This, of course, will be something that you can turn off in the config if you don’t want this option.  The chance for a sapling to self plant will be small percent, depending on if it doesn’t land on something else and that it lands on the appropriate block for it to grow.

We hope to have the update out by Friday, if everything goes as planned.

ExtrabiomesXL 3.13.6c for Minecraft 1.6.2 (Minecraft Forge

Well it is that time again Minecraft 1.6.2 is just around the corner with bug fixes galore, so it is time for another version bump for ExtrabiomesXL. Once again this is almost a straight port from 3.13.5, though it due to the change in forge it may necessitate an update depending on weather forestry changes it’s api for 1.6.x.

For now you will have to satisfy any of your biome cravings with this updated download. (Updated to fix a dedicated server bug.)

As for the final content update for v3 that we have been doing so that I could finish getting my feet wet in the code things have started to move along.

Sadly although there has been quite a bit of progress over the weekend, most of it is supposed to be a surprise so I can’t really let the cat out of the bag just yet. That said I did manage to sneak in a quick screen shot of one of the no “key” features for the content update.

Pay no attention to the blurred out sections of the screen shot.
“These are not the new textures you are looking for.”

It has been long in coming, and Scott had originally pushed console commands to v4, but I needed them for some of the bug finding that I am doing so I’ve been working on them in between completing issues for the content update. Of the chat commands the most important ones are /ebxl lastseed and /ebxl spawntree, which will enable us to track down bad tree generations. There have been a number of times where I have had a large number of ExtrabiomesXL trees growing at the same time and noticed occasionally that the generated tree has messed up, missing part of its trunk or such. /ebxl lastseed lets me a a developer get the random number that was used for generating that erroring tree and ensure that it was part of the random number generation that caused it to error out by passing the seed to /ebxl spawntree and regenerating the exact same tree.

/ebxl spawntree also has the potential to be used by map makers if they want a specific tree looking tree to spawn. Some of the trees in the content update will get a bit of a face lift hopefully enabling better generation, and in v4 every tree will be getting a full rewrite to enable more variety so having this in-place now should make it easier down the road. When trees have a larger variety being able to say I know that if I use the seed of 12345 I will get a short fir tree that would look just right in this spot can be a boon to those who want it.

As I said earlier I can’t say much at the moment about the other things that we have been doing for the 1.6.2 content update, though there have been a number of bugs that have been closed, and an updated development environment. I’ll see if I can con talk anyone else on the team to give some sort of preview of a couple of the new things that we are doing in the content update few the next few days.

1.5.2 to 1.6.1 Direct Port

Well it looks like we have all the kinks worked out in the transition from 1.5.x to 1.6.1/x. So as we start the last content update for v3 prior to us switching fully back to development v4 I wanted to get out the direct port of the 1.6.1 build of ExtrabiomesXL v3.

For anyone interested in testing out the new build, download it here and have at it and make sure to let us know in the comments below. The alpha is designed to work with Minecraft 1.6.1 and Minecraft Forge build Just use the installer for forge, although I would recommend that you modify the profile that the forge installer creates for you in the launcher. If you change the game directory for the forge profile you don’t have to worry about forge trying to load mods for other versions of minecraft. According to the forge release notes this is supposed to change in the future, but it hasn’t been working for me in my tests so I have simply created a new game directory for my testing.

If you are of the more technically inclined variety and are wondering what we have learned in our updating from 1.5.x to 1.6.1 read on, if not the feel free to go off and have fun with the alpha.

If you have followed the past development posts then you probably already know that the majority of the issues that we were running into were all related to scarecrow. It turns out that the scarecrow was not being created in the correct location. Prior to 1.6 the creation of the scarecrow had been done in the Init, and minecraft/forge never complained, starting with 1.6 if you don’t create items/blocks during preInit then the resource manager never calls registerIcons and when minecraft attempts to render the item it gets a null reference and the game crashes.

1.6.x Update Progress – Part 2

The work on the 1.6.x update continues. We now have a mostly working indev build, now updated with textures.

As you can see in the background there are some Autumn Woods trees in the background, and you probably should have noticed that the little ExtrabiomesXL Scarecrow is not showing up on the creative tab. Presently the scarecrow has not been fully updated to 1.6.x resource pack format, so at the moment he has been disabled. But fear not for Anderzel’s Hot Date, it will be making a triumphant return to 1.6.x in all it’s mob scaring glory by the time the first public build of ExtrabiomesXL hit’s your downloads folder.

1.6.x Update Progress – Part 1

Just a quick update to any one who is interested, we almost have v3 of ExtrabiomesXL for 1.6.x updated.

Ignore the texture errors. (It turn out that it was not the development environment and was being caused by the change from texture packs to resource packs.) I am in the midst of restructuring my development environment so as to make it so that we can update v3 and do our work on v4 in the same place without one mod affecting the other and as such textures are not showing up until I actually turn the mod into something that you can actually drop in your mods folder.

Now that I understand what has changed API wise in 1.6 compared to 1.5 I can revert my test code for 1.6 and cleanly update it for 1.6, along with completing the few other bug fixes that I still have in our pipeline and the other small new features that we want to add as part of my taking over as lead dev for ExtrabiomesXL.

Keep your eyes peeled as we update you on what is coming in what we hope to be the last set up updates for ExtrabiomesXL v3 before we Finally move on and are able to release v4.