diff --git a/init.lua b/init.lua index fcfb958..263a58a 100644 --- a/init.lua +++ b/init.lua @@ -1761,6 +1761,21 @@ local function serialize_map_v3(map) if layer.material ~= nil then layer_out.material = layer.material end if layer.vertices ~= nil then layer_out.vertices = layer.vertices end if layer.overrides ~= nil then layer_out.overrides = layer.overrides end + -- 0.5.7: emit cells_material only when at least one entry is + -- non-zero. This preserves byte-identical save output for + -- pre-0.5.7-content maps. + if layer.cells_material then + local any_set = false + for i = 1, #layer.cells_material do + if layer.cells_material[i] and layer.cells_material[i] ~= 0 then + any_set = true + break + end + end + if any_set then + layer_out.cells_material = layer.cells_material + end + end out.layers[layer_name] = layer_out end end