Posted June 25, 20232 yr I am working on a mod for mc 1.18.2 that allows multiple smaller blocks to be combined in a single blockspace. To do this I have created a block with block entity, where the block entity stores the blockstates of the smaller blocks that make up the bigger combined block. In order to add additional (small) blocks to an existing combined block I want to check if the block Im trying to add itersects/overlaps with any part of the existing combined block it it were added. I am trying to do this by comparing the VoxelShapes of the two blockstate with each other, but I cannot figure out how to do this. How can I compare two VoxelShapes with each other? It is enough if I can check somehow if two VoxelShapes are equal, but this does not appear to be possible... I have tried using shape1.equals(shape2) as well as shape1 == shape2 Both of these do not seem to return true, if the shapes are equal. I have looked into the VoxelShape class and the DiscreteVoxelShape class, as well as the Shapes clasee, but was not able to find anything that would help me in comparing two VoxelShapes.
June 25, 20232 yr Author After doing some more testing, I determined that comparing two VoxelShapes never returns true, even if I compare a variable of type VoxelShape with itself it returns false. I was able to circumvent this by calling toAabbs() on both VoxelShapes and comparing the resulting lists of AABBs using the .equals method. This works correctly as far as I can tell. So instead of shape1 == shape2 I now use shape1.toAabbs().equals(shape2.toAabbs())
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.