Lightvalues can be overridden in the new engine
CptSpaceToaster opened this issue ยท 2 comments
This is most noticeable with redstone torches and a bright light source (I tested with white glowstone)
I was able to place a redstone torch, and a block of white glowstone so their light would overlap at the edge.
Breaking the white light would kill a bit of the redstone torch's light where they overlapped until a light update was called again.
If the white glowstone light overlapped the redstone torch and the white lamp had a light value that was GREATER than the torch's value at the torch's location, then breaking the glowstone snuffs out the torch completely.
I fixed the first issue, and now edge lights are interacting with each other as expected.
Now, if a bright white light completely envelopes a redstone torch, there's nothing in the lighting engine that marks the redstone torch's location for an update when the white light is destroyed.
As the white light has its light eaten by the lighting engine, no one noticed the insignificant redstone torch, and it was forever destroyed in the lighting engine.
TODO: Find a way to cleanly detect source blocks with a light value (torches, glowstone, etc), and mark them for an update, regardless if they do anything at the time they were processed.
Also TODO: cleanup my nop()
I think this is fixed, I'm going to mess with the latest DynamicLights to be sure: http://coloredlightscore.us.to:8080/job/ColoredLightsCore%20v1.7.10-Dev/20/