Carpets/Leaves/Skylight lantern issues with Starlight on 1.18.2
xFirefalconx opened this issue ยท 4 comments
Technical data:
Minecraft Version 1.18.2
Forge 40.2.0
starlight-1.0.2+forge.546ae87 - lighting
cherryblossomgrotto-0.4.6-v1.18.2 - cherry_blossom_petals
connectedglass-1.1.6-forge-mc1.18 - glass covers
skylightlanterns-1.18.2-1.0.0 - Skylight Lanterns
FruitTrees-1.18.2-forge-5.0.1 - carpets
Oh_The_Biomes_You'll_Go-forge-1.18.2-1.4.7 - Therium Glass (glows)
BiomesOPlenty-1.18.2-16.0.0.109-universal - White Cherry Blossoms
betterfoliage-3.1.4 -
Problem
Hi, I am trying to build a large tree-like building.
I am using lots of half-transparent blocks to cover up Skylight lanterns (that should cast skylight down from anywhere, as the mod works).
Using different kinds of carpets and leaves, I am trying to hide their existance so it doesn't look like a weird thing but like a tree from below.
That works okay-ish in Vanilla (as long as I just use carpets and don't cover up the edges which looks ugly, too), but Starlight... makes the ground turn... to light level 4 or 5.
Dynamic trees die, down there.
As you can see, there are hundreds of lamps up there, but they don't reach the ground :(
I don't know how Starlight derives the light but as I see it being more scattered and less strictly from top-down, can there be any enhancement for large free spaces? I would be okay with a little bit of deminishment in combination with carpets (of any number) and leaves (of any number), to cover up skylight lanterns, but I have them in there because in the first place the large tree blocks the light and I need to cheat my way around it to make things work. Like okay no light level 15, that makes entirely sense, but what about, say level 12? That would still give enough space.
Or something like "Skylight lanterns shine more brightly and get blocked less likely in a line downwards from their position, even if there are transparent blocks (leaves, glass, carpets, cherryblossomgrotto:cherry_blossom_petals (half_layers:1-4, etc.) between them."
They are intentionally placed in large quantities, so it should likely give a sort of boost to them (without cancelling weather or daylight cycle effects, of course).
I'm willing to bet unfortunately that the mod hooks into the Vanilla light engine to add the skylight lantern feature, which means it will not work without a specific hook for Starlight as well as Starlight replaces the Vanilla light engine.
Thank you for the reply. Is there a certain way one would have to address the Starlight light engine? I'm reaching out to the other dev now, in hope of a compatibility fix. If you'd be so kind to provide a bit of information, it might help to find a satisfactory solution - if it's possible that is.
Starlight handles skylight very differently from Vanilla in 1.18.2. The light generation done by the chunk generator will basically set skylight sources from the top of the world downwards until a block with opacity > 0 is hit. The only way I can see this being compatible is if a injection is done to add in sources from those blocks in that method (SkyStarLightEngine#lightChunk).
The edge checks done by the skylight engine assume that the sources are correct in a given chunk, so nothing really does need to be done here.
The block updates done by the sky light engine take the highest block in a given x,z column and do the following for each:
attempt to propagate skylight from the block above, and when propagating from above stops due to hitting a block with opacity > 0 it then will remove skylight sources below until no more skylight sources can be removed. By then, it will simply propagate the changes.
I'm willing to bet unfortunately that the mod hooks into the Vanilla light engine to add the skylight lantern feature, which means it will not work without a specific hook for Starlight as well as Starlight replaces the Vanilla light engine.
Not the mod author and sorry for reviving this old issue, but I'm pretty interested in continuing the Skylight mod in some form. Just wondering if I could a little bit more info on how I could get Starlight to recognize the lantern as a skylight source? I've done a little bit of testing and I've only seen SkyStarLightEngine#lightChunk getting called on the first load of a world. Any info would be greatly appreciated!