Jump to content

[1.15.2] Where is isCollisionBoxesEmpty method?


naari3

Recommended Posts

there is code for forge 28(1.14.4)

    boolean isNotColliding(ClientWorld worldIn, BlockPos pos) {
        val bb = boundingBox(pos);
        worldIn.getEmptyCollisionShapes()
        return !worldIn.containsAnyLiquid(bb)
            && worldIn.isCollisionBoxesEmpty(null, bb);
            && worldIn.checkNoEntityCollision(null, VoxelShapes.create(bb));
    }

 

I was able to get the method `IWorldReader#isCollisionBoxesEmpty(Entity entityIn, AxisAlignedBB aabb)`, but I can't get it after updating to forge 31(1.15.2).

Do you have any ideas?

thanks!

Link to comment
Share on other sites

Howdy

 

My usual strategy for solving this sort of problem is

1) For a method in a small class, I just open the new class and browse it looking for code which is similar to the 1.14.4 code

If the class is large or the method has moved out to another class

1) Use my IDE to search for all usages of the method in 1.14.4, and make note of a distinctive class/method which uses it

2) Go to the same class+method in 1.15.2 and see what the same code is calling now.

 

YOu might also find these links helpful

https://gist.github.com/williewillus/353c872bcf1a6ace9921189f6100d09a

Quote

Cross-referencing, a quick how-to

  • Oh no! Method FooClass.BarMethod disappeared in 1.13/1.14! Where did it go? Follow these easy steps for a guaranteed 80% success rate!
  1. Open a 1.12 workspace (this is why you use a separate workspace to update, by the way)
  2. Browse to FooClass.BarMethod
  3. Use your IDE's find usages tool to see where it was called from in vanilla
  4. Pick a call site
  5. Go to that same call site in 1.13/1.14
  6. What does it call instead?
  7. ???
  8. Profit

(if these steps don't apply, then you're allowed to ask)

 

and

https://gist.github.com/williewillus/30d7e3f775fe93c503bddf054ef3f93e

 

Cheers

  TGG

 

  • Thanks 1
Link to comment
Share on other sites

Oh its true! That is nice strategy.

 

Follow that one, I replaced the method like this

 

    boolean isNotColliding(ClientWorld worldIn, BlockPos pos) {
        val bb = boundingBox(pos);
        return !worldIn.containsAnyLiquid(bb)
            && worldIn.func_226665_a__(null, bb)
            && worldIn.checkNoEntityCollision(null, VoxelShapes.create(bb));
    }

 

Thank you!

 

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.