Add-ons and Mod Focus

We’re kind of awash with ideas and plans here at EBXL headquarters. And it’s getting to be a problem. See… we want to provide all of these features, but in so doing we risk damaging the focus of the mod. Eventually every large mod has to choose whether or not to stick to their original plan or go the kitchen sink route and start implementing tangential features that stray further and further from the core.

My strawberries are a good example of this dangerous border territory.

Is it appropriate for a biome mod to provide decorative flowering plants? Of course. Is it appropriate for those plants to also be useful? Absolutely. But how useful? How many systems can they provide before those systems start to get in the way of what was previously largely aesthetic?

It doesn’t make sense not to provide edible plants here and there… but it also doesn’t make sense to inundate the player with 30 new types of fruit and a system for mixing custom beverages out of them. Strawberries themselves are appropriate for inclusion in the mod, but certain features that I wanted to implement with them were not.

But I AM going to write those features. And I’m going to write lettuce, onions, and tomatoes too… I’m just not putting them all in EBXL Core.

When we release our 1.7.x build of the mod, we will be introducing the concept of official EBXL add-ons. These will be mods developed by the team that implement things that we want to see but also realize that some people may not – so we aren’t going to force them on you. The main mod will continue to provide all of the functionality that it traditionally has – but it will also serve as a launching point for any add-on mods that we release.

In general, these add-on mods will be released separately from the main mod, and should maintain compatibility with a number of EBXL Core versions. Add-ons will also typically increase the complexity and difficulty level of the world in various ways.

Right now, we have 2 submods that we’re talking about implementing – with numerous other ideas that haven’t quite yet been categorized.

Farming Add-on


The first add-on we will release is (for lack of a better name) EBXL Farming. It will eventually grow to be a fully featured food mod with interesting crops and even more interesting ways to use them.

Strawberries will remain in Core, and we will be joined by a handful of other edible wild plants. They will, however, not be farmable. So I will be nerfing Core’s wild strawberry plants and removing the seed recipe. Seeds and reliably renewable sources of custom food will go into the add-on. The add-on will also be adding a lot more edible plants that don’t fit in the main mod.

Similarly, the chocolate recipe will remain in Core. It’s honestly something that Mojang should have implemented themselves in vanilla. But since they didn’t, we’ll provide the recipe ourselves out of all vanilla components. And we’ll continue to provide a recipe for chocolate covered strawberries. But those recipes will just use the vanilla 3×3 crafting grid.

The add-on will introduce new cooking mechanics. This means new machines/tools/etc… that are outside of the scope of the main mod. If you install the add-on, it will optionally disable any vanilla-style cooking recipes that we add to Core in favor of more interesting ones.

If it sounds like I’m being vague, well… maybe I am. The full scope of the farming mod is just a bit too big for this post. I’ll go into more detail when the time comes. But one other thing I will mention is that you won’t need to run electrical wires from a generator in order to can your strawberry jam. Our machines will remain relatively low tech – no plugs involved.

Fantasy Add-on


The second add-on will be EBXL Fantasy (also for lack of a better name). This is were biomes that don’t exist in the real world will go. Like the old Forgotten Nature (Trees++) crystal forest. We’ve not forgotten about it, but crystal trees just don’t fit in a mod that tries to base everything on reality.

I have no clue what else might eventually actually go into this add-on, but we’ve got a laundry list of features that may change the behaviors of existing biomes. Like wasteland. Something will probably happen to it in the fantasy add-on. Probably.


If all goes well, the farming add-on will ship its first public build within hours (or days – but not weeks) of our public 1.7 release candidate. Fantasy is still way out there – we are still just in the planning phase there.

ExtrabiomesXL 3.15.7 – More Bug Fixes/1.7 Update Prep

Just a quick update to get this bug-fix out in the wild. There is a little under the hood prep work for making the transition between 1.6 and 1.7 that will cause MC to complain again about blocks being changed but it should not cause any issues.

Download ExtrabiomesXL 3.15.7

Change Log

Bug Fix:
  • Sakura Log side texture is the correct size once more so that it no longer shows up as a missing texture.
  • Fixed and NPE while generating Large Fir Trees.
Changes:
  • Updated some of the internal block references to make them compatible with the new 1.7 versions.

EbXL 3.15.6 Less Crashing – (Small 1.7 Update)

Well the time has come to get a few more crashes out of the way. We had a major server crash that some how managed to slip through testing on our end, along with a client side crash with tukMC is also installed and you looked at one of our quarter, elbow or mini logs due to tukMC trying to render an a block with invalid metadata.

We also started updating some of the block “names” that minecraft/forge stores in maps in preparation for upgrading to 1.7. This will cause MC to complain that blocks have changed but is just MC/forge letting you know that we updated stuff on our end so that once the fully get rid of external id’s you won’t have to type something like “extrabiomes.block.BlockCustomFlower:extrabiomes.block.BlockCustomFlower” and instead be able to do something more along the lines of “extrabiomesxl:flower1”, much easier on the keyboard ehh?

Oh and we back-ported the new localization and smart tool tip code so that flowers and such can now have their tool tips localized. If anyone has any suggestions for flavor text for any of the flowers that don’t have descriptions feel free to chime on in, although Annysia would probably prefer that you do it over on the official forums thread where you gets notifications about such any posts.

Download EbXL 3.15.6

Change Log

Bug fixes:

  • Fixed crash with tukMC and any other mod that creates fake items for render resulting in invalid metadata in the item form for Mini, Quarter and Elbow logs.
  • Fix server crash from missed placed SideOnly in BlockCustomFlower.

Changes:

  • Tool tips for flowers are now localized, and will automatically wrap text so that it does not need to manually be formatted as such in the localization.
  • Flower names localization has changed for easier translation in the future. No more extrabiomes.flower.0, as the localization string now says the flower name. This breaks most existing translation, but will be better in the long run.
  • Some blocks had their internal “keys” changed in preparation for updating to 1.7, this will result in MC saying that some blocks have changed but it is not an issue as it will not break anything in 1.6.

1.7 Update Blurb

Not much new news about 1.7 at the moment as I personally have been catching up on sleep and dealing with my full time job, and other outside of modding stuff along with getting 3.15.6 out the door.
That said I do have stairs completed so there is that, but they may end up getting a little more work as they way that vanilla handles stairs is a little restrictive for what I would like to do with the block config file, but that will have to wait for the moment.

EbXL 3.15.5 Log Spam be Gone! (1.7 update – Tooltip Localization)

Another emergency fix for the 3.15.x branch to deal with log spam slowing down world generation.

Download EbXL 3.15.5

Bug fix:

  • Commented out debug code from flower generation that was causing lag due to log spam.

I’ve been working on finally getting the EbXL 3.15 branch ready to be re-synced with github again so that we can finally have other people able to contribute to out code again, along with doing some minor tasks on the build for 1.7, mainly focusing on code that we can bring back to MC 1.6 stuff such as localization in tool tips. It is almost ready to be re-synced again and we just need to make sure that everything matches on up and then we will be good to go and other’s can once more push bug fixes if they are needed.

So in starting in EbXL 3.15.x we started adding tool tip flavor text to things like flowers and other such things. There were two minor issues with it, firstly for longer flavor text/descriptions each line of the text had to be manually separated, and hard coded into the mod itself. With the work that we have been doing in 1.7 that will no longer be an issue, as we will be able to simple enough back port the update to allow for wrapping formatted text in tool tips.

As you can see by this example I have also been working on getting the mod config screen up and running, and although it is nowhere near complete, it is progressing nicely. Unlike the video settings screen in 1.7, the buttons on our config screen actually make the clicking sound when you use them and also have can tool tips to better describe what they do. Also the code that for adding new properties has been simplified a bit more and now only needs the property to be defined, as the button text and the tool tip are now localized. Due to the server not having access to the resource packs and thus localization the actual config file will not be able to be localized as I understand it, but you could easily enough edit the configuration on a client and then copy the config on over to a server/mod pack.

You may have noticed that in the screen shot the the tool text switched colors, and although you can’t see it from just the one screen shot, the tool tips can each have their own default color for text although it defaults to gray if no color is specified as the first part of the localization string. Unlike the vanilla formatting codes (although this is virtually the same codes) when you use the reset command in localization definitions it will remove any formatting and will reset it to the default color for the tool tip be it gray or some other color that was specified for that tool tip’s text instead of white like vanilla does, unless of course you have set the default text color to white. (Or is it black by default, I can never remember.)

EbXL 3.15.4 for MC 1.6.4 & 1.7 Update Progress

Another critical patch for if you have had issues upgrading from 3.14.x and early versions.

Download 3.15.4 Here

Change Log
Bug Fixes:

  • Old block/item ids are kept when upgrading from versions prior to 3.15.
  • Blocks/items can once more be disabled by setting them to 0 in the config. Some blocks that are used in recipes such as redrock can not be disabled without all the things that are made from them being disabled as well.
  • The redrock in the Forestry carpenter recipe has be fixed so that it does not use a random fluid instead of water.

Well it took longer that I had hoped, but we have made some great progress. All of our terrain blocks with the exception of quicksand are in game. In relation to terrain blocks, I finally took a look over at the the terrain generation code, namely the chunk constructor code/biome filler/topblock code, and it looks like we will be able to use any type of block, even if it has metaData in terrain generation. We haven’t had a chance to test this out, but what it means if I read the code correctly is that we can use any type of block as the top of the biome, and what’s more we can pack up to 32 block types into the existing block id’s that we already use.

Our block configuration loading code got an upgrade as well as it now has the ability to load drops for any block/sub block. The blocks/sub blocks can drop rare and/or normal drops.  They can have more than one of any type of drop and each drop can have it’s own unique drop chance. If no drops are specified then the block will drop itself all the time, with some limited exceptions. Corner Logs (what used to be called Quarter Logs) and Elbow Logs are able to find out about normal logs and drop them if silk touch is not used to harvest the blocks. (This needs to be added to the config options still.)

Also we now have wooden planks in the game, along with wooden and stone slabs/double slabs. The half and double slabs are able to find out about each other and they interact like normal slabs/half slabs do. (Edit: redstone behavior still needs a little work with half slabs it seems.)

The mini log got a bit of an update in that you can now click past it if the bounding box does not intersect what you are looking at, meaning that you can interact with blocks behind the mini logs if they don’t connect to something and extend their bounding block to block you.

So you might be wondering what is left to complete, well at the moment we still need to get stairs added into the game along with the brick wall type brick for the Redrock and while I was at it I considered adding wooden fences and gates for all our plank/wood types and after talking with the rest of the team, I think it is something we would like to try to do. After that we also have the flowers/plants that need re-added and our saplings. Once that is complete, I will probably be calling EbXL for Minecraft 1.7 block complete. Then I will probably need to take a couple of days to do some maintenance on 3.15.x for MC 1.6.4 before I can get to work on the fun stuff, world generation.

Just a quick Update

I don’t have much to report today, but I have leaves about 90% coded back into 1.7, with the main things that are not complete as of yet being the dropping of saplings and other items as saplings are not in the game.

However things are far enough along that I can get a build on out for other team members to start crafting trees that I can then turn into the basis for code later on.

1.7 Update – Existing Logs Complete

Well all the logs that we had have in ExtrabiomesXL 3.15.3 for Minecraft 1.6.4 have been re-implemented in the new system that we are designing for Minecraft 1.7.x.

The last of the logs to complete is our Mini Logs which received a bit of an upgrade, they now support the ability to have multiple types of log in one block and can come in varying sizes, as shown in the picture above. The shot is a dev test so the smaller log is just reusing the Sakura log’s textures, but it shows the basic concept and power of the new design. We also had to deal with a rendering issue with the log in item form that didn’t make itself present until 1.7. It is what I get for hacking together the rendering code for it before I fully took the time to understand it. The logs could still use a bit more work on their normal rendering, as since they use custom rendering code for their “nubs” to allow them to attach to things like other branches or leaves, they don’t do smooth lighting properly. This will probably get pushed to the side for the moment as getting the rest of the mod updated is a little more important, and once I finish the update if some wants to contribute and push a change to fix that issue on github they would be more than welcome to do such.

As part of the update I discovered the Block.isWood method, so the mini logs now are able to connect to any block that reports that it is wood, much better over how I was try to do it before, and it has the benefit of supporting any type log that reports that it is wood. I had originally tried using the block material, but planks, wooden stairs and wooden half slabs all use the the wood material so that was out since initially I wrote the code to check to see if the adjacent block used the same block id. If you look closely you can see where the mini log is connecting to the leaf block an you can see the nub stick out to connect there.

I also worked on the fixing up the whole multi-block system a bit so that if you some how had an invalid sub-block in your inventory or in the world it no longer crashed the game, but instead indicated that the block was invalid. The texture could probably still use a little more work for invalid blocks and items and I need to see if I can get it to render as 2D although that does not look to be all that promising with out some base edits that we will probably not do.

I also started in on the leaf blocks, they are going to take a little bit of work as they are getting a complete overhaul.  I am manually de-obfuscating all the code that I can so that we can actually tell what is going on internally (leafRange and chunkRange are much easier to understand than b0 and i1), and so that each leaf block does not end up eating 32768 integers like vanilla leaf blocks do and we do in EbXL 3.15.3 and below.

I’ll try to have another update out tomorrow and I hope to have enough time to have the leaves up and running by then so that I can move on to the flowers, and Annysia, Zenth can play around with the blocks and get to creating template trees that myself and the other coders can create tree generation algorithms that generate similar results. It is one thing to say I want a Sugar maple tree that is approx 20 meters tall and a whole other thing to create code that generates the parts of said tree to give it a somewhat realistic feel.

Allaryin has been busy working on extracting all references to Project Dandelion, our top secret project that we want to really wow people with, from our private dev branch.  This way we can re-sync the public git, to allow others to contribute once again.

3.15.3 Thaumcraft 4 Hot Fix – More 1.7 Progress

Just to let every one know Thaumcraft updated to 4.1 today, and we had been including the API in our jar when we did not need to do.  When Thaumcraft 4.1 updated it’s API, which we were accidentally overwriting due to not forcefully loading after Thaumcraft, as it would have lead to an infinite loop with Forestry. Anyways, just re-download 3.15.3 and you will be good to go again. (I really need to talk with Scott to so that we can update our Thaumcraft calls so we don’t need to include the classes in our work space like he did with the old IC2 API.)

Download EbXL 3.15.3

As for the 1.7 update, it is coming along and with the new block loading code adding the Quarter Logs (which are being renamed to Corner Logs in order to support larger trees in the future) was rather trivial.   Even with having to rename the textures to match the new naming convention, converting the last four logs only took about 2 minutes to get them added and in the game. One thing that I like about the new block id system in 1.7, is that blocks will appear in the order that they are created now since MC automatically assigns their internal numerical id’s, meaning that we can control the order that blocks are sorted in our creative tabs with nothing more than changing the order of the blocks in the config file. Talk about convenience.

On a 1.6.4 to 1.7.x transition note one of the upcoming 1.6.4 releases will be generating a ton of ID mismatch messages, as the way that we currently register blocks/items is a little troublesome and is not user friendly. As long as you do NOT delete your config file this will not break you world, it should just make updating to 1.7.x possible without breaking everything.  However, the 1.7 version will probably have some new biomes, so you are going to get issues with chunk borders, if added to an existing world, so that should not be any more of an issue than it would be otherwise.

I still would recommend creating a new world in 1.7 though as it chunk borders are ugly, and time willing we may have an enhanced world type in 1.7. (Which would most likely make it EbXL 4, but that is not confirmed at the moment.)

3.15.3 Server Side Bug Fixes (Oh and 1.7 Update Progress)

Well it turns out there were a couple of bugs relating to how EbXL interacts with other mods and not doing things properly that led to us causing crashes on servers.
Download EbXL 3.15.3

Change Log:

Bug fixes:

  • Eelgrass no longer causes crashes on servers if a mod asks for the unlocalized name on the server.
  • Our custom dyes no longer cause a crash if another mod asks for the unlocalized name on the server.
  • Deleted Thaumcraft API from the jar to prevent it from breaking with Thaumcraft 4.1. (It also makes for a smaller download too.)

Changes:

  • Eelgrass can now grow on grass block under water so as to curtail it breaking if a dirt block changes due to grass spread.
Well, work on the 1.7 update has finally started, and at the moment the foundations of the mod are undergoing a rewrite to try and make things easier to maintain in the future. As of right now, we are not totally sure if the 1.7 update will be version 3.17 or the final dawning of EbXL 4, it really all depends on how much it breaks.

One of the things that it will change, is making configuration much easier to handle.  I am already making use of the new ingame mod configuration button, that is provided on the mods screen, to enable/disable extra debug info being displayed in item tooltips.

I don’t have a screen shot of the ingame config menu as at the moment it is very much a work in progress, but it will look somewhat similar to how the 1.7 video settings screen looks like. (I am not taking a screen shot of that, you can take a look at it yourself ingame.) Some settings will require a restart as not everything can be changed while Minecraft is running. On that note, we don’t offer the ability to disable the mod in game at the moment as that is presently designed more for mods that don’t add actual content to the game, such as mods that change how grass and leaves render or give you a mini map. I may modify it so that you can completely disable the mod next boot up so it does it show up in the mods list, but at the moment I have other things that are a little more important to finish.
The new config system should also be very easy for us to work with as a team, such as adding a new property that can be used anywhere from the config file loading/saving to the ingame mod config screen. This would only take us declaring the property inside the config class, possibly giving it a comment property, a possible restart flag to let people know that they need to restart the game for it to take effect and then actually using it anywhere that it is needed in the code. All in all, that saves us a little coding down the line.
Another thing that is changing for the better is that we are making it so that blocks can be defined outside of the code, somewhat similar to how Metallurgy handles their blocks. We already have working code that loads all of our existing normal logs from the json config file. We are going with json (which I am told Metallurgy will also be using in Metallurgy 4) as opposed to csv, as it makes for a much more flexible format in my own opinion, and Minecraft/Forge already come with json decoding/encode support built on in.

We are presently hoping to have all of our existing blocks back in to the 1.7 build by the end of the week. Hopefully with the possibility of some of the new planned blocks as well.  The new system will also allow our team members who are non coders to add new blocks/sub-blocks without having to touch the code as long as it is based on an existing block type and does not need any new functionality.
We don’t have trees or world generation back on line at the moment, as we are trying to make sure that we have a good foundation for going forwards. Oh and on that note and since I did accidentally show it in my mod list screen shot, one thing that we are considering for EbXL 4 is splitting the mod up a bit.  This way people who don’t want everything can download the core part of the mod and then if they want, for example, our fantasy/magical biomes and nothing else they could download only that.  Or if you want everything you could download a EbXL 4 Complete, and have all the sub-mods in one jar. Once again, this decision is dependent on how much stuff gets broken in the update, and how much gets added that we have on our list for EbXL 4.
We will try to keep everyone up to date as we make progress on the 1.7 update through the end of the month at which time I hope to have a stable build that is good enough for a private beta.  I’d talk more about stuff that is in the works but that would leave nothing for the next time I go to update, so that all for now.

ExtrabiomesXL 3.15.2 – Happy Chocolate Day!

So here we are again. The 3.15.2 patch is actually pretty big – and while we were feature complete on Tuesday, the team has spent the last few days hunting down some bugs. We hope you like it. And by it, I mean chocolate covered strawberries.

You can download it here.

It has long been one of my biggest complaints with vanilla MC that they never really make good use of the materials they provide you with. I mean, take pumpkins for example. They have have been around since alpha but have only been edible since 1.4.

In this case, MC provides us with all of the raw ingredients for chocolate – but doesn’t actually let us make “chocolate”. Sure, we can make cookies, but the recipe is strange, and have you ever eaten a cookie that doesn’t contain any sugar? *shudder*


EbXL 3.15.2 introduces farmable strawberries. You can find them growing wild in a variety of places. The bushes regrow, so you only need to plant them once and then punch them when they’re ready to harvest.


By themselves, strawberries aren’t terribly valuable as food. But because of the effort involved in producing it, chocolate is a bit more filling. And chocolate covered strawberries are more valuable than their individual ingredients would be if eaten separately.


These strawberries are the first of what will be many interesting crops that we plan to introduce, and are really meant as a test of the crop system. EbXL 3.16 will flesh out the system with more types of crops and recipes from them. We will, however, try not to be overwhelming with it – and are thinking about making an optional addon that contains additional crops and recipes for those who really like that sort of thing.

Bone meal super powers activate!

In addition to crops, we’re also adding two new classes of plant to EbXL. Namely – underwater and vine plants. Expect to see more interesting varieties of these in the future. 🙂 We’ve also added another regular flower that turns into cyan dye and have added custom dyes to provide colors that vanilla reuses for other purposes – which means we produce all dye colors except grey and dark grey.

Eelgrass grows under water.
Gloriosa flowers grow like vines.

Changelog

  • Added delphinium belladonna and blue poppies.
  • Added new dyes for white, black, brown, and blue.
    • Updated some flowers to now produce these dyes.
  • Added eelgrass subaquatic plant.
  • Added gloriosa vines.
  • Added configuration settings to control the density of new flowers in each biome.
  • Added strawberries, chocolate, and chocolate covered strawberries.
  • Improved ability of flowers to spawn in snowy biomes.
    • Removed toadstools from snowy biomes.
  • Fixed some plants that were unintentionally changing colors to match their biome.
  • Fixed the “already decorating” errors sometimes encountered when generating large trees.