- if (new_type.luminosity > 0) {
- if (GetLight(index) < new_type.luminosity) {
- SetLight(index, new_type.luminosity);
- light_queue.emplace(this, ToPos(index));
- work_light();
- }
- } else if (new_type.block_light && GetLight(index) != 0) {
+ if (new_type.luminosity > old_type.luminosity) {
+ // light added
+ SetLight(index, new_type.luminosity);
+ light_queue.emplace(this, ToPos(index));
+ work_light();
+ } else if (new_type.luminosity < old_type.luminosity) {
+ // light removed
+ dark_queue.emplace(this, ToPos(index));