964 Commits

Author SHA1 Message Date
Dylan K. Taylor
645c44ae9c
Explosion: remove unused variables 2022-05-21 22:41:28 +01:00
Dylan K. Taylor
33e6b63fe5
Explosion: remove unused local variable in explodeB() 2022-05-21 17:39:11 +01:00
Dylan K. Taylor
01b0742bd4
LightUpdate: account for virtual nodes in prepareNodes()
fixes #3959
2022-05-21 17:07:49 +01:00
Dylan K. Taylor
df3a69dcb7
Modernize private property declarations in Threaded classes
I previously avoided this due to being unsure of the effects; however, it's clear that we already use typed properties on Threaded things in other places anyway, and the only known issues are with uninit properties, and arrays.
2022-05-17 22:42:18 +01:00
Dylan K. Taylor
d4b7f66e15
Promote some constructors 2022-05-17 22:34:58 +01:00
Dylan K. Taylor
8b1bd5b7ff
World: do not hardcode length of day in computeSunAnglePercentage() 2022-05-16 18:17:32 +01:00
Dylan K. Taylor
9ff1bf6deb
Merge remote-tracking branch 'origin/stable' into next-minor 2022-05-11 13:12:45 +01:00
Dylan K. Taylor
593a4b65ea
World: fixed crash when using unloadChunk() during ChunkPopulateEvent, ChunkLoadEvent or when using ChunkListeners
I sure hope there isn't any other cases where this edge case can appear ...

closes #5022
2022-05-10 13:09:26 +01:00
Dylan K. Taylor
937bb4c6ce
Merge branch 'stable' into next-minor 2022-04-28 21:00:23 +01:00
Dylan K. Taylor
cf15a0913d
World: fixed a corner case assertion failure in generation system
This required the following:
- A generation task (taskA) to already be running for any chunk (chunkA)
- A chunk (chunkB) is requested for generation, and the task (taskB) to do the generation
  is commenced immediately
- chunkB generation promise is aborted (e.g. due to chunk unload) and
  taskB is orphaned
- chunkB is subsequently re-requested, but ends up in the generation
  queue because taskB is still running
- taskA completes and drains the generation queue
- chunkB attempts to be populated a second time, but taskB has not yet
  been collected, resulting in an assertion failure.

This bug has been appearing intermittently ever since PM 4.0 release.
For most users there is no obvious effect since production servers don't
have assertions enabled; however, it's unclear what kind of weird side
effects this bug may have had.
2022-04-28 20:23:23 +01:00
Dylan K. Taylor
3752225ed5
World: fix CS 2022-04-28 16:00:34 +01:00
Dylan K. Taylor
5cf572892f
WorldManager: fixed missing initializer for $defaultWorld 2022-04-28 15:38:20 +01:00
Dylan K. Taylor
b88a47929f
Modernize property declarations in src/world/* 2022-04-28 15:06:17 +01:00
Dylan K. Taylor
159392e738
wtf is this shitbox code 2022-04-28 14:57:57 +01:00
Dylan K. Taylor
2f03af51dd
Modernize property declarations in src/world/sound 2022-04-28 14:57:01 +01:00
Dylan K. Taylor
cb76c149e1
Modernize property declarations in src/world/particle 2022-04-28 14:55:53 +01:00
Dylan K. Taylor
ed2a239334
Modernize property declarations in src/world/generator 2022-04-28 13:16:21 +01:00
Dylan K. Taylor
de12b701ac
Modernize type declarations in src/world/format 2022-04-28 13:07:58 +01:00
Dylan K. Taylor
c085bf0db4
Changes for 1.18.30 2022-04-20 13:59:50 +01:00
Dylan K. Taylor
70f923714c
Merge branch 'stable' into next-minor 2022-03-02 18:43:34 +00:00
Dylan K. Taylor
c816bbdb6e
Remove unused import that php-cs-fixer doesn't see 2022-02-22 16:46:23 +00:00
Dylan K. Taylor
75d4c47384
LevelDB: fixed incorrectly writing always newest protocol version in world saves
this made it impossible to tell the difference between PM worlds and bedrock worlds modified post-1.12.
2022-02-20 21:08:31 +00:00
Dylan K. Taylor
c19a038d47
LevelDB: Added a whole bunch of constants 2022-02-07 00:54:00 +00:00
Dylan K. Taylor
7ddd547190
Merge remote-tracking branch 'origin/stable' into staging/4.1 2022-02-06 23:55:52 +00:00
Dylan K. Taylor
7846ea8acc
LevelDB: do not barf on chunk version 8
this covers a wide range from 1.2.13 to 1.8.
2022-02-05 04:18:37 +00:00
Dylan K. Taylor
1dc0d5f96a
WorldManager: do not calculate safe spawn if there are no players in the unloaded world 2022-02-04 19:24:51 +00:00
Dylan K. Taylor
712ffb3e31
WorldManager: fixed loading the default world's spawn chunk when unloading the default world
yo dawg
I heard you like loading and unloading
so I put some loading inside your unloading
so you can load while you unload
2022-02-04 19:22:37 +00:00
Dylan K. Taylor
a7bdef69e2
Merge remote-tracking branch 'origin/stable' into next-minor 2022-01-27 00:40:34 +00:00
Dylan K. Taylor
6cbc14f2b2
World: fixed block update bug introduced by 3faeb5a5568566bccc449855b54495f88473f7fc 2022-01-25 21:53:15 +00:00
ShockedPlot7560
0bf5f97fe9
Implement furnace sound (#4755)
closes #4363 

The following classes have been added:
- BlastFurnaceSound
- SmokerSound
- FurnaceSound
2022-01-25 18:52:31 +00:00
Dylan K. Taylor
32b07e0940
World: avoid repeated getInstance() calls in hot paths 2022-01-24 21:08:12 +00:00
VixikHD
e0da99a973
feat: Implement Brewing (#4413)
The following API constants have been added:
- tile\BrewingStand::BREW_TIME_TICKS
The following public API methods have been added:
- utils\BrewingStandSlot->getSlotNumber() : int
- CraftingManager->getPotionTypeRecipes() : array<string, array<string, PotionTypeRecipe>>
- CraftingManager->getPotionContainerChangeRecipes() : array<int, array<string, PotionContainerChangeRecipe>>
- CraftingManager->registerPotionTypeRecipe(PotionTypeRecipe $recipe) : void
- CraftingManager->registerPotionContainerChangeRecipe(PotionContainerChangeRecipe $recipe) : void
The following classes have been added:
- BrewingRecipe
- PotionTypeRecipe
- PotionContainerChangeRecipe
- BrewItemEvent
- BrewingFuelUseEvent
- PotionFinishBrewingSound
2022-01-22 16:54:58 +00:00
Dylan K. Taylor
aae5962f6a
Replace disallowed operators in src/world/ 2022-01-20 19:05:23 +00:00
Dylan K. Taylor
86bcc49972
Merge branch 'stable' into next-minor 2022-01-20 16:30:49 +00:00
Dylan K. Taylor
061d851fbd
World: do not update entities which have been flagged for despawn
fixes #4718
2022-01-20 16:27:21 +00:00
Dylan K. Taylor
8cdfef7861
Added missing sound for creating grass path and farmland
closes #2776
2022-01-19 21:49:05 +00:00
Dylan K. Taylor
a0bb7059c1
Merge remote-tracking branch 'origin/stable' into next-minor 2022-01-19 19:48:51 +00:00
Dylan K. Taylor
858024afb7
Remove useless docs noticed by php-cs-fixer 3.5 2022-01-18 00:24:12 +00:00
Dylan K. Taylor
d9deb571ed
Added LecternPlaceBookSound 2022-01-15 22:26:56 +00:00
Dylan K. Taylor
51f2a78dcf
World: break random tick blocks initializing out of constructor
and fix a variable clobber by foreach as a side effect
2022-01-07 21:36:49 +00:00
Dylan K. Taylor
3faeb5a556
disable-block-ticking directive now supports names a la /give 2022-01-07 21:06:06 +00:00
Dylan K. Taylor
75fc7a2d1f
Merge branch 'stable' into next-minor 2022-01-07 20:16:35 +00:00
Dylan K. Taylor
6d249026cc
Merge branch 'legacy/pm3' into stable 2022-01-07 20:15:15 +00:00
Dylan K. Taylor
fb29653ed7
Merge remote-tracking branch 'origin/stable' into next-minor 2022-01-06 22:43:57 +00:00
Covered123
aeab19a616
Fixed world spawn point not updating to players (#4699)
closes #4383
2022-01-04 20:31:27 +00:00
Dylan K. Taylor
8a94aa10a4
Merge branch 'stable' into next-minor 2021-12-14 00:34:54 +00:00
Dylan K. Taylor
0a58fd5472
GeneratorManager: fixed addGenerator() being case-sensitive when overwrite=true
this was caused by 083a1e1ff6b6ff5c0c1ba14250d2b026af103b90.

This was discovered by a new PHPStan rule I'm working on, which disallows overwriting the values of parameter variables. During the refactor of this function to correct the error, another error appeared: Variable might not be defined.

This is yet another excellent example of why mutability is bad.
2021-12-12 21:58:07 +00:00
Dylan K. Taylor
5b868e6d5e
Merge branch 'stable' into next-minor 2021-12-08 19:40:25 +00:00
Dylan K. Taylor
889d048ca3
Make use of Utils::assumeNotFalse() in a bunch of places
I've stuck to only doing this in the places where I'm sure we should never get false back. Other places I'm less sure of (and I found more bugs along the way).
2021-12-08 19:39:04 +00:00
Dylan K. Taylor
e0eeb87ea0
World: simplify tile position checking code 2021-12-07 16:45:20 +00:00