immortius / chunkbychunk

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

1.18.2 Signpost is empty - couldn't find nearby petrified village? #33

Closed xFirefalconx closed 1 year ago

xFirefalconx commented 1 year ago

grafik

I believe this is unintentional. Usually, they know where villages are but with everything sealed, maybe they cannot detect villages? I don't know if this is vanilla or if these signposts are from a mod, unfortunately, but in prior versions they would point in the direction where there is a village. I don't know which info they derive their data from, but do you think there is a possibility to let the game know the direction a village is based on such a signpost, even if it's sealed away? We don't know where to go, how far to go or how many villages there might be, based on this "bug".

Can this block be reset/reloaded if we put a new chunk loader in the loaded chunk?

immortius commented 1 year ago

When you say prior versions, do you mean prior versions of Chunk By Chunk? Is there a modpack you are using?

The chunk spawner is set up not to respawn chunks that have already been spawned/loaded - mostly to prevent duplicating resources.

I believe these signs come from a mod, although I'm not sure which one - and I'm not sure how they have been implemented. They should work if they're using the same system as the locate command - structure and feature info is being generated, just not the structures themselves. Also the generation is happening in a second, full dimension with full information. But possibly the mod is using a different mechanism that relies on the village actually being spawned, in which case maybe the sign will populate after the village is created (not useful for you of course, but would be interesting to test).

xFirefalconx commented 1 year ago

Prior versions = prior minecraft versions with the signpost(supplementaries) mod, but no chunk by chunk mod. (1.16.5 to be exact).

/locate #minecraft:village did work, I found a village. I spawned the village.

This led to two problems:

  1. There are zero villagers, no idea why,
  2. The signpost doesn't work and find the village, despite the command finding it.

/setblock 35 74 -1117 supplementaries:block_generator was supposed to reload the signpost, but it doesn't show anything like a location, the village is about 600 blocks away.

The supplementaries dev told me the following: "well then I assume what whatever that mod does it would need direct integration to make it work as it likely also alters the locate command hence why it works"

Do you alter the locate command?

The weird thing is I respawned that block and it still won't recognize the village. Should I add a list of my mods to narrow down any possible cause? You both kind of tell me the same thing here, if that'd be the case either there is a huge bug nobody could anticipate (like for example petrified blocks blocking the block from locating the target... which makes no sense to me), or a third mod is the culprit. If it were the case, then the mods would have no issues by working together 🤔

xFirefalconx commented 1 year ago

he also told me: "I'm not using the locate command directly. rather I copied its vanilla implementation, optimized it and run it on a different thread for performance they generate after worldgen as worldgen cannot know about the worlditself while its generation obviously. they dont need the village to be spawned. unfortunately idk more about woldgen than thus but I'd just say disable the signs from spawning to begin with"

I asked him to get in touch with you, maybe he can? I am not sure right now.

xFirefalconx commented 1 year ago

"Supplementaries" Author asks whether you do have a Discord (server) to get in touch with. Alternatively, this is the Discord link for their server, the place where they do the support handling. https://discord.gg/ebVbXdN5Un

I hope this makes fixing this issue more likely. I'm really fighting for this to happen, believe me.

MehVahdJukaar commented 1 year ago

henlo so to clarify I use a modify version of locate command which runs after worldgen just like locate doesnt need the structure to be loaded just checks possible spawning location to see if a structure would spawn there. Any idea how I can make it work with your mod?

immortius commented 1 year ago

Hello!

I'll have a look when I can and see if I can work out why our mods aren't working together (now I know what mod is involved). I'll assume the issue is on my end until proven otherwise... It might be something to do with how the world is generated in a separate dimension and then cloned across, or something to do with how I'm wrapping the chunk generator for the overworld. In the past my changes have broken the locate command (as I wasn't generating structure references) but that was fixed - maybe there is something similar I've missed.

MehVahdJukaar commented 1 year ago

seems weird that the locate command works fine as what I'm doing is equivalent of that just tweaked and optimized a bit to grab stuff with more precision and in multiple number. Also happens on another thread. I dont think any of thise would affect this tho

xFirefalconx commented 1 year ago

Additional info you might need:

This is the full list of mods I'm currently using in my modpack, my Forge version is 40.1.74.

FastLeafDecay-28.jar guardvillagers-1.18.2.1.4.3.jar EnderBags-1.18.1-8.0.0.jar InfoDataPack-1.18.1-2.0.2.8.jar JEIEnchantmentInfo-1.17.1-2.0.0.jar journeymap-1.18.2-5.8.5-forge.jar jei-1.18.2-9.7.1.255.jar JustEnoughResources-1.18.2-0.14.1.171.jar modnametooltip-1.18.1-1.18.0.jar moreoverlays-1.20.9-mc1.18.2.jar MouseTweaks-forge-mc1.18-2.21.jar NaturesCompass-1.18.2-1.9.7-forge.jar passiveendermen_1.18.2-3.0.jar Quark-3.2-358.jar AutoRegLib-1.7-53.jar Regrowth-1.18.2-1.40.0.31.jar skylightlanterns-1.18.2-1.0.0.jar selene-1.18.2-1.17.9.jar tumbleweed-1.18-0.4.12.jar VendingMachine-1.18.2-1.0.0.7.jar villagebellrecipe_1.18.2-1.4.jar village-employment-1.18.2-1.5.1.jar VillagersRespawn-1.18.1-1.39.0.5.jar waystones-forge-1.18.2-10.1.0.jar balm-3.2.0+0.jar sophisticatedbackpacks-1.18.2-3.18.32.736.jar sophisticatedcore-1.18.2-0.5.26.165.jar spells_and_shields-1.18.2-1.9.2.jar Unbreakable Enchantment 1.0.0-1.18.2.jar player-animation-lib-forge-0.4.0+1.18.jar polymorph-forge-1.18.2-0.46.jar mcw-windows-2.1.0forge-1.18.2.jar ftbbackups2-forge-1.18.2-1.0.17.jar polylib-forge-1801.0.2-build.13.jar geckolib-forge-1.18-3.0.56.jar ChunkByChunk-forge-1.18.2-1.10.1.jar BetterCompatibilityChecker-1.1.17-build.40+mc1.18.2.jar BambooEverything-forge-1.3.5-build.36+mc1.18.2.jar kleeslabs-forge-1.18.2-11.1.1.jar collective-1.18.2-5.16.jar ExNihiloSequentia-1.18.2-20221113-044349.jar DynamicTrees-1.18.2-0.11.0-Beta4.jar mcw-doors-1.0.7-mc1.18.2.jar Jade-1.18.2-forge-5.2.6.jar weaponleveling-1.18.2-1.4.3.jar biomespawnpoint_1.18.2-1.5.jar citydecor-1.1.1.jar simplecobblestonegenerator-1.18.2.jar.disabled appleskin-forge-mc1.18.2-2.4.1.jar Patchouli-1.18.2-71.1.jar largemeals-1.18.2-2.0.jar honeyexpansion-1.1.1.jar FarmersRespite-1.18.2-1.3.0.jar Crated_Vanilla_Foods_1.1-1.18.2.jar MoreMobGriefingOptions-1.18.2-2.0.1.jar SoL-Carrot-1.18.1-1.12.0.jar forgivingvoid-forge-1.18.1-6.0.1.jar Villagers_Sell_Animals_1.1.3_Forge_1.18.2.jar MobCatcher-Forge-1.18.2-1.1.6.jar ItemLocks-Forge-1.18.2-1.3.jar GameMenuModOption-1.18-Forge-1.14.2.jar villagespawnpoint_1.18.2-2.9.jar SBM-Jukebox-1.18-1.0.4.jar advancement(r).jar deepslate_dubble003.jar hedgehog-1.18.2-1.1.0.jar snowyspirit-1.18.2-1.3.2.jar bewitchmentplus-1.18.2-14.jar Pehkui-3.6.0+1.18.2-forge.jar overweightfarming-1.18.2-1.6.0-forge.jar croptopia-chocolaterie-1.1.jar dtcroptopia-1.0.0.jar.disabled Croptopia-1.18.2-FORGE-2.1.0.jar DynamicSurroundings-5.0.0.4.jar Oh_The_Biomes_You'll_Go-forge-1.18.2-1.4.7.jar torchmaster-18.1.0.jar cookingforblockheads-forge-1.18.2-12.2.0.jar beehive-tooltips-forge-1.4.2.jar BeeFix-1.18-1.0.6.jar XPFromHarvest-1.18.2-1.2.2.jar supplementaries-1.18.2-1.5.13.jar xptome-1.18.2-2.1.7.jar swingthroughgrass-1.18.2-1.9.1.jar so_many_enchants-1.7.0 (1.18).jar SnowRealMagic-1.18.2-forge-4.2.3.jar smoothboot(reloaded)-mc1.18.2-0.0.1.jar 3dskinlayers-forge-1.5.2-mc1.18.2.jar Placebo-1.18.2-6.6.6.jar mcw-roofs-2.2.1-mc1.18.2-forge.jar keepmysoiltilled_1.18.2-1.6.jar mcw-bridges-2.0.5-mc1.18.2forge.jar DynamicTreesPlus-1.18.2-0.1.0-Beta1.jar DynamicTreesBOP-1.18.2-3.0.0-Beta1.jar ChinjufuMod[1.18.2]6.2.4.jar configured-2.0.0-1.18.2.jar betterspawnercontrol_1.18.2-3.0.jar betterfoliage-3.1.4.jar architectury-4.10.86-forge.jar Chimes-1.1.2-1.18.2.jar anviltooltipmod-MC1.18.2-1.0.0.jar merenc-forge-1.18.x-v1.9.jar FarmersDelight-1.18.2-1.2.0.jar blueprint-1.18.2-5.5.0.jar cloth-config-6.4.90-forge.jar Disenchanting-forge-1.18.2-2.1.0.jar EnchantmentDescriptions-Forge-1.18.2-10.0.9.jar Kiwi-1.18.2-forge-6.1.3.jar Level-One-MC1.18.2-v1.5.0.jar TerraBlender-forge-1.18.2-1.2.0.126.jar Better Fishing Rods 1.0.0 - 1.18.2.jar Book Fishing 1.0.0 - 1.18.2.jar AkashicTome-1.5-20.jar autoplant-1.18.2-1.0.0.jar BadMobs-1.18.2-13.01.jar bamboo2-1.18.1_0.4.jar Beekeeper-1.18.2-1.0.0.4.jar benched-1.2.1-mc1.18.jar supermartijn642corelib-1.0.19-forge-mc1.18.jar supermartijn642configlib-1.1.6-forge-mc1.18.jar better-loading-screen-1.4.0.jar bettermending-forge-1.2.1+1.18.2.jar bettersafebed-1.18-forge-a.jar BetterThirdPerson-Forge-1.18.2-1.8.1.jar BorderlessWindow-1.18-1.4.0.jar carryon-1.18.2-1.17.0.8.jar Clumps-forge-1.18.2-8.0.0+15.jar Controlling-forge-1.18.2-9.0+22.jar creeperconfetti-3.11.jar DungeonCrawl-1.18.2-2.3.10.jar BiomesOPlenty-1.18.2-16.0.0.109-universal.jar Bookshelf-Forge-1.18.2-13.2.50.jar wooltostring-forge-1.18.2-1.0.1.jar exoticbirds-1.18.2-1.8.0.jar ExtendedItemInformation-4.0.2-1.18.2.jar farmingforblockheads-forge-1.18.2-10.0.2.jar

World seed: -3782703092858454915 /setblock 35 74 -1117 supplementaries:block_generator Above a coordinate of a currently broken signpost, the village is ~600 blocks away, facing southwest, there is a second signpost more south at the aspen forest region.

immortius commented 1 year ago

I see what is happening, it is one of those tricky Minecraft modding moments. Supplementaries' StructureLocator uses a private method of ChunkGenerator called getPlacementsForFeature. In ChunkByChunk this won't find anything because SkyChunkGenerator delegates world generation to a parent generator - the placements for features are in that parent rather than the SkyChunkGenerator itself. I had addressed this for the only method calling getPlacementsForFeature - findNearestMapFeature - which is why the locate method works. But since the StructureLocator needs multiple villages Supplementaries has access widened or otherwise is directly using getPlacementsForFeature.

Fix is on my end to widen and override getPlacementsForFeatures.

MehVahdJukaar commented 1 year ago

Oh i see