Sable compat#1154
Conversation
… instantly teleporting back
|
Literally just came here to open a bug for the same issue only to find this PR. Thanks for your work! LMK if you need any assistance w/ the fix. |
|
I am not keen on implementing the sable companion dependency. sable fundamentally rewrites vanilla assumptions (world structure, entity behavior, coordinate space) and does so in a way that is openly acknowledged to be intrusive and compatibility-breaking. I have no desire to maintain an additional dependency because of this, and rewrite every spell that uses raycast features. Unfortunately, I have yet to see a sable maintainer acknowledge any of the open issues regarding raycasting or teleporting. |
|
Hello, I am a sable maintainer! I wanted to explain for @iron431 what is actually happening. Sable Companion is a mod made to be JIJ that has a VERY small file size, and includes none of the features of sable itself. |
|
Thanks for the update @Modog500000
to me, this precisely is rewriting my raycasts. every single one must be prefixed by a new, alien operation -- wired through the sable companion. even if it is "relatively uninvasive", i prefer not to have the burden of maintaining a third party api in my core logic flow, especially not one that has no intrinsic value to my mod. it seems the raycasting issues largely stem from abnormally large AABB's being computed, thus hanging the game. i do question if sable can intercept these (it seems to already be able to detect log their presence) and simply inject a return of the union of two AABB lookups: one with the corrected world coordinates, and one with the corrected sublevel coordinates. I imagine sable being able to do this automatically would provide compatibility with every mod that uses vanilla-style entity raycasting. |
|
@iron431 |
|
@Modog500000 My point is the burden of cleaning up the fallout of your mod should not fall on me. This is especially true when it seems sable should be able to intercept these AABB checks. If an AABB has one extent in the plotyard and one outside, it already logs it as such. Sable itself should intercept these lookups, and return the union of a duplicated lookup: one wholly in the plotyard, and one wholly in world space. While i am not familiar with the internals of sable, to my rudimentary understanding, this would alleviate all entity raycasting issues for all mods. Maybe I am wrong, but this feels like a much better solution than "all mod authors must now implement my helper" |
|
After more thinking, this would not single-handedly work; you would also likely need to adapt AABB#clip to also duplicate and transform the start and end vectors if exactly one extent is in a plotyard. |
Contributor License Agreement
Full CLA
Contributors: Please "X" in the following box to acknowledge our CLA
I added compatibility/fixes for Sable sublevels, specifically for Portal Frames and the Touch Dig spell.
For fixing the crash on sublevel teleport I've created a PR on Sable's repo.