Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OrnamentBuilder feature - defined VoxelShapes #45

Open
Andromander opened this issue Jan 1, 2024 · 0 comments
Open

OrnamentBuilder feature - defined VoxelShapes #45

Andromander opened this issue Jan 1, 2024 · 0 comments
Assignees
Labels
enhancement Improvements on existing features

Comments

@Andromander
Copy link
Owner

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.

@Andromander Andromander added the enhancement Improvements on existing features label Jan 1, 2024
@Andromander Andromander self-assigned this Jan 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improvements on existing features
Projects
None yet
Development

No branches or pull requests

1 participant