Ornamental

Ornamental

286k Downloads

OrnamentBuilder feature - defined VoxelShapes

Andromander opened this issue ยท 0 comments

commented

Premise

As it stands, every block has a defined VoxelShape, and they are universal across each one. To basically put it: there's not really been a reason to have a VoxelShape deviate from the norm. Except, Ornamental has the Dirt Path ornaments, which are generally offset by about a pixel down, matching Dirt Path's shape.

The idea

Currently, there's only two hard-defined shapes: normal and path. The idea here is to make the normal shapes a default and the path shapes a defined override. In theory, a simple idea.

Execution, not quite so. Some blocks handle differently each what a VoxelShape is, such as solidly defining them and then mirroring what vanilla does. Others have special handling, proving more difficult to convert into a builder logic. Hence why I'm making this issue to remind myself to try this every once in a while in an attempt to move it all.

Handling

Just a note list for myself for conversion

Stairs

Effectively mirrored logic. Dirt Path shapes are adjusted accordingly for each corner of the stair.

Slabs

Same logic, just flips between normal or path.

Fences

Handling is done via CrossCollisionBlock, it would appear values are given via parameters in FenceBlock.

Trapdoors

Usual logic is used with substituted values.

Fence Gates

Usual logic. Worth noting that Fence Gates also has different handling with the collision render, worth having in mind.

Doors

Bottom half is always a full block, top half is otherwise the same handling.

Poles

Typical handling, fairly straightforward.

Beams

Handling is still relatively typical.

Walls

It appears to handle similarly to Fences, although handling is not controlled by CrossCollisionBlock, should be easier to handle.

Saddle Doors

Basically just the top half of doors, identical logic.