Dylan K. Taylor
7826e0a11e
Merge branch 'stable' into minor-next
2023-08-09 16:14:05 +01:00
Dylan K. Taylor
447f061566
Use Event::hasHandlers() for a few more hot events
2023-08-09 15:46:20 +01:00
Dylan K. Taylor
78f5fbddf3
Merge branch 'legacy/pm4' into stable
2023-08-09 13:58:14 +01:00
Hugo_
a5d8ef7a6c
Add FarmlandHydrationChangeEvent ( #5916 )
2023-08-09 12:33:25 +01:00
Dylan K. Taylor
735d9a5bf4
CandleTrait: allow candle to be lit by fire charges
2023-08-09 12:04:02 +01:00
Dylan K. Taylor
f4a06605b1
Cake: only accept candle when no slices have been taken
...
otherwise, cake slices can be regenerated using candle
2023-08-09 11:42:08 +01:00
ipad54
77dfbc4e23
Implemented pink petals ( #5940 )
2023-08-09 11:33:33 +01:00
Dylan K. Taylor
9f14901820
Merge branch 'stable' into minor-next
2023-08-08 17:48:12 +01:00
ipad54
35a28300f6
Podzol should be affected by silk touch ( #5969 )
2023-08-07 11:47:29 +01:00
Dylan K. Taylor
6ac45526f9
Use new features in pocketmine/math 1.0.0
2023-08-03 16:46:16 +01:00
Dylan K. Taylor
d88c3d8ced
Fixed coral block killing itself when calling getDropsForCompatibleTool()
...
this might be called by plugins without actually breaking the block, in which case the block will glitch.
2023-08-02 13:43:36 +01:00
Dylan K. Taylor
82f87cc2da
Reduce repeated block-change-event related code
...
the new helper code reveals even more repetition, but this is at least consistent now.
2023-08-02 13:40:12 +01:00
Dylan K. Taylor
bb0e648276
Fixed BlockDeathEvent usages showing an oldState which is already dead
2023-08-02 13:36:54 +01:00
Dylan K. Taylor
0a90a5928a
Added TallGrassTrait, remove weirdly specific logic from FortuneDropHelper
...
this needs to be dealt with before release otherwise we'll be stuck with FortuneDropHelper::grass()
this is the obvious solution and should have been done some time ago - stuff like flammability was already a problem for double tall grass anyway
2023-08-01 12:33:36 +01:00
dohwi
4eb9dacd3c
Remove unnecessary HorizontalFacingTrait ( #5930 )
...
FacingOppositePlacingPlayerTrait already includes HorizontalFacingTrait, so we don't need to include it twice.
2023-07-24 12:16:56 +01:00
Dylan K. Taylor
3afe3b7f44
Merge branch 'stable' into minor-next
2023-07-24 12:02:24 +01:00
Dylan K. Taylor
2779f92828
Bell: clean up code
2023-07-21 15:29:33 +01:00
Dylan K. Taylor
5899f2fc1d
Block: introduce new methods to reduce support type boilerplate checks
...
this switches from a 'can be supported by' concept to a 'can stay at this position' paradigm, which requires way less boilerplate code.
there may be further improvements we can make from here, such as adding traits, but this is a good first step.
2023-07-21 15:02:25 +01:00
Dylan K. Taylor
9ef835c82d
Merge remote-tracking branch 'origin/legacy/pm4' into stable
2023-07-21 11:07:32 +01:00
Dylan K. Taylor
4bdd6410db
Fire: fixed support requirements
...
closes #5599
2023-07-20 17:00:32 +01:00
Dylan K. Taylor
6ea7fd7d6b
ShulkerBox: do not offer support for other blocks
2023-07-20 16:36:25 +01:00
IvanCraft623
4517948297
FrostedIce: Remove non-Bedrock melting behaviour ( #5486 )
2023-07-19 17:12:05 +01:00
Dylan K. Taylor
537721fe7d
Replace Closure::fromCallable() usages with first-class callables
...
PHP 8.1 <3
2023-07-19 13:34:42 +01:00
ipad54
e23806d417
Stem: fixed supporting block check issue ( #5907 )
...
This bug was introduced in dca752c72f
2023-07-18 12:31:20 +01:00
ipad54
83d11c7429
Implemented Big & Small dripleaf ( #5835 )
2023-07-17 16:30:52 +01:00
ShockedPlot7560
fb6a7d279f
Implement fortune enchantment ( #5757 )
2023-07-17 11:13:45 +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
Dylan K. Taylor
2654fb294b
Merge branch 'stable' into minor-next
2023-06-26 16:08:22 +01:00
Dylan K. Taylor
c06763c59b
Fixed crash in CakeWithCandle when block-picking
2023-06-23 12:55:47 +01:00
Dylan K. Taylor
6f82942c64
Block: document onInteract() clickVector
2023-06-21 16:57:39 +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
Dylan K. Taylor
57cbc25080
Merge remote-tracking branch 'origin/stable' into minor-next
2023-06-04 16:10:07 +01:00
IvanCraft623
6d7f44d8fe
Implement glow lichen ( #5401 )
2023-06-04 16:04:08 +01:00
Dylan K. Taylor
8d7f8ff3f5
Merge branch 'legacy/pm4' into stable
2023-06-03 21:23:00 +01:00
Dylan K. Taylor
c715efb18e
Jukebox: fix music not stopping when destroyed by explosion
...
closes #5794
2023-06-03 21:22:26 +01:00
IvanCraft623
4e031e7b3e
Always drop spore blossom item when it is broken ( #5796 )
2023-06-03 16:07:44 +01:00
Dylan K. Taylor
9c6d4093ae
Fixed crash when getting an item from a block which came from an item which came from a block
...
had a stroke yet?
2023-06-02 16:16:54 +01:00
Dylan K. Taylor
07225df936
Block: fixed tile-stored properties sticking to the item in asItem()
...
this was enabling duplication of items, since the dropped item object would contain a Block which still referenced the framed Item.
2023-05-31 21:48:06 +01:00
Dylan K. Taylor
4f4dca7fc0
Mark WoodLikeBlockIdHelper as internal
2023-05-30 21:41:25 +01:00
Dylan K. Taylor
8744032ab6
Fixed empty block handling after blockstate ID XOR change
2023-05-29 18:26:23 +01:00
Dylan K. Taylor
f5a1a0c9cb
ÂInsert PM data version into blockstates, chunks, entities, tiles and level.dat
...
this information will allow us to correct for any bugs introduced by past versions.
however, we still need to propagate this information to permit actually using it when loading data.
2023-05-29 16:32:24 +01:00
Dylan K. Taylor
473c062b40
Improve documentation for BlockTypeIds and ItemTypeIds
2023-05-27 17:28:36 +01:00
Dylan K. Taylor
fddab29e87
Move mob head and note instrument save IDs into pocketmine\data\bedrock
...
to be consistent, these shouldn't be exposed in the API like this...
I'm not very happy with the whole 'type ID map' paradigm (particularly its lack of static analysis guarantees), but the most important thing right now is to get this stuff out of the API so that plugin devs don't try and abuse it. We're not going to change the whole system days before PM5 release.
2023-05-26 15:47:12 +01:00
Dylan K. Taylor
bdb0ed0701
Consistently use 'mob head' terminology in the API
...
previously, we were sometimes using 'mob head' and other times 'skull', sometimes even within the same file.
2023-05-26 15:08:00 +01:00
Dylan K. Taylor
cc77f18ff0
ÂBlock: added a TODO for getStateId()
2023-05-25 17:38:39 +01:00
Dylan K. Taylor
ffe3556be1
Block: XOR state data with type ID, improve hash distribution
...
since most blocks have no state data, their lower 8 bits of state data were all zero.
This makes state IDs a bit more distributed for minimal cost.
I considered flipping these around and using type ID in the lower bits directly, but this worsened distribution for walls.
In the worst case, largest number of collisions drops from 11 to 5 with this change, and the number of states with unique hash keys increased from 3518 to 4461 (out of 7638). This is still a long way from perfect, but it's a decent improvement, improving the overall load factor from 1.6 to 1.3.
related to #5604
2023-05-25 16:35:45 +01:00
Dylan K. Taylor
8454076235
WaterCauldron: remove more repeated code
2023-05-19 15:45:12 +01:00
Dylan K. Taylor
4a3843a881
WaterCauldron: reduce code repetition
2023-05-19 15:40:04 +01:00