immortius / chunkbychunk

Minecraft mod in which you unlock the world chunk by chunk
Other
17 stars 5 forks source link

Incompatility with some teleports: Corail Tombstone and CBC on 1.18.2 #89

Closed xFirefalconx closed 5 months ago

xFirefalconx commented 9 months ago

Hiya! I've been watching this video on YouTube about Corail Tombstone, put a timestamp on the relevant section https://youtu.be/FLDBp0vF4I0?t=1284

I haven't tried the mods together, but will it potentially wreck the dimensions because the items are just copied over? Wonder what's the case, might go and just test it once I finished understanding the mod (CT)

xFirefalconx commented 9 months ago

Update, as I feared, the tablets teleport you to the wrong dimension. Not all, as one brought me to an ocean on the CBC map. Maybe it depends on which tablet it is, I tried to investigate but it doesn't show a concise pattern. It also teleports you to an unpetrified nether. Any idea what to do about this?

xFirefalconx commented 5 months ago

Had more time to do testing. Corail tombstone tablets show which dimension they teleport you to. In most cases that is minecraft:overworld which seems to be fine as far as I could test, however in some cases it is not.

Cases in which the teleport was wrong: All known cases have treasure teleports, as in those with a chest symbol. They usually teleport you to a dungeon, or a bastion, or a stronghold, you get the idea.

Their dimension targets are: minecraft:overworld_snow_gen chunkbychunk:netherchunkgeneration

Now, I tried to solve this issue by using two (three) kubejs mods and detect whether being teleported to those dimensions, block and redirect the teleports to minecraft:overworld when teleporting to chunkbychunk:skychunkgeneration or minecraft:overworld_snow_gen. That failed, for unknown reasons with kubejs and dimension skills. I also don't know what is the best solution for the nether teleports as when teleporting to the nether you spawn over plain lava without foothold at all. My best idea is to stop the teleportation in that case, when detected. Is there anything you can do about this or not? This all only applies to petrified worlds as it's designed with vanilla behavior of dimensions in mind. I assume it's a difficult situation if you have to somehow redirect teleports and detecting them too (the trigger is charged item usage, can you somehow intervene here at all?)

Hope you got some input, because this really breaks my pack the way it is right now.

xFirefalconx commented 5 months ago

Ways to reproduce this behavior:

  1. Install both Corail Tombstone and Chunk by Chunk, start the game.
  2. Create a petrified world in creative mode
  3. in-game, grab a bunch of forgotten tablets in your inventory and place a lot of tombstones on the ground in the meantime. They change to a specific teleport after a bit.
  4. When you got a tablet which holds above mentioned false targets for dimensions, go to the grave stones and right click on one where lightning already struck and a purple ghost is dancing around to charge it
  5. Right click and hold to teleport
  6. If you are seeing the "loading" screen and end up in an other dimension, you have the same issue as I.

Expected behavior:

  1. Overworld teleports with those tablets always end up in the petrified world when petrification is true.
  2. Nether teleports get cancelled if you are in the petrified overworld. Maybe with a message. "This tablet holds more power than you can handle. Keep its locations for later and use your feet instead."
immortius commented 5 months ago

This is most likely a corail tombstone bug rather than a CBC bug, likely because it is selecting a random dimension and should have config to restrict possible dimensions. It does have a config option "teleport_dim" which can be set to false to prevent teleportation to other dimensions, maybe that would work for your purposes?

immortius commented 5 months ago

Looks like teleport_dim option might not work, but lost_tablet_search_outside_world = false does

xFirefalconx commented 5 months ago

Issue resolved thank you as well for your contributions :)