Changes since 4.x
- Introduced root
flattenedProperties
node to permit flattening to be represented without usingremappedStates
.- This change reduces the size of many schemas by removing useless bloat. All rules that use this feature were previously using
remappedStates
with a null filter, which generated redundant data in many schemas. - Unlike
remappedStates
, this rule does not exclude the use of other rules for a particular block ID. This means thataddedProperties
,removedProperties
etc should still be applied for an ID even if that ID has aflattenedProperties
entry. (Basically, it should be treated the same as all the others exceptremappedStates
).
- This change reduces the size of many schemas by removing useless bloat. All rules that use this feature were previously using
- Flattening rules can now make use of
TAG_Byte
andTAG_Int
properties as well asTAG_String
.- A new
flattenedPropertyType
may appear in flattening rules with valuebyte
,int
orstring
. If omitted, assumestring
. flattenedValueRemaps
may contain a dummymap_not_list
entry for numeric types. This is a workaround for PHP's handling of objects with numeric properties and should be ignored.- See here and here for examples.
- A new
- Flatten property rules may be used in more places, such as when multiple old values map to the same ID. This is the case with
tallgrass
. Most implementations won't need to be modified to support this.
See pmmp/PocketMine-MP@82c4166 for corresponding upgrader and schema generator changes.