404 Commits

Author SHA1 Message Date
Dylan K. Taylor
dd914e0752 Block: move all legacy metadata constants into a dedicated class
this makes it easier to see what is using metadata (and makes it easier to get rid of later).
2019-05-16 16:55:44 +01:00
Dylan K. Taylor
5024de38b8 added more types of stone slab 2019-05-15 18:15:25 +01:00
Dylan K. Taylor
9e72bc91a2 Separate block break-info to a separate dynamic unit 2019-05-10 16:24:59 +01:00
Dylan T
3cd6e12e71
Renaming "Level" -> "World" (#2907)
This has been a pain point for a long time due to the misleading nature of the name "level". It's also confusing when trying to do things like getting the XP level of the player or such, and also does not translate well to other languages.

This transition was already executed on the UI some time ago (language strings) and now it's time for the same change to occur on the API.

This will burn a lot of plugins, but they'll acclimatize. Despite the scary size of this PR, there isn't actually so many changes to make. Most of this came from renaming `Position->getLevel()` to `Position->getWorld()`, or cosmetic changes like changing variable names or doc comments.
2019-05-07 14:47:28 +01:00
Dylan K. Taylor
810bdeb965 Test one extra case for LevelProviderManager 2019-04-26 12:01:12 +01:00
Dylan K. Taylor
c4b4575c74 Refuse to load plugins with ambiguous minAPI versions
closes #2381
2019-04-12 19:51:43 +01:00
Dylan K. Taylor
bf2851f324 Move API checking to its own class so it can be unit-tested 2019-04-12 19:45:41 +01:00
Dylan K. Taylor
2a3e6dcf00 Rename BlockIds -> BlockLegacyIds 2019-03-23 19:46:31 +00:00
Dylan K. Taylor
79ef8e0803 Replace all legacy blockID references with BlockIds:: 2019-03-23 19:44:33 +00:00
Dylan K. Taylor
be0436b2a0 fix consistency check (again) 2019-03-23 19:20:52 +00:00
Dylan K. Taylor
a8fa8572e1 partial sea pickle implementation 2019-03-23 18:11:27 +00:00
Dylan K. Taylor
3c283aa700 fix consistency check (again) 2019-03-23 15:45:39 +00:00
Dylan K. Taylor
9904810f24 BaseInventory: Remove getDefaultSize()
it's possible to want to initialize dynamically-sized inventories which don't have a default size.
2019-03-22 19:21:41 +00:00
Dylan K. Taylor
7f4b76aa86 Implemented blue ice 2019-03-12 19:38:03 +00:00
Dylan K. Taylor
1d4f44d259 Updated BlockFactory consistency check data 2019-03-10 19:53:55 +00:00
Dylan K. Taylor
3079fd0251 Fixed test failures introduced by 6fe366e1ac2ce3127ab434f1cd7816d03e236ac9 2019-03-09 19:05:32 +00:00
Dylan K. Taylor
2ae09f635b Add more output to consistency check script
this helps catching state mapping bugs.
2019-03-09 17:19:17 +00:00
Dylan T
8f1bc5d497
Flatten wall_banner and wall_sign into single blocks (#2798)
This comes with some problems, but the problems are more bearable than the previous code.
2019-03-08 16:37:26 +00:00
Dylan K. Taylor
e31603fc45 Merge branch '3.6' 2019-03-05 11:21:55 +00:00
Dylan K. Taylor
6f5d4d6b80 RegionLoader: fixed handling of invalid chunk coordinates 2019-03-05 10:52:36 +00:00
Dylan K. Taylor
df1ef7fe0c Improve RegionLoader tests 2019-03-05 10:51:44 +00:00
Dylan K. Taylor
158f81b427 Merge branch '3.6' 2019-03-03 11:15:40 +00:00
Dylan K. Taylor
a30b1fb6d5 Inventory: Add failing test case for itemstack NBT duplication 2019-03-03 11:11:33 +00:00
Dylan K. Taylor
1e9e179ec0 Fixed Block consistency check failure since 943906cc6b8a95c62ed7227466de5500eb7548b0 2019-03-01 08:24:25 +00:00
Dylan K. Taylor
9ad0ea85c7 Rename two misleadingly-named functions 2019-02-27 12:59:12 +00:00
Dylan K. Taylor
202aef9846 fix failing tests 2019-02-26 16:35:33 +00:00
Dylan K. Taylor
d7e73705c2 consistency check regen script now emits which states were added/removed 2019-02-26 16:35:14 +00:00
Dylan K. Taylor
6cb263fcca BlockFactory: enforce stricter checks
this can help catch out variant-related bugs.
2019-02-24 17:59:09 +00:00
Dylan K. Taylor
023fecabac Added an annoying consistency check for BlockFactory
This test is intended to enforce that the BlockFactory always has the same blocks in it from one commit to the next. Since there are a lot of changes going on right now around this, it's important that this is checked because bugs can go under the radar when large changes are happening.

The consistency check will need to be regenerated whenever a new block is registered, new states are found or when things are removed.
2019-02-24 13:56:55 +00:00
Dylan K. Taylor
f669677d17 BlockTest: fixed failing test
this is a bad fix, but it doesn't matter a whole lot. The problem stems from furnace not having a valid 0 variant, so things go haywire when the default mapped 0 variant is registered to LIT_FURNACE because the default state is of course unlit.
2019-02-22 18:56:14 +00:00
Dylan K. Taylor
707faef0f7 BlockTest: remove redundant name test
name is mandatory in the constructor now, so this isn't necessary anymore.
2019-02-22 18:54:21 +00:00
Dylan K. Taylor
6ab171d629 Fixed unit tests 2019-02-21 10:41:06 +00:00
Dylan K. Taylor
9354929cad added a whole bunch of tests for enchantment handling 2019-02-20 14:43:57 +00:00
Dylan K. Taylor
15d4201c3a Fixed tests broken by 88c4b836f09278a2d81a14356ff3c29ce465de1d 2019-02-20 11:16:08 +00:00
Dylan K. Taylor
519f6e2668 Merge branch '3.5' 2019-01-26 12:08:21 +00:00
Dylan K. Taylor
c83b7d9b69 Utils: fixed getNiceClosureName() not processing namespaced closures properly 2019-01-26 12:08:07 +00:00
Dylan K. Taylor
10ac322b8f Merge branch 'release/3.5' 2018-12-29 00:04:33 +00:00
Dylan K. Taylor
beb5d72299 RegionLoader: fix off-by-one bug with large chunks, closes #2615 2018-12-29 00:02:54 +00:00
Dylan K. Taylor
3760307a88 Merge branch 'release/3.4' 2018-10-29 12:42:29 +00:00
Dylan K. Taylor
2da2fdd6d4 Added a test for Item->equals() when both items have no NBT 2018-10-29 12:42:03 +00:00
Dylan K. Taylor
9284e53f9e Added failing test case for #2483 2018-10-19 15:29:00 +01:00
Dylan K. Taylor
cdb17b1cee Fixed broken test 2018-10-06 17:39:11 +01:00
Dylan K. Taylor
f787552e97 Remove LevelProvider::getProviderName()
This is problematic because child level providers can forget to override the provider name of their parents, and then override them by error. Instead, they should be used in a mapping fashion to make sure they are unique and not inherited.
Also, the old method did not permit registering multiple aliases for the same provider. This now makes that possible.
2018-10-04 14:56:42 +01:00
Dylan K. Taylor
56d9943b0d Nuke Block->meta, split into variant and state properties, lots of cleanup
This is a major change to the way block metadata is handled within the PM core. This separates variant metadata (which really ought to be part of the ID) from state metadata, and in a couple of cases flattens separate states of blocks together.

The result of this is that invalid variants can be much more easily detected, and additionally state handling is much cleaner since meta is only needed at the serialize layer instead of throughout the code.
2018-09-21 19:28:10 +01:00
Dylan K. Taylor
3a1f0eca7c Merge branch 'release/3.2' 2018-08-19 11:23:04 +01:00
Dylan K. Taylor
9d17c9a09d Merge branch 'release/3.1' into release/3.2 2018-08-19 11:22:58 +01:00
Dylan K. Taylor
3892f2f404 Config: Properly prevent keys getting transformed into bools
The original regex almost completely failed at its objective, because it a) only worked if there was no value for the key, and b) did not prevent all such occurrences getting transformed, while quoting patterns that would not get transformed anyway.
2018-08-19 11:22:36 +01:00
Dylan K. Taylor
9ad30e239a Merge branch 'release/3.2' 2018-08-19 10:37:20 +01:00
Dylan K. Taylor
bfa415e108 Add unit tests for json decoding hack 2018-08-19 10:30:52 +01:00
Dylan K. Taylor
e016693779 Test one extra case for LevelProviderManager 2018-07-26 15:17:16 +01:00