342a74ffcb
Level: Collect garbage from chunk internals in doChunkGarbageCollection()
2018-11-07 20:01:07 +00:00
a50a863ab7
Chunk: be more intelligent about fast-serializing chunks
...
This reduces the amount of useless data that pthreads has to copy around.
2018-11-03 19:43:35 +00:00
45c9caa38c
Fixup some formatting issues
2018-10-21 18:15:25 +01:00
28a72a93b4
Chunk: Use an SplFixedArray for heightmap
...
this goes on 3.1 because it changes the behaviour of chunk cloning, which might possibly break some plugins, and this isn't a bug fix.
This should see no change in behaviour other than a minor performance improvement and slight reduction in memory usage.
2018-07-05 11:58:20 +01:00
c4c6c58615
Added some missing typehints
2018-06-10 17:18:55 +01:00
857f6dd5df
Chunk: Share EmptySubChunk instance with other chunks on the same thread
2018-06-04 11:44:18 +01:00
66963fbf9a
Nuke block extradata
...
this has been superseded by multi-layer blockstorages in 1.2.14+
2018-05-19 11:03:28 +01:00
8228774ad4
Remove extra data, this time without API breaks
...
this is necessary because the next MCPE release will probably be made before the next PM release.
2018-05-02 12:08:44 +01:00
3962d32ffe
Chunk: Remove obsolete checks for entity/tile coordinate mismatches
...
This code is no longer necessary, because entities are constructed with a Level instead of a Chunk since API 3.0.0-ALPHA4. This means that they will not get allocated in the wrong chunk at runtime after having been saved on the wrong chunk by something else (such as an older version of PM). They will instead be allocated in a chunk selected by bitshifting their coordinates.
This is necessary to be able to fix #1789 without causing entities affected by the infamous bitshift-on-floats bugs to inexplicably vanish.
2018-02-14 18:58:52 +00:00
a0683dbb0f
Chunk: Remove useless code in fastDeserialize()
2018-01-08 21:38:30 +00:00
c16c9efdf3
Chunk: Rename unload() to onUnload()
...
this more accurately describes what the function does.
2018-01-02 10:50:22 +00:00
c3cc6f9880
Chunk: Clean up unnecessary checks in unload()
2018-01-02 10:48:01 +00:00
256527c953
Chunk: Fixed possible bug with Chunk->setBlockData()
...
to be honest this would probably never affect anything, but let's be consistent.
2017-11-27 19:26:20 +00:00
b93691a177
Chunk: Remove redundant assignment
2017-11-27 18:58:08 +00:00
48c5db4296
Chunk: Add some PhpDoc
2017-11-27 17:51:42 +00:00
c564655f9b
Chunk: Remove unnecessary default values
...
these are assigned in the constructor anyway.
2017-11-27 17:49:08 +00:00
49301b0d74
Chunk: Use an SplFixedArray for subchunks
2017-11-27 17:46:48 +00:00
74b074753f
Bulk addition of constant visibilities
...
thanks PhpStorm inspections plugin for annoying the shit out of me until
I did this.
2017-11-21 14:44:10 +00:00
a9df383346
generalized conditions for saving entities with chunks
2017-11-19 18:06:38 +00:00
2fd61163bf
cleanup some chunks leftovers from 1.0
2017-11-19 17:52:36 +00:00
665130561e
Further cleanup on NBT dynamic field access
...
not sure how I missed so many of these... there are probably lots more besides :(
2017-11-17 11:19:36 +00:00
48fefae920
Added cache for tile spawn compounds
...
avoids expensive repetetive NBT writes on chunk sends when the tile hasn't been changed
2017-10-27 10:23:48 +01:00
23752548fe
Address several LevelDB related crashdumps in the crash archive
2017-08-30 15:42:31 +01:00
02f42eba48
Move block registration to its own class
2017-08-20 18:05:01 +01:00
eebc52e00b
Added API method Entity->isClosed() and made Entity->closed protected
2017-08-16 19:30:23 +01:00
c3b8be3f60
and more typehints
2017-07-14 10:56:51 +01:00
2a7b736f18
Heap of bugfixes, cleanup and PHP 7 upgrades
2017-07-13 19:18:56 +01:00
30c5487f94
Drastically improved performance of basic chunk sky-light population
...
back 2 commits: 53ms per chunk
back 1 commit: 27ms per chunk
this commit: 3ms per chunk
(on my machine, of course)
2017-07-08 17:13:22 +01:00
728851594b
Improved performance of basic chunk sky-light population
...
No need to recalculate this 256 times
2017-07-08 13:37:45 +01:00
70bd9afd37
Updated leveldb implementation to support MCPE 1.1 worlds
2017-06-30 09:11:26 +01:00
a365c831a8
Fixed some doc problems
2017-06-25 12:07:28 +01:00
e11f1e94e9
Cleaned up SubChunk implementation
2017-06-19 15:40:31 +01:00
75863e2a44
OCD commit
2017-06-07 12:54:12 +01:00
8779259734
Stop spawning entities to players twice
...
This will be done when the chunk is sent to the player anyway.
2017-05-29 15:57:05 +01:00
7a2ed232cc
Merge branch 'api3/network' into api3/network-mcpe-1.1
2017-04-24 13:56:19 +01:00
559504225a
Throw an exception before calling base entity constructor if skin is not set or invalid, close #835 ( #855 )
2017-04-24 09:50:55 +01:00
b7b7a93e4e
Merge branch 'api3/network' into api3/network-mcpe-1.1
2017-04-18 14:52:06 +01:00
eefa8abaf2
Throw exceptions if something attempts to add a closed Tile or Entity to a chunk
2017-04-18 14:45:33 +01:00
dab73d8950
Implemented sky light generation-time population and updating, obsolete and close #160
2017-04-18 13:05:01 +01:00
f3ab45e7d5
Merged in 1.0.6 changes, added autogenerated data for 1.1.0.3 (doesn't work yet) and deliberately made the same merge error as Mojang
2017-04-14 13:00:43 +01:00
1c3d89cfef
Fixed lighting issues with subchunks containing no blocks
...
A subchunk with no blocks is not necessarily empty.
2017-03-29 11:34:43 +01:00
c21197ef17
Removed entanglement between chunks and providers. WARNING: BREAKING API CHANGES.
...
- All entity and tile constructors now require a \pocketmine\level\Level instead of a \pocketmine\level\format\Chunk.
- Chunk->getProvider() and Chunk->setProvider() have been removed.
- Chunk::__construct() has had the $provider parameter removed.
- Chunk->unload() has had the unused $save parameter removed.
- ChunkEvents now take a Level parameter instead of going through the Chunk
API bump to 3.0.0-ALPHA4
2017-02-21 17:08:45 +00:00
06de85fd33
Revert "Fix entities missing in imported leveldb worlds", fixed entities missing after restart in anything OTHER than LevelDB
...
🤦 I should test this stuff more
This reverts commit ffadc34691
.
2017-02-11 19:22:59 +00:00
ffadc34691
Fix entities missing in imported leveldb worlds
2017-02-11 11:15:15 +00:00
bcf049a660
Remove obsolete methods from Chunk
2017-01-15 18:03:40 +00:00
8ba0b49022
Initial working R/W of 0.16 + 1.0 worlds, highly unstable
2017-01-15 17:26:20 +00:00
b28e38ab26
Move some exceptions out of utils into their relevant namespaces, move some Chunk methods to ChunkUtils for I/O, refactor "colour" -> "color"
2017-01-15 11:31:12 +00:00
946d301bc7
Fix lighting population, fix lighting issues when read by vanilla Minecraft
2017-01-13 11:33:55 +00:00
aaf549a469
Docs for Chunk
2017-01-06 17:57:00 +00:00
ad0553fbf8
Bump to API 3.0.0-ALPHA2 - READ DESCRIPTION!
...
Refactored level\format\generic\GenericChunk -> level\format\Chunk.
Re-added support for async chunk sending
Refactored most Level IO into new namespaces for more organisation
Removed LevelDB loader completely (will be re-added at a later date)
2017-01-06 17:13:45 +00:00