Jump to content

[1.16.1] Altering hitbox shape of mob


the_infamous_1

Recommended Posts

For clarification, when I am talking about the hitboxes and their colors, I mean the ones that show up after pressing F3+B in-game.

I have a mob that is drastically wider on the X-axis than it is on the Z-axis, so I've been overriding Entity#getBoundingBox to return one that is shrunk on the z-axis, which does work for the general hitbox of the mob (the one with a white outline). However, the suffocation hitbox (the thin red hitbox that determines if a mob should be suffocating from being inside a block) still uses the same X/Z dimensions. I can't seem to find a method to override in Entity/LivingEntity that allows me to change the suffocation hitbox, if there even is one. As a work-around, I've overridden LivingEntity#isEntityInsideOpaqueBlock but of course the displayed suffocation hitbox is still the same.

Link to comment
Share on other sites

First off, can you just set the size from the EntityType? If all entities of this type are that size, that is the best way to do it. The entity type builder has a method .size(width, height) to set the hitbox size.

ย 

As for the suffocation hitbox not changing, I think that is a forge bug. See https://github.com/MinecraftForge/MinecraftForge/issues/7399. If you can't set the size for the EntityType, you could use reflection to change eyeHeight yourself (it's a private value).

Link to comment
Share on other sites

The thing is, I need the entity width to be a large number so that the entity is wide enough on the X-axis, but it needs to be drastically thinner on the Z-axis (I'm talking 6.0F wide on X, 1.0F wide on Z). Entity width is used for both the X-axis width and Z-axis width, so it's not like I can make them separate. This is why I have to override getBoundingBox and shrink the bounding box along the Z-axis.

I will look into eye height, though, thanks for that tip.

Link to comment
Share on other sites

Now I've run into this crazy bug. If I make the entity's width small, and then try to grow it on the axis that is larger, then the world gets corrupted somehow as mobs cannot move / start floating on collision and leaves decay rapidly. If I make it big, and instead shrink it on the axis that is smaller, then it's ok.
ย 

The small-then-grow approach makes the suffocation hitbox correct, while the large-then-shrink approach makes it not.

Edited by the_infamous_1
Link to comment
Share on other sites

You need to use multiple hitboxes, like the dragon.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.ย  If you think this is the case, JUST REPORT ME.ย  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

ย 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

ย 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

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.