Commit Graph

107 Commits

Author SHA1 Message Date
1533fcf8f6 Separate block legacy data upgrading from block deserialization
this commit provides a central place where all block data can go to be upgraded to the latest version (currently 1.19), irrespective of how old it is.

Previously I had issues during debugging, because it wasn't possible to just upgrade a block without deserializing it into a Block object, which isn't currently supported for many blocks.
This commit solves that problem by separating the upgrading from the deserialization.
2022-06-23 16:45:02 +01:00
301b0aba82 Allow Item (de)serializer to accept dynamic BlockState(De)Serializer 2022-06-08 16:22:35 +01:00
4aa1a3da8b Moving more stuff around 2022-06-08 15:57:02 +01:00
680615eed8 Namespace rename 2022-06-08 15:54:45 +01:00
831738b29c Added BedrockItemUpgradeSchema dependency 2022-06-08 14:53:58 +01:00
e956cfed1c Branch-specific 1.19.0 stuff 2022-06-07 20:14:00 +01:00
cf7d42b3ea Fix CS according to new rules 2022-06-07 20:02:24 +01:00
1ff69136a3 Merge branch 'next-major' into modern-world-support 2022-06-07 20:01:40 +01:00
86e7ae341f ItemSerializer: Prohibit serializing recipe input wildcards 2022-06-06 20:48:44 +01:00
38d6284671 Use PHP-CS-Fixer to enforce file header presence 2022-06-04 17:34:49 +01:00
776b8d2f95 Harden BlockStateDeserializer further against bugs 2022-05-25 21:56:17 +01:00
81b51c0791 fixing special block serialization 2022-05-24 21:29:20 +01:00
d8dc32ec4b PhpStorm sucks
I'm very sure I enabled 'Ensure every file ends with a line break' ...
2022-05-24 15:22:23 +01:00
81eafde074 Hacks for banners and coral fans 2022-05-24 15:07:38 +01:00
5ce5e1d2b0 Throw proper exceptions for serialize/deserialize failures
this allows them to be caught and properly reported in tests.
2022-05-24 14:46:18 +01:00
901a51a9dd Added serialize/deserialize support for stonecutter 2022-05-24 14:31:40 +01:00
68491be847 Merge branch 'next-major' into modern-world-support 2022-05-20 11:21:35 +01:00
343a12626e Modernize private property declarations in src/data 2022-05-17 20:35:59 +01:00
2f2ffe0aa4 fix phpstan 2022-05-13 21:03:49 +01:00
a75bc5d537 Mojang cannot be relied on ... 2022-05-13 20:50:38 +01:00
e27f80fd85 Remove unused code 2022-05-12 21:06:33 +01:00
d10d660a4d fix PHPStan 2022-05-12 16:37:50 +01:00
107b0e1728 CS again, kill me 2022-05-12 16:35:12 +01:00
cb97f37d13 First look at modern-spec serializer/deserializer for items
this is not yet used by anything
2022-05-12 16:26:38 +01:00
6c92e73b46 Switch to modernized BedrockData 2022-05-12 15:30:35 +01:00
43e61336cf Support 1.18.30 worlds 2022-04-20 14:58:32 +01:00
4c433fd75b Remap invalid metadata values to zero
this is a bit less sophisticated than the way we do it with BlockFactory, but this shouldn't usually have any relevance anyway - it's only used for correcting bogus states.
2022-03-28 18:13:14 +01:00
8bf1fb7b1d Merge branch 'next-minor' into modern-world-support 2022-03-24 12:50:45 +00:00
f25beab6cb Use constants for compound meta values 2022-03-23 15:58:27 +00:00
e98cf39b47 cs 2022-02-11 21:18:56 +00:00
bc46e148df Updated to support new tag storage format 2022-02-11 21:13:28 +00:00
905eee3198 BlockStateUpgrader: do not apply backwards-incompatible schemas to blockstates already on the correct version
this notably led to corruption of glow_lichen and sculk_vein in 1.18.10.
2022-02-10 20:51:31 +00:00
8a11ed70e3 improve reusability 2022-02-10 19:38:50 +00:00
db9d769db6 fix CS #2 2022-02-10 13:49:40 +00:00
0a0383d9bd BlockStateUpgradeSchema: added isEmpty() 2022-02-10 13:03:29 +00:00
1b3e50d0a3 Implement support for remappedPropertyValuesIndex schema format 2022-02-10 00:00:01 +00:00
dc5ddf1c1b make the build pass 2022-02-09 20:18:38 +00:00
03cf635adc Removed pointless array cast 2022-02-09 20:17:28 +00:00
0ce3f763db reEEEEEEEEEEEEEEEEE 2022-02-09 20:13:59 +00:00
0226f5466c Added support for upgrading states via remap (needed for end rods and all-sided-logs) 2022-02-09 20:05:20 +00:00
166ffe430a Updated for 1.18.10 2022-02-08 22:56:04 +00:00
e58b3ba46c First look at loading 1.13+ worlds 2022-02-07 03:06:59 +00:00
9e03136861 fix CS 2022-02-07 02:43:57 +00:00
1b48603d07 another vague commit restructuring stuff 2022-02-07 02:41:50 +00:00
d55eed803d make build green 2022-02-05 21:12:11 +00:00
8f5813b003 Move PM core-specific serializer/deserializer stuff to data/bedrock/blockstate/convert 2022-02-04 17:23:51 +00:00
337aab4f0d Use more class aliases to reduce code width 2022-02-04 16:47:54 +00:00
1155f91574 BlockStateSerializer: separate serializer registration from constructor 2022-02-04 16:41:45 +00:00
9fbb2ef46a remove SORT_ASC 2022-02-04 00:27:09 +00:00
4d88f8f7f4 shut 2022-02-04 00:24:57 +00:00