pmmp / bedrockblockupgradeschema Goto Github PK
View Code? Open in Web Editor NEW(Mostly) auto-generated schemas for upgrading blockstates found in older Minecraft: Bedrock worlds
License: Creative Commons Zero v1.0 Universal
(Mostly) auto-generated schemas for upgrading blockstates found in older Minecraft: Bedrock worlds
License: Creative Commons Zero v1.0 Universal
Currently, it's not possible to upgrade a world from 1.12 or earlier to any version lower than 1.18.10, because the id/meta mappings we have produce blockstates for 1.18.10.
1.8 id/meta -> 1.9 blockstate mappings are needed for upgrading saved items from <= 1.8 to 1.9 or later, as 1.9 started using blockstate NBT for stored blockitems.
1.12 id/meta -> 1.13 blockstate mappings are needed for upgrading blocks from <= 1.12 to 1.13 or later, as 1.13 started using blockstate NBT for blocks.
This needs to be verified by GitHub Actions.
When running the minecraft:bell through all schemas starting from the first the resulting block state is invalid because it is missing the direction property. The attachment and toggle_bit were added properly.
These three state mappings are all applying the exact same blockstate alteration (removing the old_log_type
field and changing the ID according to the value of old_log_type
. However, because the oldState
must exactly match the input blockstate, it has to also generate the same mapping for every value of pillar_axis
, leading to a bunch of repeated information.
This can be represented more efficiently by allowing oldState
to act as a filter rather than an exact match. I'm not sure on the exact logistics of generating such data from the mapping tables generated by bds-mod-mapping, but I'm sure it can be done.
facing_direction_00
is missing index for old value 5
Many blocks have been getting flattened in recent versions. This results in a lot of boilerplate JSON being generated, which is fine, but not the most readable, e.g.
Things like this could be more efficiently represented by something like:
"minecraft:concrete": {
"prefix": "minecraft:",
"flattenedProperty": "color",
"postfix": "_concrete",
}
reducing the amount of data needed to represent the change significantly, and vastly improving readability.
Hey please add an legacy block state upgrader which upgrades blocks with the following data to the latest block state format.
The block state updater of CloudburstMC (legacy_block_data_map.json) already has this feature implemented, but im not sure if it covers all data values and its not licensed under the public domain.
So if I give the nbt:
{
"name": "minecraft:stone",
"val": 1
}
it should return
{
"name": "minecraft:stone",
"states": {
"stone_type": "granite"
},
"version": 17959425
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.