| Consolidate Bedrock data version info
this ensures we don't have to go into a bunch of randomly scattered files to update version numbers.
| 11 个月前 |
| Use PHP-CS-Fixer to enforce file header presence
| 3 年前 |
| Merge branch 'stable' into minor-next
| 4 个月前 |
| Updated NBT library to get new ListTag handling features
| 7 个月前 |
| Stub PalettedBlockArray functions that work with arrays
and workaround PHPStan stupidity
| 1 年前 |
| Deal with a whole lot of PHPStan suppressed key casting errors
closes #6534
| 1 年前 |
| First look at 3D biome support
| 3 年前 |
| First pass ext-encoding support (high-level network I/O and read-only data) (#6799)
This implements ext-encoding only in high-level network I/O (only BedrockProtocol and stuff implemented in PM) and read-only data.
This should net a significant performance advantage while being low-risk in the case of critical issues with the extension. Any problems affecting protocol won't do permanent damage while being fairly easy to debug.
Next passes will integrate ext-encoding versions of RakLib, RakLibIpc and NBT, as well as generally using ext-encoding for writeable data. | 7 个月前 |
| FormatConverter: do periodic GC
this reduces the risk of OOM during conversion of large worlds
we probably ought to limit the size of region caches for regionized worlds, but that's a problem for another time.
| 1 年前 |
| Unify block serializers (#6769)
This has several advantages:
Easier to implement new blocks (one less file to modify)
Easier to adjust serialization of existing blocks
Guaranteed consistency between serializers and deserializers
Potentially, exposes more metadata for programmatic analysis, instead of having everything baked inside opaque Closures
There are some exceptions which still use the old approach: big dripleaf, cauldrons, mushroom stems, and pitcher crops. These all have multiple PM block types for a single ID, with relatively complex logic to select which to use. These weren't worth the effort to unify due to their small number. I may revisit this in the future, but I already spent a lot of brainpower on it. | 8 个月前 |
| Temporary resolve loading old skulls from storage (#6476)
| 1 年前 |
| WorldProvider: allow loadChunk() to return additional information about the loaded chunk data
this will be needed for dealing with #5733. I don't plan to fix that before 5.0, but we need to make the appropriate BC breaks now, before release.
| 2 年前 |
| WorldProviders now accept Loggers
| 3 年前 |
| World: added setDisplayName()
this is an obvious use case, and I'm not really sure why it wasn't supported sooner.
| 3 年前 |
| WorldProvider: allow loadChunk() to return additional information about the loaded chunk data
this will be needed for dealing with #5733. I don't plan to fix that before 5.0, but we need to make the appropriate BC breaks now, before release.
| 2 年前 |
| Replace Closure::fromCallable() usages with first-class callables
PHP 8.1 <3
| 2 年前 |
| WorldProviders now accept Loggers
| 3 年前 |
| WorldProvider subsystem no longer depends on Chunk
Instead, it provides the data needed to construct the chunk, which doesn't require the provider to be aware of anywhere near as much logic.
| 2 年前 |
| WorldProviders now accept Loggers
| 3 年前 |