44 Commits

Author SHA1 Message Date
Dylan K. Taylor
4b9a142a5d Import global functions and constants for enhanced performance
This is better for performance because these then don't need to be reevaluated every time they are called.

When encountering an unqualified function or constant reference, PHP will first try to locate a symbol in the current namespace by that name, and then fall back to the global namespace.
This short-circuits the check, which has substantial performance effects in some cases - in particular, ord(), chr() and strlen() show ~1500x faster calls when they are fully qualified.

However, this doesn't mean that PM is getting a massive amount faster. In real world terms, this translates to about 10-15% performance improvement.
But before anyone gets excited, you should know that the CodeOptimizer in the PreProcessor repo has been applying fully-qualified symbol optimizations to Jenkins builds for years, which is one of the reasons why Jenkins builds have better performance than home-built or source installations.
We're choosing to do this for the sake of future SafePHP integration and also to be able to get rid of the buggy CodeOptimizer, so that phar and source are more consistent.
2019-01-04 20:43:15 +00:00
Dylan K. Taylor
b39bbffdc5 Entity: Moved and renamed entity\Item to entity\object\ItemEntity 2018-03-10 12:36:46 +00:00
Dylan K. Taylor
0410df77aa Drop experience on death 2018-01-04 19:33:37 +00:00
Dylan K. Taylor
8a90d159fe Cleanup unused imports 2017-12-10 12:09:46 +00:00
Dylan K. Taylor
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
Dylan K. Taylor
3ed8855894 fix drop chance of rotten flesh 2017-10-23 12:35:57 +01:00
Dylan K. Taylor
f25255e46c fix zombie drops 2017-10-23 12:24:34 +01:00
Dylan K. Taylor
9fb93985d6 Cleaned up Entity->spawnTo() 2017-10-19 16:13:09 +01:00
Dylan K. Taylor
2b22d5d8cc Added EntityIds interface with constants 2017-10-19 15:43:55 +01:00
Dylan K. Taylor
95752ef542 Merge branch 'master' into mcpe-1.2 2017-08-23 13:20:35 +01:00
Muqsit
a52fa93998 Remove Entity->length 2017-08-23 02:21:33 -04:00
Dylan K. Taylor
445a67954d Merge changes from master 2017-08-22 14:13:31 +01:00
Dylan K. Taylor
876659cc73 Item factory refactor and added capability to register custom items 2017-08-21 17:49:26 +01:00
Dylan K. Taylor
4f1302adf2 Merge branch 'master' into mcpe-1.2 2017-08-17 17:14:16 +01:00
Dylan K. Taylor
741394dab1 Typehinted up entity API
Did you guys think ALPHA7 changes were done?!
Sone stuff still needs some work, most notably data-properties can't be typed yet because they are just mushed into a couple of methods.
2017-08-16 19:04:30 +01:00
Dylan K. Taylor
9be1b929a5 Added PhpDoc for packet field types and changed float x,y,z to Vector3 2017-08-13 20:02:07 +01:00
Dylan K. Taylor
c3b8be3f60 and more typehints 2017-07-14 10:56:51 +01:00
Dylan K. Taylor
51b0673b4b Bite the bullet and enable strict types on everything 2017-06-07 12:53:16 +01:00
Dylan K. Taylor
0a4d62b405 Added encode and decode methods for more packets 2017-05-15 15:56:59 +01:00
Dylan K. Taylor
56990eb28b MCPE protocol gets its own namespace 2017-03-08 20:28:39 +00:00
Dylan K. Taylor
9004417456 Fixed file headers (#255) 2017-01-13 16:57:05 +00:00
SOF3
6fc435da0e
Imports rearrangement 2016-10-03 00:43:46 +08:00
Shoghi Cervantes
31ef7721b1 Removed network channels, bumped protocol 2015-08-12 14:59:48 +02:00
Shoghi Cervantes
0b176b3fe0 Implemented Channeled packet sending 2015-04-14 18:24:40 +02:00
Shoghi Cervantes
f2e2cec024 Removed entity mask 2015-04-09 14:23:37 +02:00
Shoghi Cervantes
69f841a00c
Added Squids with basic AI 2015-04-09 00:12:50 +02:00
Shoghi Cervantes
141c0a297e Skins, protocol changes, handle split packets 2015-04-08 13:00:15 +02:00
Shoghi Cervantes
b31604a536 Fixed data sending, more particles 2015-03-18 12:11:44 +01:00
Shoghi Cervantes
2ae80031f0
New implementation of sending/setting/getting entity data, added effect saving 2015-03-17 00:01:54 +01:00
Shoghi Cervantes
a98da3bab1 Renamed old getID() calls to getId() 2014-12-07 15:21:32 +01:00
Shoghi Cervantes
38089af098 Improved global entity motion encoding using per-player queues 2014-11-27 14:26:36 +01:00
Shoghi Cervantes
32dae93ef9 Removed unused imports 2014-11-04 12:08:24 +01:00
Shoghi Cervantes
8fd6582e74 Automatically set Entity / Tile entity save identifiers 2014-11-04 12:04:08 +01:00
Shoghi Cervantes
8601405a88 Fixed CPU leak 2014-10-31 21:07:00 +01:00
Shoghi Cervantes
72c09045d5 Fixed Zombie drops crash 2014-10-29 13:21:54 +01:00
Shoghi Cervantes
b6f7ee20fc Added Error -> Exception handling 2014-10-28 20:43:36 +01:00
Shoghi Cervantes
db82f76c11 Improved network packets allocation 2014-10-27 20:30:33 +01:00
Shoghi Cervantes
eab86f5f90 Replaced array() with [] 2014-08-28 17:04:22 +02:00
Shoghi Cervantes
90fa40de34 Added entity id names 2014-08-27 17:42:38 +02:00
Shoghi Cervantes
db7222976e Code cleanup 2014-08-21 17:26:41 +02:00
Shoghi Cervantes
5eee4f9771 Fixed AddEntityPacket, added base Arrow 2014-08-16 16:37:57 +02:00
Shoghi Cervantes
52d28795fa Added Villager spawn egg 2014-08-16 14:25:58 +02:00
Shoghi Cervantes
c675605014 Added item activation, zombie spawn egg 2014-08-16 14:01:07 +02:00
Shoghi Cervantes
dd17652aca Fixed wrong paths 2014-04-01 05:06:12 +02:00