New lighting system is needed to handle updating literally 14k+ tiles whenever the sun moves. The straight port seems to have had no adverse effects from what I could see. Don't know if it's more performant but it doesn't seem to be less.
I didn't expect the latter would be needed for the former.
* No changes to lighting logic at all, it still processes sources, corners, and overlays in that order.
* Also optimized the initial creation of lighting overlays, and made it include CHECK_TICKs
* Removed the statistics gathering, at least for now.
* lighting_overlay objects belong to a turf. Turfs never move. Neither should the lighting_overlay, even of an overzealous shuttle controller thinks they should.
* lighting_overlay objects belong to a turf. Turfs never move. Neither should the lighting_overlay, even of an overzealous shuttle controller thinks they should.
The previous client-side optimization made lighting overlays go fully
opaque when it was dark, making it so species darksight didn't let you see
anything. This fixes that by making a dark_soft icon state that has
opacity matching the LIGHTING_SOFT_THRESHOLD.
Light sources no longer track applied lumcounts in an assocative list,
using shared-indices with the applied turf list instead.
Signed-off-by: Mloc <colmohici@gmail.com>
Removes lighting transitions- they don't work with the new system.
Greyscale overlays now use BLEND_OVERLAY instead of BLEND_MULTIPLY for
better client performance.
Light overlays in total darkness are now made invisible.
Signed-off-by: Mloc <colmohici@gmail.com>