635fb5dde4
Clean up ID flattening hacks
2019-02-21 10:38:29 +00:00
89fce7712a
Block: Clean up internal constructor inconsistencies
...
I don't dare look how big this commit is or how many bugs it introduced...
2019-02-20 19:21:51 +00:00
7b6d76871c
Block: add face and clickVector to onActivate() parameters, closes #267
...
this is an old old old issue, i don't know why it wasn't addressed sooner.
2019-02-13 14:29:59 +00:00
78a80a6958
Tighten validity checks for block metadata
...
This filters out over 200 invalid states which were previously considered just fine, including zero-width cakes, buttons with broken facing values, furnace/chest with crazy values, and more.
2018-12-28 14:33:09 +00:00
20aaa8373a
Sound no longer extends Vector3
2018-12-16 14:26:42 +00:00
39e383a175
Entity: add getHorizontalFacing(), clean up some boilerplate code
2018-12-05 20:27:43 +00:00
b2201c8c59
Further cleanup to general AABB handling
2018-11-24 19:17:03 +00:00
101de7adda
Update Math dependency, obliterate some nasty code from Block
2018-11-23 19:41:52 +00:00
74486d6880
Remove some state meta constants from API visibility
2018-09-30 14:43:55 +01:00
594a2041b6
Trapdoor: fix bad meth in comment
2018-09-28 16:44:30 +01:00
75f364fcf2
Level: Remove obsolete \$direct parameter from setBlock()
...
this parameter was previously used to send blocks with a different set of flags, immediately, to players. However, the flags have been demonstrated useless and the direct sending is pointless now since packets are buffered now per session, so we might as well take advantage of the batched block update sending.
2018-09-27 16:15:07 +01:00
56d9943b0d
Nuke Block->meta, split into variant and state properties, lots of cleanup
...
This is a major change to the way block metadata is handled within the PM core. This separates variant metadata (which really ought to be part of the ID) from state metadata, and in a couple of cases flattens separate states of blocks together.
The result of this is that invalid variants can be much more easily detected, and additionally state handling is much cleaner since meta is only needed at the serialize layer instead of throughout the code.
2018-09-21 19:28:10 +01:00
1bb4daa7d1
Fixed mess of rotations being inverted
2018-09-16 17:37:36 +01:00
f7f06c993d
Make block constructors not write to this->meta directly
2018-09-16 14:10:40 +01:00
c0962a47be
Block: Use parent::place() instead of setBlock() directly
2018-09-13 12:54:03 +01:00
f218868338
Separate facing/bearing handling from Vector3, deobfusticate a ton of @shoghicp old code
2018-09-05 19:56:14 +01:00
eddd626461
Trapdoor: fixed condition for side checking
2018-06-21 20:13:26 +01:00
99a0c2a188
Block: Make recalculation of BB non-dependent on block position
...
This now computes BBs relative to 0,0,0 and then offsets them as appropriate. This requires less boilerplate code and also furthers the goal of separating block types from instances.
2018-06-21 19:58:28 +01:00
55d0684565
Move block-breaking tool-type constants to a BlockToolType interface
2017-12-12 13:45:52 +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
d1db27016e
s/facePos/clickVector/
...
clickVector better describes this
2017-10-27 19:05:26 +01:00
d8b1757ebc
added some nullable and void typehints to Block API
2017-10-11 18:45:40 +01:00
6d5620606e
Block->place() parameter refactor to make things clearer
2017-08-26 14:41:49 +01:00
e1d894057c
Changed face position floating-point params to Vector3s
2017-08-20 10:23:34 +01:00
41c6cb6f97
Added Block->getVariantBitmask(0 to cut down on getDrops() boilerplate, fixed several blocks incorrectly retaining meta when broken
2017-08-18 19:49:28 +01:00
d8f0dd6db8
Changed Block->getDrops() to return Item[]
2017-08-18 11:21:33 +01:00
83af4dcd59
Block API typehints
2017-08-17 13:50:19 +01:00
6efa4343b1
Cleaned up fuel duration handling, fixed some fuel items not working in furnaces
2017-08-17 10:22:47 +01:00
6ae24c5c19
Removed unnecessary methods Block->canBeActivated() and Item->canBeActivated() (needless extra confusion)
2017-07-30 18:14:43 +01:00
51b0673b4b
Bite the bullet and enable strict types on everything
2017-06-07 12:53:16 +01:00
9004417456
Fixed file headers ( #255 )
2017-01-13 16:57:05 +00:00
6fc435da0e
Imports rearrangement
2016-10-03 00:43:46 +08:00
e2e31d345d
Allow vanilla trapdoor placement
2016-09-30 19:20:00 +01:00
e2f7d657e8
Fixed trapdoors
2016-02-22 15:32:07 +08:00
9501d03552
FIxed a bug No sound for TrapDoor
...
missing "use pocketmine\level\sound\DoorSound;"
2015-09-06 22:59:02 +09:00
a5efd0bdf8
Added opening sound
2015-08-11 11:52:08 +02:00
0380e9009a
Added block break tool type, fixed falling sand, fixed duplicated jungle leaves
2015-07-27 20:31:55 +02:00
26c9eed82e
Added all block hardness
2015-07-27 20:31:55 +02:00
747f7685e7
Fix formatting issues due to bad IDE settings
2014-12-07 16:30:04 +01:00
a98da3bab1
Renamed old getID() calls to getId()
2014-12-07 15:21:32 +01:00
af82d616c1
Block creating and property handling rewrite, part2
2014-12-07 02:20:26 +01:00
a0d4bff385
Block creating and property handling rewrite, part1
2014-12-07 01:53:27 +01:00
8601405a88
Fixed CPU leak
2014-10-31 21:07:00 +01:00
8f0527832f
Removed extra AxisAlignedBB generation on Door and Trapdoor
2014-10-30 22:15:19 +01:00
289bc56b4b
Blocks now save their bounding box, fixed entity block collision check
2014-10-29 15:43:23 +01:00
7abf52e615
Implemented Vector3 List and AxisAlignedBB Pool to decrease object allocation
2014-10-27 15:39:20 +01:00
1eec333501
Save block bounding boxes, improves block cache
2014-10-13 18:38:00 +02:00
ac4b4b08fd
Fixed Level::setBlock() old calls
2014-09-05 11:00:13 +02:00
7579cd763a
Added Trapdoor bounding box
2014-08-30 23:57:57 +02:00
eab86f5f90
Replaced array() with []
2014-08-28 17:04:22 +02:00