
BlockForge LIB
Bring your ideas to life! Add new blocks to Minecraft with one command!

BlockForge LIB
Forge new blocks to Minecraft with one command! Bring your ideas to life!
It does not require any mods at all!
[Very Important Note]:
The files were originally overwritten because of a mistake, sorry for the inconvinience! The files are now put together correctly, but unfortunately the version (Beta) v0.1 was lost in the process. Thanks for the comprehension!
Applications
- As a builder, add more details to your builds using custom blocks! (Try not using them everywhere so that the game still has high FPS!)
- As a datapack creator, you can add custom blocks with custom mechanics into the game!
- You can also experiment new blocks from concepts like the Sulfur Caves biome represented in the Minecraft Live before any snapshots come into play!

How to use
To add some block to Minecraft, you write the following command in a repeating command block (or in a separate datapack):
/function blockforge:define/<block type. Examples: simple_block, pillar_block> {id:"<insert the id of the block, normally written in snake_case>",material:"<the block inserted here will decide things like the particles, the sound for breaking the block and the color shown in a map>",sound:"<the sound for placing the block (example: 'minecraft:block.stone.place')>",name:"<the name shown on your hud and inventory>",lore:"<(optional, if not wanted, leave it as '[]') the item description which shows on the tooltip>",synced:"<boolean, important for pillar blocks>"}
To get the item for your block, you run:
/function blockforge:give {name:"<the same name from earlier>",lore:"<the same from earlier>",id:"<the id of your block; MISTYPING THIS WILL NOT PLACE THE BLOCK WHEN USED!>"}
Substitute the descriptions with the characteristics of your block!
Block types
Simple Block (simple_block)
Just a simple Minecraft block. No rotations. Cube shaped.
Pillar Block (pillar_block)
A simple pillar block. The same as an oak log or as any pillar block. The orientation depends on which face of the block you've placed it. It has three orientations: x, y and z. The "synced" components describes if your block has to adapt the orientation of the material block (works if the material is also a pillar/log). That means the debug stick would also work.
Pillar End Block (pillar_end_block)
It's like just a normal pillar block, but it has all six orientations: north, south, east, west, up, and down. It does not have support for the "synced" component.
Rotatable Block (rotatable_block)
Just like the pillar end block, but it faces the direction the player is looking. Example: dispenser (the models are different when placing it facing up and down, but the behavior is the same). Has all six directions.
Directional Block (directional_block)
A block which faces the player when placed. It is the same behavior of furnaces and chests (directional blocks don't connect), which have four directions: north, south, east and west.
Simple Slab (simple_slab)
Just a simple Minecraft slab. Needs two extra components: "upper" determines the model for the upper variant and "double" for the double.
How does it work? (for nerds)
It basically imitates everything that a real block would do. It firstly creates a normal block (the material), then summons the 6 faces as item displays, plus other 6 faces for shading (it makes the blocks appear real, but at the cost of being a bit laggy). When you give the item to yourself, it actually gives you an item frame with special properties, so it appears like your custom item. When the item frame is placed down, the data pack automatically replaces it with your block, killing it. The shading (ambient occlusion) is still an experimental feature, represented below:

Important notes
- Notice that you will need a separate resource pack to upload the textures and the models into the game;
- It can be very laggy when dealing with a world with many blocks! Be careful!
- This is a library, which adds the functionality to add custom blocks easily. It does not add the blocks shown on the images, they're only examples, but you can add them using this library!
- The "id" component is the same for the model, so be sure that your models match the id!
Plans for the future
Stairs, fences, fence gates will be added later on!
