53 Commits

Author SHA1 Message Date
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
86e051b7bf Merge commit 'a2543ff80d2906bccda1a4e2fdbd9d8e7d147fb3' 2020-04-18 17:33:05 +01:00
Dylan K. Taylor
995309424e updated pocketmine/nbt dependency
this is going to need work on exception handling, but right now it's so inconsistent that it doesn't matter anyway.
2020-03-04 17:53:37 +00:00
Dylan K. Taylor
7c2741e4f5 Inventory: eliminate remaining $send parameters 2020-02-23 21:59:51 +00:00
Dylan K. Taylor
fd675449e9 BlockFactory: fill blastResistance with float(0)
technically there wasn't anything wrong with this code, but it caused the type inference to report incompatibility, and I can't be bothered to report a PHPStan bug.
2020-02-07 22:06:34 +00:00
Dylan K. Taylor
d2aca6023b add native return types to closures (for phpstan) 2020-02-07 22:05:15 +00:00
Dylan K. Taylor
aac7da6c96 eliminate remaining empty() usages 2020-02-07 21:51:50 +00:00
Dylan K. Taylor
347b94b284 Merge branch 'stable' 2020-02-07 20:18:17 +00:00
Dylan K. Taylor
fb1126797a Merge branch 'stable' 2020-02-07 18:13:55 +00:00
Dylan K. Taylor
e1eb9186fe Merge branch 'stable' 2020-02-03 19:57:21 +00:00
Dylan K. Taylor
356ed5f1de DyeColor: fix PHP 7.2 compatibility 2020-02-01 20:50:16 +00:00
Dylan K. Taylor
9c33ea8dd1 EnumTrait: use a better method to initialize enums
this method is simpler, and is also safe at the native type level.
Coincidentally, it also eliminates 30 PHPStan false-positives.
2020-02-01 20:33:30 +00:00
Dylan K. Taylor
89c6da13ac phpstan: use more class-string 2020-01-31 22:05:33 +00:00
Dylan K. Taylor
f65bf76fd8 Merge commit '799183e13e61e89cc6820ad3132a4147454017c6'
# Conflicts:
#	resources/vanilla
#	src/Server.php
#	src/pocketmine/entity/Entity.php
#	src/pocketmine/level/format/io/LevelProviderManager.php
#	src/pocketmine/tile/Tile.php
#	src/world/generator/GeneratorManager.php
2020-01-31 21:26:40 +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
1ae7960fc4 Merge commit '92a752053df598e5fe9366601bef070d967374fc'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/tile/Banner.php
#	src/pocketmine/tile/Sign.php
#	src/pocketmine/tile/Tile.php
2020-01-31 19:50:33 +00:00
Dylan K. Taylor
1388a2287a Merge commit '5c8a625d88e511a6ebad765714b75f1a86dfd37f' 2020-01-31 18:50:23 +00:00
Dylan K. Taylor
42014311c5 BrewingStand: added missing void return type 2020-01-27 18:08:08 +00:00
Dylan K. Taylor
5955ff5393 fix phpdoc spacing screwed up by phpstorm 2020-01-22 15:20:50 +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
3ee6887792 populate remaining missing return types, using native returns where possible
this is done separately to stable so that stable changes can be integrated easily using an empty merge.
2020-01-19 10:26:35 +00:00
Dylan K. Taylor
47ceb7fee2 Merge commit '07cb603231d143314c2bb69d6e3ee0dc281523a0' 2020-01-18 18:19:13 +00:00
Dylan K. Taylor
0e1cea043a added some phpstan-specific generic type annotations 2020-01-13 15:05:02 +00:00
Dylan K. Taylor
eba246eab3 SignText: provide typeinfo for checkLineIndex 2020-01-11 22:39:42 +00:00
Dylan K. Taylor
aba71762e9 master-specific @var annotations 2020-01-09 17:50:01 +00:00
Dylan K. Taylor
0f718ea28b Merge commit '8726604899d1a371567141e0831ed570d3233356' 2019-12-25 14:19:35 +00:00
Dylan K. Taylor
7d89f91fea Leaves: fixed decay
detected by phpstan level 4
2019-12-04 23:21:01 +00:00
Dylan K. Taylor
e35a92d8e8 tile\Banner: fixed bad default value for patterns field
detected by PHPStan on level 3
2019-12-04 18:25:08 +00:00
Dylan K. Taylor
f302517a2d Door: fix deserialization of top flag
it's not clear what bugs this caused, if any, but nonetheless it is incorrect.
2019-12-03 21:04:04 +00:00
Dylan K. Taylor
ebbb99b96b Merge branch 'next-minor' 2019-10-22 19:05:11 +01:00
Dylan K. Taylor
6a4ae4cb94 remove position parameters from BlockFactory::get() and BlockFactory::fromFullBlock() 2019-08-24 17:19:27 +01:00
Dylan K. Taylor
75a2d79671 convert more constant interfaces to final classes, close #2885 2019-08-24 15:39:23 +01:00
Dylan K. Taylor
794c7b2469 clean up imports 2019-08-20 15:59:27 +01:00
Dylan K. Taylor
2d4a32fc77 first look at separating Entity and Location 2019-08-19 17:20:34 +01:00
Dylan K. Taylor
591d35889e make use of EnumTrait->id() 2019-08-17 16:37:36 +01:00
Dylan K. Taylor
4898a35613 cleanup block dual bounding box clusterfuck
"bounding box" serves no tangible purpose, only collision boxes do right now.
2019-08-15 17:23:55 +01:00
Dylan K. Taylor
d58339b2fd fix doors being considered 3 blocks tall by collision detection in some cases 2019-08-15 16:54:14 +01:00
Dylan K. Taylor
73b2669712 remove World->isFullBlock(), add Block->isFullCube(), clean up some BB mess 2019-08-15 16:22:54 +01:00
Dylan K. Taylor
e29ac514d7 Block->getBoundingBox() and Block->getCollisionBoxes() are now final
Force usage of Block->recalculateBoundingBox() and Block->recalculateCollisionBoxes()
2019-08-15 16:16:08 +01:00
Dylan K. Taylor
47b905007e add more legacy metadata constants 2019-08-13 18:01:24 +01:00
Dylan K. Taylor
4c694c57f4 DaylightSensor: Avoid triggering useless block updates if calculated power is unchanged 2019-08-10 17:49:31 +01:00
Dylan K. Taylor
bce126b6d0 fix BB of daylight sensor 2019-08-07 19:51:52 +01:00
Dylan K. Taylor
dec6f73f2f Remove unnecessary BannerPattern copying on block clone 2019-08-06 10:18:02 +01:00
Dylan K. Taylor
9671b4d5cb fix improper cloning of some blocks, closes #3079 2019-08-06 10:07:16 +01:00
Dylan K. Taylor
4e5b296c8c Tiles now encapsulate positions instead of extending them 2019-08-05 19:33:34 +01:00
Dylan K. Taylor
d355d5b5b5 Remove hack to break cyclic dependency on double chests
Since these now reference positions instead of tiles, the cyclic dependency is removed.
2019-08-05 19:01:21 +01:00
Dylan K. Taylor
9353f616a2 All BlockInventory descendents now have a Position as holder
this allows multiple problems to be solved:
1) Cycle between tile and inventory is now removed.
2) BlockInventory now provides a consistent API for plugins to get the block holding an inventory.
2019-08-05 18:50:29 +01:00
Dylan K. Taylor
53ab860db5 first shot making Block not extend Position
this makes some stuff a lot less pretty, but this seems to be the bare minimum necessary to do this task. It can be enhanced later.
2019-08-05 16:44:09 +01:00
Dylan K. Taylor
1fcec87b98 Block: remove unused function 2019-08-03 17:13:02 +01:00