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
478a131aa5
Flat: separate logic of parsing preset and generating base chunk
...
now always generates the base chunk on init, because the generator won't be created unless there is generation to be done.
2018-07-14 11:51:49 +01:00
8fca7cc68d
Apply some typehints to generators
2018-06-07 20:22:35 +01:00
e3c97d7d5e
Flat: clean up more garbage
2018-06-07 20:18:04 +01:00
172abef2a7
Flat: clean up generation of base chunk
2018-06-07 20:11:29 +01:00
709abb02e6
Generator: remove more dead incomplete code
...
again, this can be added when and if it's actually implemented.
2018-06-07 19:54:51 +01:00
3c9af5cd6d
Generator: small reduction of code duplication
2018-06-07 19:49:51 +01:00
876659cc73
Item factory refactor and added capability to register custom items
2017-08-21 17:49:26 +01:00
9e54980ded
Fixed some usages of Block::get()
2017-08-21 12:58:35 +01:00
0e24596aed
Changed block construction calls to Block::get()
2017-08-19 13:46:17 +01:00
87c16dab23
Don't allocate subs that aren't going to be modified
2017-07-28 11:26:15 +01:00
c1542d853f
Improved flat world initial chunk generation speed by ~50%
2017-07-27 21:57:28 +01:00
ab3b50f062
Stop it PhpStorm, you're making me look bad
2017-07-15 12:15:15 +01:00
dbb92096e4
More typehints, documentation fixes and static analysis cleanup
2017-07-15 12:12:06 +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
c9fdb66c78
Made flat-world generation faster and less stupid
...
No need to set blocks which are obviously already going to be air >_>
2017-07-10 18:14:13 +01:00
4a7abb7033
Fix flat worlds crashing when generating
2017-06-08 13:47:13 +01:00
51b0673b4b
Bite the bullet and enable strict types on everything
2017-06-07 12:53:16 +01:00
0114cb8399
Better vanilla layers support (no meta, MCPE doesn't support it)
2017-01-15 17:26:21 +00:00
9004417456
Fixed file headers ( #255 )
2017-01-13 16:57:05 +00:00
598e7aac8f
More PhpStorm inspections, import cleanup
2017-01-04 14:55:11 +00:00
aafe0c4f69
Remove biome colours and fix biome id arrays
2016-12-04 15:12:23 +00:00
ce289cbe25
Merge branch 'master' into 0.17-chunks
2016-12-01 17:50:12 +00:00
d6629d6843
More ?? ( #131 )
...
* More ??
* fix undefined variable
2016-11-30 10:07:37 +00:00
4c49db6036
New generic in-memory chunk format, fixed 0.17.0.1 chunk loading
...
Terrible performance, needs profiling. TODO: fix this.
2016-11-27 21:57:59 +00:00
58ff381557
PhpStorm automated formatting ( #11 )
...
* PhpStorm reformatting
* Tuned PhpStorm reformatting
* Improved ItemIds and BlockIds formatting
* Tuned more PhpStorm reformatting
* Improved string concatenation
2016-10-03 19:05:48 +08:00
cbed8d40ff
Fix a mispelled "new" call
2015-11-05 17:11:42 -06:00
b1edfd7631
Improved Falling blocks physics, entity kill, chunk unserialize, fixed flat generator color, fixed nbt tags __toString(), fixed explosion offsets, fixed increased player interaction range in creative
2015-05-13 12:18:59 +02:00
ed2ba70a29
Merge remote-tracking branch 'origin/master' into mcpe-0.11
2015-03-26 01:32:44 +01:00
c68cd2c496
Cloned the initial empty chunk
2015-03-23 10:28:29 +01:00
add380c7ed
A few fixes!
2015-03-21 00:45:29 +01:00
1d1a8a316e
Take-2: Delay "parsePreset" until we have to really generate a block
2015-03-20 08:13:55 +01:00
8ae9cd4eaf
Clone initial chunk in Flat.php
...
The Flat generator destroys Chunk at 0,0.
What happens is that it request the level to read Chunk at 0,0. It then uses that chunk to create the template chunk. However this obliterates whatever was in Chunk at 0,0.
Added a line to "clone" this chunk, so when parsePreset generates the template chunk, all this goes to a copy rather than the original file chunk 0,0.
2015-03-19 15:41:26 +01:00
d5601b0c9f
Generator works!
2015-03-15 16:40:18 +01:00
4b73dbd9f8
Fixed Flat generator on existing chunks, region issues
2015-01-06 18:46:18 +01:00
04bdb13103
Improved move offset check
2015-01-02 19:14:18 +01:00
a98da3bab1
Renamed old getID() calls to getId()
2014-12-07 15:21:32 +01:00
7923c40b33
Removed as Vector3 on Flat generator
2014-09-12 00:12:52 +02:00
eab86f5f90
Replaced array() with []
2014-08-28 17:04:22 +02:00
db7222976e
Code cleanup
2014-08-21 17:26:41 +02:00
cb4a970631
Tuned generator to use a better way to process chunks, closes #1807 #1794 #1740 #1741 #1685
2014-07-31 19:27:01 +02:00
95b5979351
Removed SimpleChunk from generator, core, use binary representation of chunks
2014-07-31 14:28:17 +02:00
109b6dbf44
Updated to v0.9.0 build 2, now using Anvil worlds
2014-06-11 00:06:46 +02:00
fa50cbf4b3
Working Threaded Generation
2014-06-10 20:45:09 +02:00
392eb74901
Merge branch 'Level-Rewrite' into 0.9.0
2014-06-10 16:08:34 +02:00
5f163133ee
Added grass color test
2014-06-10 15:24:33 +02:00
115b4cf4ac
Updated Levels :D
2014-06-09 11:35:52 +02:00
6cbd39de9b
Added Inventory interfaces and types, updated long array() to []
2014-05-22 18:59:16 +02:00
0be679c9d5
Updated method names: getMetadata() & setMetadata() to getDamage() & setDamage() on Block and Item classes
2014-05-22 18:37:28 +02:00