Why hello there! Glad you have stumbled upon my mod.
BluDecorations is a mod stemming from my first delving into 3D modeling with Blender and the use of those models in Minecraft.
This is not my first mod, however my first one made publicly available.
The mod's premise is the addition of a single block in three tools for its customization. You can freely configure the models displayed by the block and their texture, as well as colour, transparency, positioning, rotation and particle effects.
The average user will find that this mod comes with a variety of preset configurations, made by me, which they can adjust to their likings. To more advanced users, experienced in the concepts of Minecraft's resource system, or in forge modding, this mod offers a blank canvas for them to add custom models and textures.
Download
For 1.6.4
For 1.7.2
Changelog
Version 1.2.3/1.3.1
- Fix: The render doesn't break when there's an item frame nearby
- Fix: The TileEntity does not remain when the block is destroyed anymore (this caused persistent bounding boxes and model configurations)
- Added Feature: You can add a preset to a current configuration instead of replacing it. Hold CTRL. This applies for models as well as particles
- Added Feature: You can save configurations locally. These will be written into two seperate .cfg files. These configurations can then be accessed in any singleplayer world and probably on multiplayer servers (not tested, but should work in theory)
- Added Feature: Infinity Binoculars. Click the block with them to toggle infinite render bounds. That means that your block will always be rendered, even if the bounding box is not in view. Note that this will obviously increase the load on your system.
Source
The mod is fully open source. The source and with it the API is available on GitHub:
For 1.6.4
For 1.7.2
If you want to create an addon for this mod, take a good look at it!
This is only one of the few things you can do with this mod.
Spotlight
For a more detailed look in moving pictures, check out this sweet spotlight by CaptainSparklez!
How-To
The Configureable Block is crafted like this:
The dyes can be of any colour.
The first item of this mod is the Model Wrench.
It is used to open the model configuration gui:
That will result in this gui:
You can now select a preset model from the list on the left, adjust rotation, scale, light and boundingboxes, or add a new RenderElement to the current configuration.
The sliders are moved with the mouse. hold shift to make them snap to certain steps. Hover over them and use the left/right arrowkeys to move them by a small amount.
UPDATE:
From version 1.3.1(on MC1.7.2) or 1.2.3(on MC1.6.4) onwards, CTRL+Click will add the selected preset to the current config, instead of replacing it.
Furthermore, you'll find another textfield in the middle of the screen, aswell as a "Save" button. These allow you to save the current configuration under a name of your choice.
These saves are made locally, in your config folder. Due to this, they are available in all singleplayer worlds and probably even on MP servers you join.
The "Next Page" button is deactivated, because any page following this is a render element. On a freshly placed block, there are no render elements..
If you select a preset model now, however, it will become available.
After selecting "Stone Torch" and clicking "Next Page", you are presented with this:
You are in the configuration screen for one specific RenderElement now. It may look a bit overwhelming right now, but once you got the hand of it, it's quite easy to use.
The three textfields are use to set the model and texture of this element. The model path should refer to an OBJ model (more infos on that later). The texture path requires the formatting of a so called "ResourceLocation". The modders among you will know what that is. To those that don't: It refers to a resource used by Minecraft and consists of a domain and a filepath, connected by a ':'. Look at the preset models for an example.
Finally, the Model Part Name refers to the part of the model to render.
The "Pos Y" Slider controls the height offset of the part
The field next to it the X and Z offset.
The three "Rot." sliders control the rotation around the three axes.
The Colour sliders are pretty self explanatory, colouring the model with RGB values, ranging from 0 (black) to 255 (white).
Finally, the Alpha slider controls the opacity.
You can now select a preset model from the list on the left, adjust rotation, scale, light and boundingboxes, or add a new RenderElement to the current configuration.
The sliders are moved with the mouse. hold shift to make them snap to certain steps. Hover over them and use the left/right arrowkeys to move them by a small amount.
UPDATE:
From version 1.3.1(on MC1.7.2) or 1.2.3(on MC1.6.4) onwards, CTRL+Click will add the selected preset to the current config, instead of replacing it.
Furthermore, you'll find another textfield in the middle of the screen, aswell as a "Save" button. These allow you to save the current configuration under a name of your choice.
These saves are made locally, in your config folder. Due to this, they are available in all singleplayer worlds and probably even on MP servers you join.
The "Next Page" button is deactivated, because any page following this is a render element. On a freshly placed block, there are no render elements..
If you select a preset model now, however, it will become available.
After selecting "Stone Torch" and clicking "Next Page", you are presented with this:
You are in the configuration screen for one specific RenderElement now. It may look a bit overwhelming right now, but once you got the hand of it, it's quite easy to use.
The three textfields are use to set the model and texture of this element. The model path should refer to an OBJ model (more infos on that later). The texture path requires the formatting of a so called "ResourceLocation". The modders among you will know what that is. To those that don't: It refers to a resource used by Minecraft and consists of a domain and a filepath, connected by a ':'. Look at the preset models for an example.
Finally, the Model Part Name refers to the part of the model to render.
The "Pos Y" Slider controls the height offset of the part
The field next to it the X and Z offset.
The three "Rot." sliders control the rotation around the three axes.
The Colour sliders are pretty self explanatory, colouring the model with RGB values, ranging from 0 (black) to 255 (white).
Finally, the Alpha slider controls the opacity.
That will result in this gui:
You can now select a preset model from the list on the left, adjust rotation, scale, light and boundingboxes, or add a new RenderElement to the current configuration.
The sliders are moved with the mouse. hold shift to make them snap to certain steps. Hover over them and use the left/right arrowkeys to move them by a small amount.
UPDATE:
From version 1.3.1(on MC1.7.2) or 1.2.3(on MC1.6.4) onwards, CTRL+Click will add the selected preset to the current config, instead of replacing it.
Furthermore, you'll find another textfield in the middle of the screen, aswell as a "Save" button. These allow you to save the current configuration under a name of your choice.
These saves are made locally, in your config folder. Due to this, they are available in all singleplayer worlds and probably even on MP servers you join.
The "Next Page" button is deactivated, because any page following this is a render element. On a freshly placed block, there are no render elements..
If you select a preset model now, however, it will become available.
After selecting "Stone Torch" and clicking "Next Page", you are presented with this:
You are in the configuration screen for one specific RenderElement now. It may look a bit overwhelming right now, but once you got the hand of it, it's quite easy to use.
The textfields are use to set the model and texture of this element.
Both the model path and the texture path are set in the style of the ResourceLocation system which was altered in 1.7. Unlike in the 1.6.4 version of this mod, the domain is now required on the model as well, and for easier management, the domain fields are separate.
The model path should refer to an OBJ model (more infos on that later).
The texture path should refer to a .png file.
Look at the preset models for an example.
Finally, the Model Part Name refers to the part of the model to render.
The "Pos Y" Slider controls the height offset of the part
The field next to it the X and Z offset.
The three "Rot." sliders control the rotation around the three axes.
The Colour sliders are pretty self explanatory, colouring the model with RGB values, ranging from 0 (black) to 255 (white).
Finally, the Alpha slider controls the opacity.
You can now select a preset model from the list on the left, adjust rotation, scale, light and boundingboxes, or add a new RenderElement to the current configuration.
The sliders are moved with the mouse. hold shift to make them snap to certain steps. Hover over them and use the left/right arrowkeys to move them by a small amount.
UPDATE:
From version 1.3.1(on MC1.7.2) or 1.2.3(on MC1.6.4) onwards, CTRL+Click will add the selected preset to the current config, instead of replacing it.
Furthermore, you'll find another textfield in the middle of the screen, aswell as a "Save" button. These allow you to save the current configuration under a name of your choice.
These saves are made locally, in your config folder. Due to this, they are available in all singleplayer worlds and probably even on MP servers you join.
The "Next Page" button is deactivated, because any page following this is a render element. On a freshly placed block, there are no render elements..
If you select a preset model now, however, it will become available.
After selecting "Stone Torch" and clicking "Next Page", you are presented with this:
You are in the configuration screen for one specific RenderElement now. It may look a bit overwhelming right now, but once you got the hand of it, it's quite easy to use.
The textfields are use to set the model and texture of this element.
Both the model path and the texture path are set in the style of the ResourceLocation system which was altered in 1.7. Unlike in the 1.6.4 version of this mod, the domain is now required on the model as well, and for easier management, the domain fields are separate.
The model path should refer to an OBJ model (more infos on that later).
The texture path should refer to a .png file.
Look at the preset models for an example.
Finally, the Model Part Name refers to the part of the model to render.
The "Pos Y" Slider controls the height offset of the part
The field next to it the X and Z offset.
The three "Rot." sliders control the rotation around the three axes.
The Colour sliders are pretty self explanatory, colouring the model with RGB values, ranging from 0 (black) to 255 (white).
Finally, the Alpha slider controls the opacity.
The next Item is the Particle Spraycan.
It is used to configure the particles emitted by the block:
The opened gui looks like this:
This gui works pretty much like the model customization. Instead of RenderElements, it works with ParticleElements.
UPDATE:
From version 1.3.1(on MC1.7.2) or 1.2.3(on MC1.6.4) onwards, CTRL+Click will add the selected preset to the current config, instead of replacing it.
Furthermore, you'll find another textfield in the middle of the screen, aswell as a "Save" button. These allow you to save the current configuration under a name of your choice.
These saves are made locally, in your config folder. Due to this, they are available in all singleplayer worlds and probably even on MP servers you join.
You are presented with a list of preset configurations,
And this is the configuration for a specific ParticleElement. These are a bit more tricky in setting up, since they require the actual class path for a particle entity in Minecraft. Because of this, those who actually mod themselves or have taken a look at Minecrafts source might be at an advantage here.
For the more average consumers, I've compiled a lsit of the most commonly used vanilla particles:
Flame: net.minecraft.client.particle.EntityFlameFX
Smoke: net.minecraft.client.particle.EntitySmokeFX
Air Bubble: net.minecraft.client.particle.EntityBubbleFX
Firework Sparkle: net.minecraft.client.particle.EntityFireworkSparkFX
Heart (from taming/breeding): net.minecraft.client.particle.EntityHeartFX
Note: net.minecraft.client.particle.EntityNoteFX
Redstone: net.minecraft.client.particle.EntityReddustFX
The other options are the same as on RenderElements though:
The "Pos Y" Slider controls the height offset of the part
The field next to it the X and Z offset.
The three "Scale" slider control the scale of the particle (this is a bit derpy, but Minecraft is to blame for that)
The Colour sliders are pretty self explanatory, colouring the particle with RGB values, ranging from 0 (black) to 255 (white).
Finally, the Alpha slider controls the opacity.
This gui works pretty much like the model customization. Instead of RenderElements, it works with ParticleElements.
UPDATE:
From version 1.3.1(on MC1.7.2) or 1.2.3(on MC1.6.4) onwards, CTRL+Click will add the selected preset to the current config, instead of replacing it.
Furthermore, you'll find another textfield in the middle of the screen, aswell as a "Save" button. These allow you to save the current configuration under a name of your choice.
These saves are made locally, in your config folder. Due to this, they are available in all singleplayer worlds and probably even on MP servers you join.
You are presented with a list of preset configurations,
And this is the configuration for a specific ParticleElement. These are a bit more tricky in setting up, since they require the actual class path for a particle entity in Minecraft. Because of this, those who actually mod themselves or have taken a look at Minecrafts source might be at an advantage here.
For the more average consumers, I've compiled a lsit of the most commonly used vanilla particles:
Flame: net.minecraft.client.particle.EntityFlameFX
Smoke: net.minecraft.client.particle.EntitySmokeFX
Air Bubble: net.minecraft.client.particle.EntityBubbleFX
Firework Sparkle: net.minecraft.client.particle.EntityFireworkSparkFX
Heart (from taming/breeding): net.minecraft.client.particle.EntityHeartFX
Note: net.minecraft.client.particle.EntityNoteFX
Redstone: net.minecraft.client.particle.EntityReddustFX
The other options are the same as on RenderElements though:
The "Pos Y" Slider controls the height offset of the part
The field next to it the X and Z offset.
The three "Scale" slider control the scale of the particle (this is a bit derpy, but Minecraft is to blame for that)
The Colour sliders are pretty self explanatory, colouring the particle with RGB values, ranging from 0 (black) to 255 (white).
Finally, the Alpha slider controls the opacity.
Then we have the Adjustable Instructions:
Rightclick them on a configurable block to store the model and particle configurations on the item. Click them on another block to apply that configuration there. To clean the instructions, shift+rightclick.
The final Item in this mod are the Infinity Binoculars:
Click the block with them to toggle infinite render bounds. That means that your block will always be rendered, even if the bounding box is not in view. Note that this will obviously increase the load on your system.
Lastly, if you click the blocks with a chest in your hand, the chest will be integrated into the block, allowing it to function as an inventory. So the blocks don't just look good, but also have a little bit of practical use
Custom models
This is the special part of the mod:
Users can add their custom models either by different methods.
If you're a developer, you can simply create an addon for this mod. If you do that, you can even use the API to save your models as custom configurations in the preset list.
However, the use of a custom resourcepack will also allow you to make your own (or others) .obj files available to Minecraft. It's probably best to put these models and custom textures (yes you can add those too) in a subfolder of "assets". Preferably not inside "assets/minecraft"
Some things to keep in mind about custom obj files:
The Advanced Model Loader of forge is a bit picky about the models you parse it.
Your custom models may either have only triangular faces or rectangular. No more than 4 edges and no mixing. For optimal results, tell blender to triangulate the faces on export. That way nothing can go wrong (don't quote me on that xD )
Secondly, the parts of the obj model must not contain a '.' in their name. However, blender does that automatically. Adding just a second cube mesh results in the name Cube.001. Take care to rename them, or the model loader won't be able to parse them. I'd advise the use of underscores.
And lastly: Blender is a bit derpy, and considers two connected vertices (a line) a face. which means that your obj file may contain faces made up of only 2 vertices. Since these aren't really faces, the model loader doesn't like them. And while it may seem like a huge effort to open your .obj file in a texteditor and look for those 'fake'-faces, they are always at the bottom of the faces of each object, because blender sorts faces by the amount of vertices. These thankfully don't occur to often, ideally never, if you know what you're doing on modelling and you don't leave "residue" vertices.
Bugs
If it does, however happen, please submit a bug report.That way nothing can go wrong
The most ideal way to do that is on my GitHub:
For 1.6.4
For 1.7.2
If you don't wanna do it there, post it in this thread, however I look here less than on GitHub.
Eitherway, make sure that you include in your report:
The Version of Minecraft, of Forge and the Crash Report (if you got one) aswell as other mods you installed.
Legal Stuff
This mod is licensed under Creative Commons 3.
Short Version: You are free to use this mod and it's code, but be so kind as to say where you got it ;D
Also, you are free to use this in any modpack.
Enjoy yourselves!
Last edited: