iChun / iChunUtil

iChunUtil as required by several of my mods.
GNU Lesser General Public License v3.0
40 stars 53 forks source link

LittleTiles door incompatibility #175

Closed CreativeMD closed 5 years ago

CreativeMD commented 5 years ago

Hey there, I'm the author of LittleTiles and recently added collision for the doors. For some odd reason this new system crashes as soon as the player is squeezed by the door and iChunUtil is installed (https://github.com/CreativeMD/LittleTiles/issues/103). Without iChunUtil it's not a problem:

crash-2018-07-27_18.53.41-client.txt line causing the crash

To be honest this doesn't make sense. I don't know what iChunUtil is doing to cause this kind of weird behavior. At first I thought it was a threading issue, but it's consistent and happens every time. Maybe you have an idea? Is there anything iChunUtil is changing about an entity tick?

In Regards CreativeMD

iChun commented 5 years ago

Is it possible that pushingBox is never set?

I spawn a clientside entity per player that latches on to the player and it could be that entity that's causing the issue rather than the player itself.

I thought there was a function that made that entity uncollidable but I can't seem to find it now hmm.

CreativeMD commented 5 years ago

Oh damn you are right. I accidentally defined Double t = null; before the for loop ... yeah I always mess up something. So basically the issue occurred as soon as two entities will be pushed be the door and one of them got stuck. Thanks for your help!

Is there a way for me to find out whether your entity is uncollidable or not? Maybe I can add support for it.

iChun commented 5 years ago

There's a method I thought I had in there but I looked at any MC code for quite a while now. I mean, spawning a client-side entity is also complicated on its own. Anyway, there used to be a function called isCollidable or isPushable or something like that.

But yeah, my clientside entities have never caused any issues as far as I know.

CreativeMD commented 5 years ago

There is canBeCollidedWith() and canBePushed(), but none of these serve the purpose. The door should push every entity even items for example. Yours seem to be a special case, but it's probably not a big issue. Again thanks for your help!!!