Dylan K. Taylor
11d2e1ef08
Require ext-chunkutils ^0.3.0
2021-09-07 22:53:50 +01:00
Dylan K. Taylor
17d0767db5
ChunkSerializer: implement support for persistent network chunk format
2021-07-17 18:45:04 +01:00
Dylan K. Taylor
e5327a0f3e
ChunkSerializer: Extract serializeSubChunk() from main serialize() routine
...
this will be used in the future for cache-based chunk sends.
2021-07-17 18:29:14 +01:00
Dylan K. Taylor
1ad38d499c
Deglobalize ItemTypeDictionary usage, at least for the protocol
...
while this is a bit hacky outside of the protocol namespace, it makes it much easier to use the protocol library for alternative purposes, such as for a client or MITM proxy.
It also removes all but one remaining core dependency of the protocol library, making it very close to being able to be separated from the server core entirely.
2021-07-14 14:26:32 +01:00
Dylan K. Taylor
4549522289
Rename Chunk::getSubChunkChecked() -> getSubChunk()
2020-10-31 23:12:03 +00:00
Dylan K. Taylor
01001dca74
Use Chunk::getSubChunkChecked() in places where we know that an invalid coordinate cannot be requested
2020-10-31 22:48:41 +00:00
Dylan K. Taylor
5661d0496f
RuntimeBlockMapping::toRuntimeId() now accepts a single integer instead of id/meta
...
the expectation is that eventually this will receive arbitrary internal runtime IDs instead of static id/meta, and RuntimeBlockMapping doesn't really care about this crap anyway.
2020-09-20 12:16:11 +01:00
Dylan K. Taylor
ad99dc5884
ChunkSerializer micro optimisation: reduce indirections when writing runtime IDs
2020-07-05 22:00:42 +01:00
Dylan K. Taylor
6c096c44aa
Rename NetworkBinaryStream -> PacketSerializer
2020-06-17 11:31:13 +01:00
Dylan K. Taylor
6b037d6a4c
RuntimeBlockMapping: these IDs are not static any more
2020-05-11 12:40:55 +01:00
Dylan K. Taylor
a73c54bdd0
making tile spawn compound cache use CacheableNbt instead of strings
2020-05-04 12:35:13 +01:00
Dylan K. Taylor
c2857a91bd
[Network]ChunkSerializer: allow injecting RuntimeBlockMapping
...
this will allow the same serializer to be reused with different mapping tables (will be needed for multi version).
2020-05-04 12:14:27 +01:00
Dylan K. Taylor
a97cafd4f6
moving serializers into protocol namespace
2020-04-27 13:54:39 +01:00
Dylan K. Taylor
287bf4274f
move RuntimeBlockMapping to convert package
2020-04-24 12:42:43 +01:00
Dylan K. Taylor
aa1828aa98
RuntimeBlockMapping is now a singleton instead of static class
...
this prepares for a fully dynamic block mapper, as well as allowing a small performance improvement to chunk encoding by eliding the constant lazy-init checks.
2020-04-23 21:09:58 +01:00
Dylan K. Taylor
18d48869a0
the great airgapping of recipes and itemstacks
2020-04-23 14:11:48 +01:00
Dylan K. Taylor
9bfc1df486
Merge branch 'stable'
2020-04-18 13:19:31 +01:00
Dylan K. Taylor
ab62a792e1
Merge commit '7a072931d'
2020-04-18 12:10:02 +01:00
Dylan K. Taylor
da7ff9b1fe
Airgap Attribute, fix decoding of non-registered attributes for protocol debugging
2020-03-24 00:43:44 +00:00
Dylan K. Taylor
d930abce2d
ChunkSerializer: improve palette writing performance with one weird trick
...
this optimization relies on the fact that palette entries are always unsigned, and positive zigzag varints are just the same as their non-zigzag counterparts, except shifted left by 1 bit. This eliminates some function call overhead, making the encoding slightly less agonizingly slow.
2020-03-17 21:16:43 +00:00
Dylan K. Taylor
bd00ee5038
Merge branch 'stable'
2020-02-24 22:11:13 +00:00
Dylan K. Taylor
ce0af8b040
DataPacket now encapsulates NetworkBinaryStream instead of extending it
...
ultimately the goal is to remove the NetworkBinaryStream crap entirely, but this change has most of the same benefits and is less disruptive.
2020-02-24 18:59:54 +00:00
Dylan K. Taylor
04a3e71047
ChunkSerializer: avoid using loop vars outside loop scope
2020-02-07 22:10:23 +00:00
Dylan K. Taylor
fb1126797a
Merge branch 'stable'
2020-02-07 18:13:55 +00:00
Dylan K. Taylor
cb16f5c142
Merge commit '260ac47588c76a2e6814cfba46773a990fb8c5da'
...
# Conflicts:
# resources/vanilla
# src/Server.php
# src/lang/Language.php
# src/network/mcpe/protocol/AddItemActorPacket.php
# src/network/mcpe/protocol/AddPlayerPacket.php
# src/network/mcpe/protocol/SetActorDataPacket.php
# src/network/mcpe/serializer/NetworkBinaryStream.php
# src/permission/Permission.php
# src/pocketmine/block/Leaves.php
# src/pocketmine/entity/DataPropertyManager.php
# src/pocketmine/entity/Entity.php
# src/pocketmine/item/Banner.php
# src/pocketmine/item/Item.php
# src/pocketmine/level/format/io/LevelProvider.php
# src/pocketmine/level/format/io/LevelProviderManager.php
# src/pocketmine/network/mcpe/protocol/AddActorPacket.php
# src/pocketmine/network/mcpe/protocol/LoginPacket.php
# src/pocketmine/tile/Banner.php
# src/scheduler/BulkCurlTask.php
# src/updater/AutoUpdater.php
# src/utils/Config.php
# src/utils/Utils.php
# src/world/generator/Flat.php
# src/world/generator/Generator.php
2020-01-31 21:07:34 +00:00
Dylan K. Taylor
20d39846b7
Merge commit 'fc0619ee6e4fa08aba2719e58a9289edd11f0b6e'
...
# Conflicts:
# resources/vanilla
# src/network/mcpe/protocol/AddItemActorPacket.php
# src/network/mcpe/protocol/AddPlayerPacket.php
# src/network/mcpe/protocol/SetActorDataPacket.php
# src/network/mcpe/serializer/NetworkBinaryStream.php
# src/pocketmine/network/mcpe/protocol/AddActorPacket.php
# src/pocketmine/network/mcpe/protocol/LoginPacket.php
2020-01-31 19:42:07 +00:00
Dylan K. Taylor
055b13a6cf
strip extra blank lines (php-cs-fixer)
2020-01-22 15:14:10 +00:00
Dylan K. Taylor
67bcc1c0fb
phpdoc armageddon for master, pass 1
2020-01-22 11:55:03 +00:00
Dylan K. Taylor
c0a45083b6
Packet: specify void return type in phpdoc (native return type not possible yet)
2020-01-18 19:58:14 +00:00
Dylan K. Taylor
2b4ce3ea6d
Merge branch 'stable'
2020-01-18 19:41:17 +00:00
Dylan K. Taylor
00869e81ba
NetworkBinaryStream: fix server crash on wrong skindata size, close #3276
2020-01-15 19:48:25 +00:00
Dylan K. Taylor
96b91af66a
Merge branch 'stable'
2020-01-11 21:41:38 +00:00
Dylan K. Taylor
4651bcf8c3
master: imports cleanup
...
it was easier to make an empty merge and re-run php-cs-fixer afterwards.
2019-12-11 23:23:03 +00:00
Dylan K. Taylor
c85c1c3c3f
Merge commit '82d9e481d2a0a389fbbc6dfd3672fc366127febc'
2019-12-11 23:06:35 +00:00
Dylan K. Taylor
3fa628f259
updated NBT dependency
2019-12-09 11:26:43 +00:00
Dylan K. Taylor
c16337a80f
Merge branch 'stable' with changes
2019-11-09 18:01:04 +00:00
Dylan K. Taylor
eedc9eaee1
Chunk: move protocol-specific getSubChunkSendCount() to network chunk serializer
2019-10-23 18:34:47 +01:00
Dylan K. Taylor
6d24760174
Merge branch 'stable'
2019-10-20 21:25:39 +01:00
Dylan K. Taylor
794c7b2469
clean up imports
2019-08-20 15:59:27 +01:00
Dylan K. Taylor
200bcb485e
Merge branch 'stable'
2019-08-14 18:20:55 +01:00
Dylan K. Taylor
296061d25d
reduce boilerplate around attribute handling
2019-07-31 16:41:09 +01:00
Dylan K. Taylor
5499ac620c
Removed pocketmine subdirectory, map PSR-4 style
2019-07-30 19:14:57 +01:00