Loading screen freezes at 0% with Overworld Two
DragonEggBedrockBreaking opened this issue ยท 15 comments
When using this mod, the 'new-perlin-noise' branch of Overworld Two (cannot be reproduced with the main 1.16.2 branch), and Fabric API (dependency of Overworld Two), then the loading screen freezes at 0% and there is a log spam. This also occurs when using MC-Lighting-Fixes instead of this mod, if that narrows anything down. I also cannot reproduce with Starlight.
System/Minecraft:
- Minecraft 1.16.5
- Fabric Loader 0.11.3
- MultiMC 5 (0.6.12)
- Fabric API 0.32.5
- Windows 10
- AdoptOpenJDK 16 (OpenJ9)
Minecraft log: https://gist.github.com/DragonEggBedrockBreaking/94f2f55f3cc57a7e8b45d55e2cf61a5e
The issue is that https://github.com/Gegy/overworld-two/blob/04b0140e80d28ae3df28f2132601a8766db4ddb9/src/main/java/net/gegy1000/overworldtwo/mixin/MixinProtoChunk.java#L56 uses an @Overwrite
which prevents any other mixin into the same method. This can't be fixed purely on Phosphor's side since Mixins don't support any veto mechanism, so this needs some adjustment from Overworld Two by either converting to non-overwriting mixins, drop that mixin alltogether, or incorporating Phosphor's code (which fixes a pure Vanilla issue and doesn't have to do anything with the rest of Phosphor's code), in which case we could just conditionally disable our mixin.
I don't know though if @Gegy plans to maintain the project any further.
I think DragonEgg already deleted the protochunk mixin and didn't fix the problem.
And as for MC lighting fixes until they update the source code to see if they're also using an overwrite then it'd probably not work yeah? I think both of these projects are either dead or suspended atm so this may not be a relevant problem for much longer.
I didn't really maintain lighting-fixes any further since I ported everything to Phosphor. In fact, Phosphor contains some additional bugfixes which I didn't backport to lighting-fixes.
Anyway, the problem is the same in that case, it also conflicts with the @Overwrite
.
I think DragonEgg already deleted the protochunk mixin and didn't fix the problem.
It did, PR just hasnt been merged yet
Oh, well that was easy then, guess it's just up to the maintainer now, can close the issue I suppose, I had no idea this was already resolved, good to get some context.
I think a bigger question right now is, whats the future of phosphor looking like with starlight on the horizon? Is there a purpose to continue the development of this mod right now or is there something starlight doesn't have that phosphor does?
@Sirbucket That's a discussion for Discord, not for the bugtracker :)
From what I can tell it has something to do with the Protochunk mixin on both phosphor and MC lighting fixes. Starlight does not have a protochunk mixin.
In phosphor I think it's this line
@Inject(
method = "setBlockState(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Z)Lnet/minecraft/block/BlockState;",
at = @at(
value = "INVOKE",
target = "Lnet/minecraft/world/chunk/ChunkSection;setBlockState(IIILnet/minecraft/block/BlockState;)Lnet/minecraft/block/BlockState;"
),
locals = LocalCapture.CAPTURE_FAILHARD
)
private void addLightmap(final BlockPos pos, final BlockState state, final boolean moved, final CallbackInfoReturnable ci, final int x, final int y, final int z, final ChunkSection section) {
if (this.getStatus().isAtLeast(PRE_LIGHT) && ChunkSection.isEmpty(section)) {
this.getLightingProvider().setSectionStatus(pos, false);
}
}
I'm too clueless to understand this but I do understand the error log and what specific piece of code it's referencing (I think)
After rereading might be conflicting code, sorry if I'm commenting a lot, lemme see if I can poke around in overworld 2s protochunk mixin.
Can't find updated source code for mc lighting fixes but I think they're conflicting as well, looking between the two files they seem to be taking a similar approach to their code in MixinProtoChunk so it may be causing issues.