1ac255f955
fix some formatting issues
2019-03-21 15:46:07 +00:00
2966e87aae
BlockFactory: Regenerate TODO list
2019-03-21 14:33:56 +00:00
5830ca958b
Further out-phasing of legacy ID/meta
...
this paves the way for making internal IDs fully dynamic.
2019-03-17 16:01:04 +00:00
01904adf49
Improve enum implementations, move some components to traits
...
The reason this uses a trait is because `self` refers to the including class in a trait, which offers a small amount of automatic type safety.
If we had templates or generics, this would be a generic class instead.
2019-03-13 15:10:31 +00:00
7f4b76aa86
Implemented blue ice
2019-03-12 19:38:03 +00:00
48427290c9
Regenerated BlockFactory TODOs
2019-03-10 19:53:55 +00:00
437750785f
Implemented barrier block
2019-03-10 19:53:55 +00:00
c2a069afd3
Implemented a bunch of new wood blocks
2019-03-10 19:53:24 +00:00
6fe366e1ac
Added some missing block properties
2019-03-09 16:49:37 +00:00
8f1bc5d497
Flatten wall_banner and wall_sign into single blocks ( #2798 )
...
This comes with some problems, but the problems are more bearable than the previous code.
2019-03-08 16:37:26 +00:00
2b6a62be77
Fixed BlockFactory corruption with signs and banners
2019-03-05 15:32:06 +00:00
5017e61cb2
ItemFrame: fixed cloning null
2019-03-03 21:12:52 +00:00
6c8fa8ae28
More nullable and void typehints
2019-03-02 10:29:11 +00:00
418d0f12fb
Slab: placement logic clean up
...
past me was full of shit, because blockReplace is the same as blockClicked when we click a single slab top/bottom to make a double slab, and the logic is identical to the below block with that in mind.
2019-03-01 19:15:24 +00:00
d961b272c7
Remove Tool <-> Block circular dependency in efficiency calculation
2019-03-01 18:18:56 +00:00
e9125af51d
Revamp Banner API (still rather ghetto)
...
this needs more work, like signs do.
2019-03-01 17:57:07 +00:00
80ac0180b3
Remove redundant isAffectedBySilkTouch() overrides
...
this was needed previously to prevent dropping blockitems when these blocks were destroyed. Now the item form is always yielded instead.
2019-03-01 13:34:32 +00:00
741d061415
NoteBlock: added //TODO
2019-02-28 19:59:33 +00:00
943906cc6b
Partial comparator implementation
...
this supports placement, toggling compare/subtract mode, simple stuff. No redstone functionality yet.
This is needed for blockstate mapping in blockfactory.
2019-02-28 19:26:47 +00:00
7b23baa020
FlowerPot: yield contained plant when block-picking
2019-02-28 17:49:48 +00:00
97a1d997e8
ItemFrame: yield framed item when block-picking, fixes [1] in #2706
2019-02-28 17:47:32 +00:00
d679fb7546
Block: Rename onActivate() -> onInteract()
2019-02-28 17:35:30 +00:00
08e799c35a
Once again... add a missing file...
2019-02-28 17:14:04 +00:00
5cca4b5e31
Revamp Sign API, flatten API into blocks
2019-02-28 17:10:37 +00:00
fb02071a9d
Traits suck. Fixed missed getDamage() from 9ad0ea85c7
2019-02-27 16:50:51 +00:00
08673172c7
Grass: Avoid usage of meta
2019-02-27 13:03:23 +00:00
9ad0ea85c7
Rename two misleadingly-named functions
2019-02-27 12:59:12 +00:00
440dd21550
Merge branch '3.6'
2019-02-26 19:59:24 +00:00
6c92a2e88b
Ladder: be more strict about resetting fall distance
...
closes #2790
2019-02-26 19:54:57 +00:00
97deadc59f
PackedIce: fixed dropping without silk touch, closes #2789
2019-02-26 19:48:18 +00:00
ceaf969203
EnderChest: fix hierarchy
2019-02-26 19:41:56 +00:00
cb91afcc00
Added SkullType enum, some cleanup to skull handling
...
this is still more ugly than I'd like it to be because of the way the blockfactory currently works.
2019-02-26 18:27:30 +00:00
edf4a719d5
DyeColor: add RGB colour values
2019-02-26 17:16:35 +00:00
9afcd72fb6
Flatten FlowerPot tile into its block (mostly)
2019-02-26 16:31:38 +00:00
53af7f5da8
Implemented dragon egg
2019-02-26 15:35:37 +00:00
2d51622b12
Implemented frosted ice
2019-02-26 15:34:48 +00:00
6124f93cb4
Player: Clean up item frame drop-item hack
...
This is now re-routed through a newly-created attack-block handler.
Closes #339
2019-02-25 18:40:04 +00:00
fb378d9091
BlockFactory: fixed auto complete
2019-02-24 18:41:12 +00:00
0f7f5362b8
Revert "Block: Get rid of state bitmasks"
...
This reverts commit b7b05e729e
.
Apparently this was premature, because we still need these things to deal with default state remapping.
2019-02-24 18:30:18 +00:00
b7b05e729e
Block: Get rid of state bitmasks
...
This story dates back to the days when getVariantBitmask() was introduced. The purpose of this function was to allow the variant info to be extracted from the metadata, for use with item drops. This was later changed to state bitmask for reasons I don't clearly recall.
In the great 4.0 refactor, we now store variant magic numbers separately, so we don't need any generic bitmask to split up variant and state information anymore. Variant is now only ever serialized and never deserialized. The same thing goes for blockIDs. States are read from the world by matching the full stateID against a table of prefilled known blocks, so the variant doesn't need to be deserialized - only the state does, and the state metadata readers already do bit fuckery by themselves and don't need this mask - notice how little actual changes were required to get rid of this?
2019-02-24 14:42:53 +00:00
6edd4fd9c7
BlockFactory: added getAllKnownStates()
2019-02-24 13:40:59 +00:00
73305a7425
oops, formatting issue
2019-02-24 13:22:11 +00:00
899081e1b9
Level: fixed randomTickBlocks, also delete some useless code
...
the randomTickBlocks thing is populated with state IDs anyway, not variants...
2019-02-24 13:10:45 +00:00
369a1e1472
Tripwire: fixed block picking
2019-02-24 12:41:44 +00:00
832ad0501a
Tripwire: added missing flag
...
it's unclear what the purpose of this flag is. It appears to always be set on placement and is never changed at any other time. The result is that the hitbox becomes larger when it is set.
2019-02-24 12:19:15 +00:00
97687f2236
Dye, banner and bed items now store DyeColor objects instead of using magic meta values
2019-02-24 10:48:40 +00:00
0bd1c1529e
Block: Rename getItem() to asItem()
...
this has clearer meaning and is less likely to collide with other things.
2019-02-24 10:23:40 +00:00
ff35736bf9
ItemFrame: added ROTATIONS constant
2019-02-23 18:27:47 +00:00
998dcb421e
Flatten Item Frame implementation into its block (mostly)
...
This exposes nice API on the ItemFrame class, while keeping the tile bullshit out of sight so that we can remove it later on.
2019-02-23 18:19:31 +00:00
a5c260352d
Infect remaining places with PHP 7.1 nullable typehints
2019-02-22 12:16:45 +00:00