a5c260352d
Infect remaining places with PHP 7.1 nullable typehints
2019-02-22 12:16:45 +00:00
635fb5dde4
Clean up ID flattening hacks
2019-02-21 10:38:29 +00:00
a4c3ee20b2
Extract Fallable into trait + interface
...
Traits are inferior to components in pretty much every aspect imaginable :(
2019-02-19 09:58:10 +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
8dbeda69a7
Make use of Facing::rotateY() to reduce boilerplate
2018-12-07 10:49:12 +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
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
78aa1ee22e
Merge branch 'release/3.1'
2018-06-22 13:42:29 +01:00
641a5a5e23
fixed damaged anvils dropping the wrong items
...
they changed this in 1.2.13 to use regular masks instead of bitshifts. The item was fixed, but not the block.
2018-06-22 09:57:39 +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
ffe89f5e1b
fixed Anvils item/block different logic handling, close #1910
2018-02-16 11:07:50 +00:00
4f8e4f0522
Add EOF newlines where missing (bulk) ( #1836 )
...
This should solve issues with people making GitHub PRs and having the web editor messing things up. GitHub Web Editor sucks :(
2017-12-20 11:56:36 +00:00
6abf880e44
Block: Drop unnecessary parameters for ItemFactory::get()
2017-12-13 18:37:04 +00:00
b9b50dd5dc
Added Block->getDropsForCompatibleTool(), removed lots of boilerplate code from subclasses
...
The function name is a little long-winded, but that can always be refactored later if needed. This provides a way for blocks requiring specific tools to override drops with non-standard stuff without needing to worry about what tool type was used.
It's also possible that passing the Item used here is actually entirely redundant, but again that can be fixed later.
2017-12-12 20:02:50 +00:00
da3640357c
Rename Block->canBeBrokenWith() to isCompatibleWithTool() and add documentation
...
This name better describes it. "can be broken with" implies that items which this returns false for cannot destroy the block at all, which is incorrect. What this actually returns is whether the item is the best tool to use to break the block.
2017-12-12 19:51:31 +00:00
99fe63b2a3
Added harvest level properties to applicable blocks
...
this fixes block-breaking animations with wrong tools, and also finally resolves the long-standing hierarchy problem in Stair.
2017-12-12 13:54:17 +00:00
55d0684565
Move block-breaking tool-type constants to a BlockToolType interface
2017-12-12 13:45:52 +00:00
2088a43c56
Refactored tool hierarchy
2017-12-12 13:45:51 +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
401e33dd85
fix anvil bounding box
2017-10-13 11:18:19 +01:00
e3567faa94
Anvils aren't non-solid, they are transparent
...
solid and transparent are not mutually exclusive!
2017-10-13 10:22:22 +01:00
6d5620606e
Block->place() parameter refactor to make things clearer
2017-08-26 14:41:49 +01:00
8ce833bf74
Stripped redundant trailing commas
2017-08-25 12:41:49 +01:00
876659cc73
Item factory refactor and added capability to register custom items
2017-08-21 17:49:26 +01:00
eeedcf7332
Refactor Block->getResistance() -> Block->getBlastResistance() and added some documentation
2017-08-20 13:25:43 +01:00
e1d894057c
Changed face position floating-point params to Vector3s
2017-08-20 10:23:34 +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
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
d696049a0a
Fix anvil rotation and variant drops
2016-11-09 20:28:59 +00:00
42e8120961
Remove creative container open checks (lines up with 0.14)
2016-09-28 13:59:53 +01:00
94b79ac28a
Tool tier added to getDrops
2015-10-11 00:52:44 +02:00
d1bfb304cb
Added some extra tile entities, fake enchanting table
2015-08-07 12:07:39 +02:00
d0bfc826ea
Updated protocol details, anvil menu creation
2015-08-06 11:51:41 +02:00
7fd053fb09
More changes! Alsp added Anvil block and BinaryStream
2015-08-03 18:04:13 +02:00