12bbc764ec
Fixed Level->getSafeSpawn() looking for blocks in chunk 0,0
2017-11-17 20:45:29 +00:00
5178373d8a
fixed overoptimized code in getSafeSpawn(), close #1248
2017-11-17 13:58:03 +00:00
28188e5ef4
remove redundant count() for updateTiles
2017-11-17 13:47:54 +00:00
6adc813a7f
Fixed disable-block-ticking pocketmine.yml config not working
2017-11-16 14:45:00 +00:00
42ed03fd02
Merge branch 'left-click-spawn-prot'
2017-11-03 11:59:26 +00:00
91c256f1a9
Added Level->getTileAt()
2017-10-30 13:36:42 +00:00
d1db27016e
s/facePos/clickVector/
...
clickVector better describes this
2017-10-27 19:05:26 +01:00
c55bc2d7e9
added use-item click vector to PlayerInteractEvent
...
now go and make some touchscreens with maps!
2017-10-27 19:00:17 +01:00
3b85e558ce
Fixed bad documentation on Level->checkSpawnProtection()
2017-10-24 18:56:38 +01:00
6daa0135d5
Cancel PlayerInteractEvent automatically on left-click block when spawn protection is triggered
2017-10-24 13:11:19 +01:00
716c1f29b4
Fixed slabs again
2017-10-24 10:23:07 +01:00
7b04049bb7
Throw exceptions when trying to add closed entities or tiles to levels
2017-10-20 18:22:28 +01:00
30211bee82
Fixed excessive idle CPU usage for chunk ticking
...
"excessive" = 5%, after changes = 1.6% - YMMV, but that's my machine.
2017-10-20 15:54:22 +01:00
18e4e5364f
Fixed getBlock() performance degradation caused by 781de3efab
, added Level->getBlockAt() to avoid creating vectors everywhere
2017-10-20 13:22:49 +01:00
50be26958a
Added a helper function Entity->createBaseNBT() to cut down on boilerplate code
2017-10-19 17:36:51 +01:00
584810780a
Moved projectile-related classes to their own namespace
2017-10-19 12:27:44 +01:00
fd847f02ad
Added BaseInventory->dropContents()
2017-10-16 12:18:06 +01:00
41f292d995
BlockUpdateEvent doesn't allow changing the target block anyway
2017-10-14 10:10:19 +01:00
fd8a562e02
Fixed collision bugs caused by not clearing pre-computed outdated AABBs for blocks
...
take fences as an example: say you have fence1 and fence2 next to each other, like this:
|==|
and they are joined together
then delete the fence on the right
the left fence will then look like this
|
but the server would still think its collision boxes were like this:
|=
so you wouldn't be able to shoot arrows through that space.
This commit clears pre-computed bounding boxes when a block is set using Level->setBlock() (in case the block was previously already set and has pre-calculated outdated AABB). However, because of weird blocks like fences, glass and walls, they must also be cleared on neighbour block update (since connection state isn't shown in the block data).
2017-10-14 10:07:17 +01:00
15d6fd86e2
Added basic support for blocks with multiple AABBs, fixed stairs ( #1303 )
2017-10-12 16:29:24 +01:00
7267f1a520
Fixed some usages of Item constants for Blocks
...
only cosmetic change
2017-10-09 10:37:19 +01:00
aa91183504
Added Durable class, fixed some tools not breaking correctly, removed some boilerplate code
2017-10-08 15:54:31 +01:00
68195c64ce
Remove dead COMPRESSION_LEVEL property from Level
2017-10-04 14:26:04 +01:00
27aa51bac4
Added some type docs to Level
2017-10-04 14:25:06 +01:00
eac1d76e8b
Fixed Level->stopTime not being set
2017-10-04 14:08:23 +01:00
a8c6e14d02
Chunk cache is now non-optional, close #1448
2017-10-04 13:50:32 +01:00
736cc927ff
Enable chunk caching by default
...
the footprint of compressed chunk batches is so small now that it doesn't make sense to disable it out of the box. The performance gains from caching chunks are more than worth it.
As of 1.2, the average footprint of these caches is usually ~2% or less of the size of the actual chunk itself. Moving around a lot will frequently cause the same chunks to get sent several times as it passes in and out of your render distance, and the chunk isn't even changing in that time, so the chunk is getting needlessly re-serialized over and over again. So even if your world is not static (for example a creative server) chunk caching will still offer benefits, and the memory expense is so small it's a no-brainer.
2017-10-03 13:16:30 +01:00
4be7885ee4
Remove redundant assignment in Level constructor
2017-10-03 12:57:30 +01:00
c09d782503
Fix #145 , take 2 (slab placement in half gaps doesn't work) ( #1411 )
2017-10-01 16:19:59 +01:00
27798c69ee
fix collision detection not detecting fence & fence-gate, fixed nether-brick fence gate AABB, close #1299
2017-09-29 15:27:14 +01:00
4b63a22f8c
More use of Item->isNull()
2017-09-27 11:05:40 +01:00
c47f1f572c
Added API method Item->pop()
2017-09-27 10:56:04 +01:00
38fad4b963
Implement difficulty per-world ( #878 )
...
* Moved Server::getDifficultyFromString() to Level
* Added ability to set difficulty in worlds section of pocketmine.yml for generation
2017-09-26 11:16:51 +01:00
28bce8d48c
Fixed plugins causing crashes by using Level->unload() and add a warning
...
yes, we don't want you to use this, but it still shouldn't crash if it can be prevented...
2017-09-25 09:46:19 +01:00
1b5fed983b
Revert "Fixed slab placement, close #145 ", reopen #145 , close #1314
...
This reverts commit f2ff0198cc
.
2017-09-21 14:41:18 +01:00
1fb6d12a6b
Add getInventory() to Container interface where it's actually useful
2017-09-19 19:26:41 +01:00
78d49f8e66
Merge branch 'php/7.0' into mcpe-1.2
2017-09-03 15:02:41 +01:00
2398e2450a
Allow building inside spectators
...
This check is pretty ugly, it'll need cleaning up later. For now, this will suffice.
2017-09-03 13:47:44 +01:00
41780fd195
Made entity collision checks for block placement more logical and less wasteful
...
We don't care how many entities collide, only that a non-zero number collided.
2017-09-03 11:50:15 +01:00
5d75d3d5b6
Merge branch 'php/7.0' into mcpe-1.2
2017-09-01 23:10:58 +01:00
9ea39ea3d7
Stop clearing chunk cache after 768 batched packets are cached. ( #1320 )
2017-08-31 21:14:18 +01:00
120cf56a47
Misc return typehints
2017-08-30 12:59:26 +01:00
6abef6b22d
Made block and item factory lists private to stop people doing stupid things with them
2017-08-29 10:53:01 +01:00
b5d2402c9b
Merge branch 'master' into mcpe-1.2
2017-08-28 18:02:09 +01:00
8b3fad8a7b
Removed redundant condition
2017-08-27 19:44:40 +01:00
a982344b96
Cleaned up Level->addSound() and Level->addParticle()
2017-08-27 19:09:05 +01:00
c7fd3eb725
Merge branch 'master' into mcpe-1.2
2017-08-27 16:09:23 +01:00
20f34fba53
Missed another dupe
2017-08-26 14:34:21 +01:00
61968cca28
Cleaned up duplicated spawn protection code and refactor some variable names
2017-08-26 14:25:34 +01:00
ebda6ec19b
Cleaned up random-block-ticking registration
2017-08-25 11:47:38 +01:00