mapeditor / tiled

Flexible level editor
https://www.mapeditor.org/
Other
11.27k stars 1.76k forks source link

JSON export changed behaviour in 1.11.0 #4041

Open smjnab opened 3 months ago

smjnab commented 3 months ago

In 1.11.0 when exporting to JSON all properties are included in the export. Previously only those with a modified value would be included. Not sure if this is intended or by mistake. In my case it creates issues as objects have values now that normally would be undefined and get their default values for specific cases.

An easy example would be that I use the layer tint to set the tint of all objects in that layer, unless an object have a value in the gfx class with a color property. This no longer works as all objects in a layer will have a #ffffff value etc.

json_diff JSON diff for export in 1.11.0 compared to old behaviour.

Expected behavior If intended, a feature request instead to have option in export settings for old behaviour.

Specifications:

dogboydog commented 3 months ago

Can you confirm that in Edit > Preferences > General, you have 'Resolve object types and properties' off?

bjorn commented 3 months ago

This definitely sounds like a side-effect of fixing #3411. Do you actually need types and top-level properties to be resolved but not class members? If not you can disable the export option as @dogboydog suggested.

smjnab commented 3 months ago

Ah, yes the 'Resolve object types and properties' has changed its behaviour. I needed it to be on, as with the old behaviour I would get the top-level stuff.

For example: If turning it off, all predefined objects placed in an object layer now have an empty Class (type in export) field as their value is grey from the default setting.

If this is a difficult fix and I'm the only one that dug this hole for myself, then I can definetly stay with the previous Tiled version. I'm more than 50% into the project so don't need any more features :)

bjorn commented 3 months ago

If this is a difficult fix and I'm the only one that dug this hole for myself, then I can definetly stay with the previous Tiled version. I'm more than 50% into the project so don't need any more features :)

Well, you might not be the only person in this situation. The option to resolve class members could be separated from the existing option, I just hoped this wouldn't be necessary.