14027 Commits

Author SHA1 Message Date
Dylan K. Taylor
6d38922af0
Undo my -100IQ fuckup with chunk sending precondition
the commit I reverted put the preconditions in the completion handler,
which is executed AFTER THE CHUNK IS SENT.

Revert "NetworkSession: allow Player to handle its own business in chunk sending"

This reverts commit a223d1cbf3e8a9143383b6497f4d2d5d7ab3202a.
2021-04-19 00:36:13 +01:00
Dylan K. Taylor
35a3522b4e
Player: fixed chunks getting spammed like crazy during generation
because of the shitty way that the chunk resending is handled, it causes all kinds of problems with the async system because of potential reversions of the state during the process.
2021-04-19 00:30:34 +01:00
Dylan K. Taylor
0251359179
ChunkCache: remove outdated TODO comment
we don't set the entire chunk during lighting updates anymore, so updating light doesn't trigger onChunkChanged().
2021-04-19 00:20:03 +01:00
Dylan K. Taylor
b4afa46fad
Player: don't re-request chunks unless they've already been sent
if they've been requested, the ChunkCache will take care of rebuilding the chunk packet before sending it.
2021-04-18 23:53:34 +01:00
TheNewHEROBRINEX
8d1a1628de
Item: Remove "ench" tag when all enchantments are removed from an item (#4184)
fixes #4144
2021-04-18 20:56:07 +01:00
Dylan K. Taylor
129c638e29
Remove unused import 2021-04-18 20:33:49 +01:00
Dylan K. Taylor
caf3ec1b54
World: improve documentation of World::getPotentialBlockSkyLightAt() 2021-04-18 20:31:42 +01:00
Dylan K. Taylor
53ebe4f9f9
World: added getHighestAdjacentFullLightAt() 2021-04-18 20:20:08 +01:00
Dylan K. Taylor
51b0685881
World: document getFullLight() and getFullLightAt() 2021-04-18 20:14:16 +01:00
Dylan K. Taylor
f29ababf8d
World: Rearrange some light-related methods
these things are all over the place ...
2021-04-18 20:07:36 +01:00
Mohamed
5dfa6a2296
Fix dragon egg teleporting in creative (#4180)
closes #4179
2021-04-17 19:11:10 +01:00
Dylan K. Taylor
a32eb4ebc3
Implemented coral and coral fans
this implementation is very rough due to having to hack around lots more MCPE bullshit, and currently doesn't allow dynamic coral types; but it's there. We'll clean this up after 1.13 migration is done.
2021-04-17 02:04:10 +01:00
Dylan K. Taylor
d5e1b4bd39
Furnace: Separate light/extinguish code into onStartSmelting() and onStopSmelting() hooks
this is a preparation for other kinds of furnaces which might not be plain old Furnaces.
2021-04-17 01:36:16 +01:00
Dylan K. Taylor
9abdcd8ee5
shut 2021-04-16 21:45:22 +01:00
Dylan K. Taylor
01c3668375
ItemFactory: Check the bounds of durability, instead of trying to catch exceptions 2021-04-16 21:30:48 +01:00
Dylan K. Taylor
da51f106de
ItemFactory/BlockFactory: give more specific class descriptions
these classes both have a very specific purpose now, which is much lesser than it was in PM3.
2021-04-16 21:27:28 +01:00
Dylan K. Taylor
c979ab8aa0
Be more specific with documentation of ItemFactory::register() and BlockFactory::register() 2021-04-16 21:24:16 +01:00
Dylan K. Taylor
6071746993
Mark ItemFactory::get() and BlockFactory::get() as @deprecated 2021-04-16 21:16:27 +01:00
Dylan K. Taylor
81ced66bd0
BlockIdentifier: variant parameter of constructor is now mandatory 2021-04-16 20:14:29 +01:00
Dylan K. Taylor
8d2ee516f0
Merge branch 'stable' 2021-04-16 18:26:33 +01:00
Dylan K. Taylor
6f80b8979d
Particle: added some missing IDs 2021-04-16 18:20:47 +01:00
Dylan K. Taylor
b31b097b8e
LightPopulationTask no longer hard-depends on Server 2021-04-16 15:41:14 +01:00
Dylan K. Taylor
3c8eb29d4e
Limit blockitem metadata hack to just blockitems
for some reason putting NBT on some items makes the creative inventory go haywire. Sadly, we currently need this hack, so I limit it to only stuff which actually needs it (blockitems).
closes #4159
2021-04-16 00:41:19 +01:00
Dylan K. Taylor
b94bbf6f5e
Merge branch 'stable' of github.com:pmmp/PocketMine-MP into stable 2021-04-16 00:11:01 +01:00
Dylan K. Taylor
314a8a1297
protocol: updated particle type constants
closes #4173
2021-04-16 00:10:48 +01:00
Dylan K. Taylor
ebd19f5a70
SubChunkExplorer: Protect world field 2021-04-15 23:32:30 +01:00
Dylan K. Taylor
bf67170504
SubChunk: don't assume 15 sky light when not allocated
closes #2533
at long last...
2021-04-15 23:22:53 +01:00
Dylan K. Taylor
5d83f4670a
RegionLoader: Switch to using named constructors
this makes the code more self-descriptive, and also helps to detect potential bugs.
2021-04-15 21:57:23 +01:00
Dylan K. Taylor
e8dd4de5c8
SubChunk: Lazily allocate LightArrays as needed
this is slightly slower, but saves a significant amount of memory (~80 KB per chunk).
Since ext-chunkutils2 doesn't do copy-on-write trickery like the PHP impl did, we need this to get the memory advantages back.
2021-04-15 21:43:46 +01:00
Dylan K. Taylor
e6ecacbb2b
World: do not access chunks for light if they aren't yet light-populated 2021-04-15 21:21:34 +01:00
Dylan K. Taylor
ab9615fb9c
World: fixed documentation for getHighestAdjacentPotentialBlockSkyLight()
[ci skip]
2021-04-15 21:19:58 +01:00
Dylan K. Taylor
0f14c589f7
[ci skip] changelog: added a table of contents
generated using https://ecotrust-canada.github.io/markdown-toc/
2021-04-15 20:48:54 +01:00
Dylan K. Taylor
9655cb819d
World: Remove duplicated code 2021-04-15 19:41:03 +01:00
Dylan K. Taylor
99ed87bc29
NetworkSession: changed misleading debug message in beginSpawnSequence() 2021-04-15 19:27:51 +01:00
Dylan K. Taylor
ec32848a97
[ci skip] changelog: world spawn generation progress is now logged 2021-04-15 19:27:17 +01:00
Dylan K. Taylor
a0c3102b05
FormatConverter: add @phpstan-param for newProvider ctor parameter 2021-04-15 19:14:52 +01:00
Dylan K. Taylor
8e3f5737a0
RegionWorldProvider: fix CS 2021-04-15 15:39:08 +01:00
Dylan K. Taylor
32c4a165cf
Removed RegionLoader::open()
this is nothing but a source of bugs.
2021-04-15 15:38:18 +01:00
Dylan K. Taylor
edb590f681
missed one ... 2021-04-15 15:23:15 +01:00
Dylan K. Taylor
08f0c9a244
Separate writable parts of RegionWorldProvider into WritableRegionWorldProvider 2021-04-15 15:20:57 +01:00
Dylan K. Taylor
e6fb6b1f27
BaseLevelProvider: Remove obsolete proxy methods 2021-04-15 15:15:16 +01:00
Dylan K. Taylor
be190fc41b
gitignore: add backups 2021-04-15 15:01:01 +01:00
Dylan K. Taylor
dc5b1efa66
Merge remote-tracking branch 'origin/stable' 2021-04-15 14:04:27 +01:00
Dylan K. Taylor
8af6b112d2
WorldManager: log after first chunk's generation has been completed
this is as close as we can get to the actual start of generation.
2021-04-15 14:01:28 +01:00
Dylan K. Taylor
506a235d7a
[ci skip] changelog: remove mention of ext-ds 2021-04-15 14:00:45 +01:00
Dylan K. Taylor
3e1ff2a63b
[ci skip] mention WorldCreationOptions changes in changelog 2021-04-15 13:57:20 +01:00
Dylan K. Taylor
7b21fc8e9d
WorldCreationOptions are now mandatory during creation of worlds 2021-04-15 13:54:58 +01:00
Dylan K. Taylor
203cc7fcef
World: Removed noisy debug message 2021-04-13 22:32:00 +01:00
Dylan K. Taylor
ecf6de3430
WorldManager: Pre-generate a radius of 8 chunks
3 is absurdly small. 8 is a more realistic estimation of what the average player's render distance will be (it's also the default server.properties limit).
3 doesn't even fill the default spawn-radius setting, meaning that delays during player connection would occur anyway due to generation.
2021-04-13 22:15:47 +01:00
Dylan K. Taylor
0f3147f49b
WorldManager: Log progress of spawn terrain generation 2021-04-13 21:28:17 +01:00