-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Voxel Manips fail on mapchunks with caves and light glitches #13712
Comments
Where's the code that does this? |
@sfan5 does what? The mod is here: |
These patches smaller than one mapchunk should not exist because I make sure to use whole mapchunks.
Then I keep chunks with hashed pos_min of each chunk:
And this is how I get pos_min and pos_max for Voxel Manips:
|
the third image looks like the issue described in #9357, not related to a river or cave. |
I have I don't know how the C++ backend works, but if the same code VMs use is reused for map generation then I guess the bug is there. |
#9357 doesn't actually require more than one mapgen thread. your-land tried to mitigate it by using only 1 mapgen thread and the problem still happens, though less often. see https://gitea.your-land.de/your-land/bugtracker/issues/850 for an extensive list of that issue on that server. |
My wild guess is that somehow cave gen runs into a race condition with my VM. Another one: |
Is this what you're talking about? Otherwise I wasn't able to find anything (MT 5.7). Running |
Minetest version
OS / Hardware
Operating system: Guix System x86_64, commit: 676508ac858928a2ec66f18ccfae17c9cec3dda2
CPU: AMD Ryzen 7 2700
Summary
I created a soil replacer based on Voxel Manip that replace whole mapchunks, yet it sometimes fails for areas smaller than one chunk. The failed areas are most often made of mapblocks and are often in places where there's a cave, river bed or glitched light. The bug is not reproducible for a given mapchunk - rerunning the VM often fixes the issue.
These VMs are basic VMs, they run after mapgen.
Steps to reproduce
Download Exile: https://codeberg.org/Mantar/Exile.git
Switch branch to "v4". Start a new creative world, type "/grantme all".
Switch season to winter by running "/set_day 63", fly around and witness the broken chunks.
You can switch back to spring by typing "/set_day 13" then again to winter by "/set_day 63" and the glitch should get fixed.
The code for my map updater is in mods/mapchunk_shepherd.
Example photos
Here you can see the stripe of soil that failed to be replaced. At the top there's a light glitch.
The VM doesn't save light so it shouldn't matter. As you can see it is 16 nodes wide.
Here a single mapblock failed and it even has a light glitch inside:
Here we got a strange shape that appears to be a continuation of the river/cave:
Here another one, this time near a cave.
The text was updated successfully, but these errors were encountered: