Commit Graph

132 Commits

Author SHA1 Message Date
Asfadavy Aulia A.
14114f6eaf Implement Cactus Flower (#6838) 2025-10-14 14:19:57 +01:00
Asfadavy Aulia A.
06a75759bb Implement Copper variant of existing blocks (#6839) 2025-10-13 15:39:50 +01:00
Dylan K. Taylor
00d6171463 Implement hanging signs 2025-08-24 20:07:59 +01:00
Dylan K. Taylor
ef53676a59 Fix unit tests 2025-08-24 15:38:07 +01:00
Adam
bf33a625c9 Implemented Respawn Anchor (#6646)
PlayerRespawnAnchorUseEvent is also added with options SET_SPAWN and EXPLODE, which allows plugins to customise the outcome of using the anchor in PM, which currently doesn't support dimensions. The event is also cancellable.
2025-05-27 21:57:28 +01:00
ipad54
42094e6768 Implement resin blocks & items (#6571) 2024-12-12 23:21:41 +03:00
ipad54
b341078765 Implement new pale oak blocks (#6570) 2024-12-12 17:53:52 +03:00
Dylan K. Taylor
2ef02a2c5e Upgraded block consistency check to detect tile changes 2024-12-05 19:57:13 +00:00
IvanCraft623
4e6b34f573 Implement new 1.21 copper blocks (#6366)
Added the following new blocks:
- All types of Copper Bulb
- All types of Copper Door
- All types of Copper Trapdoor
- All types of Chiseled Copper
- All types of Copper Grate
2024-09-24 21:25:10 -05:00
IvanCraft623
787afb6b00 Implement all new 1.21 tuff blocks (#6391) 2024-07-23 11:34:46 -05:00
ipad54
2ffc38c835 Implement campfire & soul campfire (#4696) 2024-07-07 15:01:34 -05:00
Dylan K. Taylor
de6a91dabc Rework consistency check to tolerate dynamic type IDs
we don't actually care about the specific values, only whether all the blocks and their states have been correctly registered.
I'd prefer to track all of the state data permutations, but the APIs for that are private, so tracking the number of permutations will have to suffice (this should be good enough to detect bugs anyway, and also takes way less space).
2024-04-01 18:44:01 +01:00
Dylan T
48dcf0e32c Farmland: Remember relative location of nearby water in blockstate data (#6090)
Farmland can end up scanning up to 162 blocks looking for water in the worst case. This is obviously not great for huge farms where there are thousands of blocks of the stuff.

In most farms, the water won't be moved, and nor will the farmland. This means that we can avoid this costly search on random updates.

This PR implements a cache using blockstate data (only possible in PM5) which stores an index mapping to a coordinate offset where water was previously found by this farmland block. This allows the farmland to avoid water searching entirely in most cases.

This is a colossal improvement as compared to scanning the whole 9x2x9 area every time, which, on average, scans about 40 blocks to find water if the water is at the same Y coordinate. In real terms this translates into about a 8x performance improvement for farmland (see timings below).
2023-10-17 16:25:13 +01:00
Dylan K. Taylor
63fcf9879a Block: Use xxhash'd XOR mask to improve state data lower bits distribution
xxhash is generally well known for its hash key properties, so this is a suitable use case.
We XOR the state data with a partial hash of xxh3(typeID), which provides sufficient hash distribution regardless of the size of state data.
The previous method started to break down as the number of bits exceeded the number of significant bits of type ID (about 10 currently).

As well as being better for hash distribution regardless of state data size, this also reduces the load factor of RuntimeBlockRegistry to 1.08 (previously around 1.24), which is a nice bonus.
2023-10-17 15:21:22 +01:00
Dylan K. Taylor
006f78c0a7 Updated block consistency check 2023-09-29 12:57:39 +01:00
Dylan K. Taylor
31cd096b4b Implement torchflower, its seeds and its crop 2023-09-28 17:13:33 +01:00
HimmelKreis4865
d94391af57 Implement Chiseled Bookshelf (#5827) 2023-09-28 15:56:46 +01:00
Dylan K. Taylor
56d7039086 Implemented budding amethyst and amethyst clusters 2023-09-27 17:02:37 +01:00
Dylan K. Taylor
6ec340359b Implemented crimson and warped roots 2023-09-27 13:07:46 +01:00
ipad54
77dfbc4e23 Implemented pink petals (#5940) 2023-08-09 11:33:33 +01:00
ipad54
83d11c7429 Implemented Big & Small dripleaf (#5835) 2023-07-17 16:30:52 +01:00
Dylan K. Taylor
dca752c72f Stem: implement facing property
fixes #5858

technically speaking, the sideways states for non-fully-grown stems shouldn't exist, but they do in Bedrock, and changing this code to split non-fully-grown stems from fully grown ones would likely require BC breaks.
This was the minimum necessary to achieve the desired functionality.
2023-07-13 14:50:26 +01:00
ace
bccda4fe44 Implement Piglin Head (#5839) 2023-06-19 12:07:49 +01:00
Dylan K. Taylor
1533dc4e56 Added cherry leaves 2023-06-10 13:21:21 +01:00
Dylan K. Taylor
0f8e61eda4 Implemented new cherry-wood blocks 2023-06-09 18:04:52 +01:00
IvanCraft623
6d7f44d8fe Implement glow lichen (#5401) 2023-06-04 16:04:08 +01:00
Dylan K. Taylor
24e897f813 Updated blockstate registry consistency check 2023-05-25 16:48:34 +01:00
ipad54
fa719f37d5 Implement Cave Vines & Glow Berries (#5424) 2023-05-08 19:24:23 +01:00
Dylan K. Taylor
a42a67fc50 Update consistency check 2023-03-04 15:53:56 +00:00
ipad54
75f74454c6 Implemented reinforced deepslate (#5553) 2023-02-15 15:15:04 +00:00
Dylan K. Taylor
2f469ef4a0 Added mangrove, azalea and flowering azalea leaves 2023-01-25 18:50:14 +00:00
Dylan K. Taylor
ca1f1bf09f Fixed glowing item frames
due to technical limitations, this requires separating them back into two different block types. However, this isn't too egregious since it's just one flag, and actually simplifies some code.

closes #5478
2023-01-12 21:52:52 +00:00
ipad54
85231215e7 Implemented Sculk (#5489) 2023-01-04 20:10:46 +00:00
ipad54
b3473960b4 Implemented chain (#5454) 2022-12-22 15:22:04 +00:00
ipad54
858d3dce8e Implement Weeping & Twisting vines (#5396) 2022-11-15 15:29:42 +00:00
Dylan K. Taylor
d4f96a155a Support axis rotation of Muddy Mangrove Roots (implemented in 1.19.20) 2022-08-14 18:53:01 +01:00
Dylan K. Taylor
102406ee79 Added froglights 2022-07-23 17:40:38 +01:00
Dylan K. Taylor
4419161a49 Updated consistency check 2022-07-23 17:39:26 +01:00
Dylan K. Taylor
b13f333b2e Added mud and packed mud 2022-07-23 16:40:46 +01:00
Dylan K. Taylor
a7313ed9d9 Added rooted dirt 2022-07-23 16:12:17 +01:00
Dylan K. Taylor
67682cbf27 Added chorus plant and flower 2022-07-20 20:19:36 +01:00
Dylan T
c1acf44337 Implement cauldrons (#5163)
the following things are currently not implemented:

- particle/sound effects when an entity extinguishes itself
- particle/sound effects when mixing different stuff in a cauldron
- powder snow cauldron

both of these things are contingent on #5169, but for the time being, the PR is functionally complete and I want to move on to something else without being stalled by the particle+sound problem (which I haven't yet decided how to solve).
2022-07-20 16:12:58 +01:00
Dylan K. Taylor
fa201b081c Added spore blossoms
I got tired of the flood of warning messages every time someone joined the dev server...
2022-07-19 20:28:12 +01:00
Dylan K. Taylor
21ed5a450f Updated BlockFactory consistency check 2022-07-14 20:42:16 +01:00
Dylan K. Taylor
323d31005f Added glowing item frames 2022-07-14 16:24:20 +01:00
Dylan K. Taylor
eafc23c756 Added candles and cakes with candles 2022-07-13 23:54:41 +01:00
Dylan K. Taylor
260e54e4b1 Skeleton for copper blocks, stairs and slabs 2022-07-10 00:18:35 +01:00
Dylan K. Taylor
5e70ae2066 Added lightning rods 2022-07-09 20:18:22 +01:00
Dylan K. Taylor
ad7528e3f3 Added warped wart blocks, gilded blackstone and crying obsidian 2022-07-09 20:00:10 +01:00
Dylan K. Taylor
8886a023f1 Reduce the size of block_factory_consistency_check.json by improving the storage format
this reduces the size by 65%, but more importantly, doesn't cause several pages of flooding in git diff.
2022-07-06 23:20:13 +01:00