Dylan K. Taylor
7b7917939a
Cleaned up Container lock handling
2018-06-03 13:42:04 +01:00
Dylan K. Taylor
6aaaaefd2f
Make tiles less dependent on runtime NBT, use properties instead
...
This will ultimately culminate in the complete removal of runtime NBT, so plugins should also follow these steps if they have custom data.
2018-06-03 12:50:16 +01:00
Dylan K. Taylor
1bb0337420
Tile: Improved Nameable and NameableTrait to cut down code duplication
2018-06-02 15:17:32 +01:00
Dylan K. Taylor
b6b0bbde18
Level: remove nonsensical code from generateChunkCallback()
...
it's impossible for this to be null when we just set it to a Chunk object. It's assigned directly to the chunk index.
2018-06-01 19:47:47 +01:00
Dylan K. Taylor
5d07f66d86
Travis: Limit worker count to 4
...
By default it starts 30 workers on Travis because there are 32 logical cores available. This is ridiculously excessive and pollutes the log with debug spam.
2018-06-01 18:58:30 +01:00
Dylan K. Taylor
ec28612a12
BlockFactory: partial revert of 515e4aabc45c057e215e5f695a94a7bd7b0e1094
...
it's necessary to register these to fill the static property arrays. Someday these won't be necessary I hope...
2018-06-01 17:08:58 +01:00
Dylan K. Taylor
6047810113
Level: remove useless null checks for fastDeserialize() returns
2018-06-01 17:02:29 +01:00
Dylan K. Taylor
d535fe20a3
BlockFactory: split up static ID mapping registration from other things
...
this is actually HUGELY WASTEFUL on memory. An average of 3 MB is wasted per AsyncWorker on this.
2018-06-01 10:28:53 +01:00
Dylan K. Taylor
515e4aabc4
BlockFactory: minor reduction in memory usage
...
removing useless array and don't pre-populate with UnknownBlock objects
2018-06-01 10:15:20 +01:00
Dylan K. Taylor
f27c6fcf70
ResourcePack: slightly better handling of bad configs
2018-05-31 18:30:21 +01:00
Dylan K. Taylor
7864a315f6
ResourcePackManager: cleaned up pack loading error handling
2018-05-31 17:58:47 +01:00
Dylan K. Taylor
1b4723d816
AsyncWorker: don't require an attachable logger
2018-05-31 10:34:42 +01:00
Dylan K. Taylor
c493d0e6ac
Level: Stop unnecessarily initializing the generator on the main thread
...
this is just slowing down startup times for no good reason.
2018-05-31 10:22:44 +01:00
Dylan K. Taylor
7fce48d38c
AsyncPool: Unstack tasks from workers before entering the below loop
2018-05-30 11:17:16 +01:00
Dylan K. Taylor
b7ca045c51
updated TesterPlugin submodule
2018-05-29 20:11:29 +01:00
Dylan K. Taylor
81957d133d
AsyncTask: Rewrite how thread-local storage works, now non-dependent on Server or ServerScheduler
...
this implementation was god-awful bad and it was entirely avoidable to make it this complicated.
This utilizes the fact that pthreads treats static properties as thread-local. AsyncTask local storage now utilizes a \SplObjectStorage stored in an AsyncTask private static field.
2018-05-29 19:41:00 +01:00
Dylan K. Taylor
299e4c8a85
ServerScheduler: remove nonsensical condition in addTask()
...
now that return type declarations exist, it's not possible for this to return a non-Plugin instance.
2018-05-29 18:17:49 +01:00
Dylan K. Taylor
0a50b8cb9b
Removed imports left over from 4f8f334436c69336d1bc2811717983544eda41e8
2018-05-29 11:42:12 +01:00
Dylan K. Taylor
6d53350291
Level: Moved LightPopulationTask out of generator namespace
2018-05-29 11:20:27 +01:00
Dylan K. Taylor
ad61d70eee
Level: added getBiome()
...
this will be needed for weather impl, amongst other things.
2018-05-29 11:10:06 +01:00
Dylan K. Taylor
353a1d69db
Level: move getHeightMap() to be more consistent
2018-05-29 11:10:06 +01:00
Dylan K. Taylor
1d8b77f16e
README: remove unnecessary and outdated section
...
Code dependencies can be seen in the code and in the composer.json file. Besides, there are additional third-party libraries used by PocketMine-MP now which are not listed in this section, and I don't plan to maintain it...
2018-05-29 10:42:59 +01:00
Dylan K. Taylor
e3d2fa10a5
Item: added count parameter to pop()
...
this allows popping an arbitrary number of items from the stack, instead of just 1.
2018-05-29 10:21:04 +01:00
Dylan K. Taylor
ad15ab5b42
EnchantCommand: use Item->isNull() instead of maths on ID
2018-05-28 19:45:37 +01:00
Dylan K. Taylor
b003295d01
Player: reduce duplicated code in PlayerActionPacket handler
2018-05-28 19:38:29 +01:00
Dylan K. Taylor
4f8f334436
Replaced usages of Math::floorFloat() with (int) floor() and Math::ceilFloat() with (int) ceil()
...
Once upon a time, these userland functions were faster than calling builtins, but not anymore. According to my test the Math functions are twice slower in PHP 7.2 with typehints and 50% slower without typehints.
Inlining is slightly faster than using builtins, but the difference is very small - not worth making the code look any more ugly than it does already.
2018-05-28 18:54:35 +01:00
Dylan K. Taylor
71fdd59c4c
Level: fine-tuned getCollisionCubes() a little bit
...
since we're getting the BBs anyway, what's the point in delegating this job to the block?
2018-05-28 17:41:12 +01:00
Dylan K. Taylor
0a9ed059d6
Level: fixed logic of getCollisionBlocks() to match getCollisionCubes()
2018-05-28 17:40:05 +01:00
Dylan K. Taylor
74c0863905
Living: fixed preventing effect expiry using events, closes #2208
2018-05-28 17:14:18 +01:00
Dylan K. Taylor
87ff1c0382
Player: don't catch Throwable on transaction creation failure
2018-05-28 17:00:59 +01:00
Dylan K. Taylor
2eaba7c936
Timings: added timings for Player->checkNearEntities()
2018-05-28 16:27:03 +01:00
Dylan K. Taylor
3ee6bfca2a
Updated Math dependency
2018-05-28 14:04:17 +01:00
Dylan K. Taylor
63ab27550a
Level: Use bitshifts instead of division in some cases
2018-05-28 14:02:32 +01:00
Dylan K. Taylor
d612988882
Level: fixed more off-by-one errors
...
these are the same crap as the previous commit, but with whole chunks instead of blocks.
2018-05-28 14:00:00 +01:00
Dylan K. Taylor
c9a0c381b1
Level: fixed logical errors in getCollisionBlocks() and getCollisionCubes()
...
This is the same bug that Entity->getBlocksAround() had, except this actually checks for BB intersections. What this means is that as a result of the bug, one extra layer of blocks is unnecessarily checked on the max sides of the BB.
For example:
Assume you have a BB with maxY -5.5
You're definitely colliding with block -6 (because you're inside it) and you want to check an extra block in case you hit something weird like a fence.
So you want to check _at most_ up to block -5 (inclusive).
Following this maths:
-5.5 + 1 = -4.5
ceil(-4.5) = -4
This causes us to check block -4 unnecessarily. This may be a performance waste - depending on the BB size it could be proportionally a lot of blocks getting unnecessarily checked. This has not been benchmarked.
2018-05-28 12:37:17 +01:00
Dylan K. Taylor
982444949c
Fixed typo in AsyncPool
...
asychronous -> asynchronous
2018-05-26 16:30:49 +01:00
Dylan K. Taylor
8cf0fc63d8
Player: spawn at safe-spawn on level not found, instead of real spawn
2018-05-26 12:20:58 +01:00
Dylan K. Taylor
c18ba38b74
Entity: avoid astonishing behaviour with motion vector modifications
2018-05-26 10:40:04 +01:00
Dylan K. Taylor
3a1df1d99e
LevelSoundEventPacket: added STOP_RECORD constant
...
this isn't actually a sound and as such doesn't have a stringy ID, so the script didn't see it.
2018-05-25 17:56:05 +01:00
Dylan K. Taylor
8ccd13319c
LevelSoundEventPacket: update constants
...
now with whitespace gaps generated because apparently some are missing... ugh!
2018-05-25 17:27:31 +01:00
Dylan K. Taylor
c513d355cb
Updated Snooze dependency
2018-05-25 13:52:12 +01:00
Dylan K. Taylor
02b53785be
Entity: added some new ID constants
2018-05-24 12:39:44 +01:00
Dylan K. Taylor
9dd0ee7f05
Entity: replaced motion and lastMotion fields with vectors
2018-05-24 12:11:41 +01:00
Dylan K. Taylor
595f1f58da
Living: added knockback resistance attribute checks
2018-05-24 11:49:18 +01:00
Dylan K. Taylor
509e8c5f6d
ItemFactory: register some easy items
...
these are items that do nothing and/or are only used for crafting. As such they are simple to add.
Others will be added later on, but others require extra work and/or reverse engineering which I don't have time for now.
2018-05-23 19:48:30 +01:00
Dylan K. Taylor
263cd900a8
Enchantment: update item type flags
2018-05-23 17:39:52 +01:00
Dylan K. Taylor
164ce76ff5
Enchantment: apply typehints to PHP 7.2 standards
2018-05-23 17:28:40 +01:00
Dylan K. Taylor
fbf760bafe
Enchantment: implemented Vanishing
2018-05-23 17:23:56 +01:00
Dylan K. Taylor
2c1afe5f2c
ItemFactory: generate some TODOs
2018-05-23 13:42:19 +01:00
Dylan K. Taylor
b109b457dc
Item: added some new constants
2018-05-23 13:35:15 +01:00