Jump to content

Block hitbox made of several parts possible?


deerangle

Recommended Posts

Short answer: yes, collision boxes can be added to a list.

Long answer: I would have no clue how to pull it off myself, but the best possible example is Duct Block from Thermal Dynamics. Have a look here, especially those two methods: addCollisionBoxToList and public RayTraceResult collisionRayTrace. Hope it helps.

 

https://github.com/CoFH/ThermalDynamics/blob/1.12/src/main/java/cofh/thermaldynamics/block/BlockDuct.java

 

Link to comment
Share on other sites

10 hours ago, deerangle said:

Is it possible to add a Hitbox to my block that consists of several different pieces, so that I could have a fitting hitbox for my cross-shaped block? Other mods like thermal dynamics do it with their pipes too.

 

Do you want your Collision Box to have several different pieces? If so this is very easy just override 

10 hours ago, Nikedemos said:

addCollisionBoxToList

To do this look at 

10 hours ago, Nikedemos said:

or my slightly more readable implementation at https://github.com/Cadiboo/WIPTechAlpha/blob/e4f041d7e68e7ef7d858ecfc282893e0a420b7d3/src/main/java/cadiboo/wiptech/block/BlockWire.java#L98-L125 

 

If you also want your selectedBoundingBox to have several different pieces this is a lot harder and I think it will require having multiple blocks inside the same block space using a coremod OR return a null AABB in your selectedBoundingBox method and handle the rendering of your selectedBoundingBox yourself through world rendering events. Both these methods are pretty hard

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

16 minutes ago, Cadiboo said:

handle the rendering of your selectedBoundingBox yourself through world rendering events.

This isn't that hard actually. Just subscribe to DrawBlockHighlightEvent and render the lines of the bounding box you can look at how vanilla does it for an example.

Edited by Animefan8888

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

4 minutes ago, Animefan8888 said:

This isn't that hard actually. Just subscribe to DrawBlockHighlightEvent and render the lines of the bounding box you can look at how vanilla does it for an example.

yeah I was going to say, I tried doing it right after posting and its surprisingly easy

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

So I am now rendering dynamic hitboxes with irregular shapes for my blocks. Now I just need to get the raytrace-selection right. I'm currently trying to figure out how to get the raytrace result of several AxisAlignedBBs and then using that to check if I am selecting my block or not.

Link to comment
Share on other sites

50 minutes ago, deerangle said:

So I am now rendering dynamic hitboxes with irregular shapes for my blocks. Now I just need to get the raytrace-selection right. I'm currently trying to figure out how to get the raytrace result of several AxisAlignedBBs and then using that to check if I am selecting my block or not.

Override collisionRayTrace in your block class and call Block#rayTrace until either you have gone through all of your collision boxes or the RayTraceResult has your block.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

  • 1 year later...

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.