Upgrade Data implementation to allow upgrading Sponge's Schematic Format #2039
Labels
help wanted
priority: low
Low priority
status: accepted
a confirmation that this is either an issue caused by us or something that should be added
system: data
system: entity
type: enhancement
An improvement
type: impl request
An Implementation request (the api is already there)
version: 1.12 (u)
API: 7 (unsupported since May 21st 2021)
version: 1.16 (u)
API: 8
With our Schematic format needing an update to support EntityArchetypes and Minecraft's Data Version to pipe not through DataFixers (which Mojang has not implemented yet on their own schematic format, because it's assumed that structures are still only somewhat used for creating structures in code).
Here's my proposal for changes necessary for Schematics v2 (or 1.1?) which will also affect how implementation is handled:
Alter
Entity#toContainer()
,TileEntity#toContainer()
, andItemStack#toContainer()
to include the "current" Data Version that Minecraft is usingDataFixer
s to upgrade from whatever current versionDataFixer
s need to be processedProperly implement
setRawData
to treat incoming data as if being read from NBTImprove DataView API We need to better the process and usability of
DataView
and throw exceptions when a passed in object cannot be serialized to primitive supported typesImplement the proper support for using Keys and DataManipulators based on NBT.
Provide a data upgrader for old schematics to new schematics. Treat old content versions as Sponge content versions due to current implementation of schematics.
This also lends itself to needing the Data layout documented for Sponge's implementation on the docs, likely as an advanced section, pinging @Inscrutable for input on that. Likewise, we need to update our Schematic specification.
The text was updated successfully, but these errors were encountered: