Creating a block.
Creating a block is mostly the same as with regular polymer ones. Only difference is implementation of
interface, which acts as a marker.
Supported block shapes/types
Polymer Blocks supports few types of models/shapes. However, possible amount of blocks is limited, because we can't really add fully custom blocks on client yet.
Every block type has its own functionality and behaviour:
FULL_BLOCK- Noteblocks, have full collision and don't allow transparency, (limit: 799)
TRANSPARENT_BLOCK- Mostly leaves, allow "cutout" textures, (limit: 104)
FARMLAND_BLOCK- Farmland blocks, (limit: 5!)
VINES_BLOCK- All centered vine blocks, Cave Vines, Twisted Vines and Weeping Vines, (limit: 100)
PLANT_BLOCK- Small plant blocks, sugarcane and saplings, (limit: 21)
KELP_BLOCK- Just kelp, (limit: 25)
CACTUS_BLOCK- Just cactus, (limit: 15!)
They all are accessible from
Defining a global model
First thing you do, is creating a model definition. You should do that by calling one of
It takes the same argument as vanilla definition in
Then you need to request a model. It's as simple as calling
PolymerBlockResourceUtils.requestBlock(BlockModelType type, PolymerBlockModel... model)
with one or more models. It returns a blockstate, that you need to use in your
PolymerTexturedBlock as result of
If it runs out of free BlockStates to use, it will return null instead. You can also check amount of free blocks
If you've done everything correctly, it should now display as your model. Otherwise, you either skipped some step or didn't apply
server resource pack. Remember that you still need to register your assets with
PolymerRPUtils.addAssetSource(String modId) method.
Just keep in mind
Some block model types have very small amount of free BlockStates. For that reason, while making public registering blocks globally, please allow for disabling of them and handle running out of them for best compatibility and mod support!