Commit Graph

955 Commits

Author SHA1 Message Date
Dylan K. Taylor
4f4069d403 World: remove another noisy debug message 2021-04-19 00:55:42 +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
Dylan K. Taylor
b31b097b8e LightPopulationTask no longer hard-depends on Server 2021-04-16 15:41:14 +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
9655cb819d World: Remove duplicated code 2021-04-15 19:41:03 +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
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
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
Dylan K. Taylor
c90ca37ea3 Fix CS 2021-04-13 21:10:18 +01:00
Dylan K. Taylor
ab176264b4 ... 2021-04-13 21:06:37 +01:00
Dylan K. Taylor
9c1b274499 WorldManager::createWorld() now accepts WorldCreationOptions instead of mixed[] 2021-04-13 21:03:25 +01:00
Dylan K. Taylor
6ce15854af Clean up generator preset handling 2021-04-13 20:19:53 +01:00
Dylan K. Taylor
1e6d97a157 Merge branch 'stable' 2021-04-07 21:25:39 +01:00
Dylan K. Taylor
adbc58f326 TickingChunkLoader: use native return types 2021-03-26 22:55:48 +00:00
Dylan T
f047ecfd2d Fixed player spawning in ungenerated terrain (#4087)
fixes #4044
fixes #2724

this is significantly more complex than I hoped for, but it's a start... and it works.
2021-03-26 21:36:27 +00:00
Dylan K. Taylor
64886707b2 SubChunkExplorer: avoid repeated shift-right instructions 2021-03-25 23:36:10 +00:00
Dylan K. Taylor
5e9ce92b55 Explosion: don't depend on air having stateID 0 2021-03-25 23:17:33 +00:00
Dylan K. Taylor
0d775f8731 Require ext-chunkutils2 at ^0.2.0 2021-03-23 22:23:17 +00:00
Dylan K. Taylor
aa8c13ec45 Remove dynamic LightArray constants
sad, no constexpr functions :(
2021-03-23 20:23:56 +00:00
Dylan K. Taylor
49438d360d RegistryUtils: generate ordered doc comments
this makes things easier to find, especially in the large ones like VanillaBlocks.
2021-03-22 16:16:28 +00:00
Dylan K. Taylor
90161f24e3 Added script to update registry/enum docblocks 2021-03-22 16:00:09 +00:00
Dylan K. Taylor
a515b5e1b8 World: remove dead constant Y_MASK 2021-03-19 21:13:56 +00:00
Dylan K. Taylor
5dd0b3ac35 OOOPS
it's a bit too early for this
2021-03-19 21:12:46 +00:00
Dylan K. Taylor
c092a2e836 Separate TickingChunkLoader from ChunkLoader
this makes it possible to keep chunks loaded without ticking them.
2021-03-18 23:19:27 +00:00
Dylan K. Taylor
d1387ebd0a World: assume that the primary active chunk is not NULL in generateChunkCallback() 2021-03-18 21:56:17 +00:00
Dylan K. Taylor
34bb225566 World: rename some poorly-named fields 2021-03-18 21:33:17 +00:00
Dylan K. Taylor
eb9a68edee Further refactors to prepare for y=-64 lower limit 2021-03-18 00:08:16 +00:00
Dylan K. Taylor
b844c4266d Added World::Y_MIN
preparation for Y axis expansion in 1.17
2021-03-17 23:19:49 +00:00
Dylan K. Taylor
5a59afbe2c Place world conversion backups in <pwd>/backups/worlds instead of <pwd>/world_conversion_backups 2021-03-17 01:21:11 +00:00
Dylan K. Taylor
72de45f0e9 Drop pocketmine/uuid for ramsey/uuid 2021-03-16 23:03:00 +00:00
Dylan K. Taylor
a49ee0d6b0 World: mark addTile() and removeTile() as @internal 2021-02-24 23:42:09 +00:00
Dylan K. Taylor
9a1cef0d4f Merge branch 'stable' 2021-02-11 22:35:33 +00:00
Dylan K. Taylor
c21ec614fc Fixed PHPStan 0.12.74 error in WorldManager 2021-02-11 16:54:14 +00:00