9403 Commits

Author SHA1 Message Date
Dylan K. Taylor
5cca4b5e31 Revamp Sign API, flatten API into blocks 2019-02-28 17:10:37 +00:00
Dylan K. Taylor
f680a239f7 NetworkSession: some exception handling cleanup 2019-02-28 16:36:03 +00:00
Dylan K. Taylor
13b9fd7b66 RakLibInterface: Add error ID to make logs searchable when players report legitimate issues 2019-02-28 16:31:14 +00:00
Dylan K. Taylor
d528fdddfa DataPacket: Remove useless abstract function
this is declared in the Packet interface, so it doesn't need to be here anymore.
2019-02-28 16:20:58 +00:00
Dylan K. Taylor
fb02071a9d Traits suck. Fixed missed getDamage() from 9ad0ea85c7caeea065ccfadf3bd12bd97cc5f0b6 2019-02-27 16:50:51 +00:00
Dylan K. Taylor
08673172c7 Grass: Avoid usage of meta 2019-02-27 13:03:23 +00:00
Dylan K. Taylor
9ad0ea85c7 Rename two misleadingly-named functions 2019-02-27 12:59:12 +00:00
Dylan K. Taylor
ba616ed8a7 Player: Don't rely on magic numbers for gamemodes 2019-02-27 11:01:26 +00:00
Dylan K. Taylor
31336a0d09 missed one 2019-02-27 10:37:13 +00:00
Dylan K. Taylor
2d8480d801 Inventory: remove a bunch of crap from interface
some of these (notably the on* methods) are internal and shouldn't be exposed via interface (same crap as Plugin->onEnable() onDisable() etc) and the rest of the stuff is entirely unused.
2019-02-27 10:36:05 +00:00
Dylan K. Taylor
9b3230aa9c Merge branch '3.6' 2019-02-27 10:19:58 +00:00
Dylan K. Taylor
20b4723728 Player: fixed held slot being out of sync after dying, closes #2788
it appears this premature optimization dates back to the days when PlayerHotbarPacket was not useless.
2019-02-27 09:26:56 +00:00
Dylan K. Taylor
d1ced0ffc6 Player: fixed XP not dropping on death 2019-02-27 09:22:52 +00:00
Dylan K. Taylor
440dd21550 Merge branch '3.6' 2019-02-26 19:59:24 +00:00
Dylan K. Taylor
2164dbae67 Fixed reloaded arrows not despawning, closes #2781 2019-02-26 19:58:21 +00:00
Dylan K. Taylor
6c92a2e88b Ladder: be more strict about resetting fall distance
closes #2790
2019-02-26 19:54:57 +00:00
Dylan K. Taylor
97deadc59f PackedIce: fixed dropping without silk touch, closes #2789 2019-02-26 19:48:18 +00:00
Dylan K. Taylor
ceaf969203 EnderChest: fix hierarchy 2019-02-26 19:41:56 +00:00
Dylan K. Taylor
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
Dylan K. Taylor
edf4a719d5 DyeColor: add RGB colour values 2019-02-26 17:16:35 +00:00
Dylan K. Taylor
202aef9846 fix failing tests 2019-02-26 16:35:33 +00:00
Dylan K. Taylor
d7e73705c2 consistency check regen script now emits which states were added/removed 2019-02-26 16:35:14 +00:00
Dylan K. Taylor
9afcd72fb6 Flatten FlowerPot tile into its block (mostly) 2019-02-26 16:31:38 +00:00
Dylan K. Taylor
53af7f5da8 Implemented dragon egg 2019-02-26 15:35:37 +00:00
Dylan K. Taylor
2d51622b12 Implemented frosted ice 2019-02-26 15:34:48 +00:00
Dylan K. Taylor
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
Dylan K. Taylor
fb378d9091 BlockFactory: fixed auto complete 2019-02-24 18:41:12 +00:00
Dylan K. Taylor
0f7f5362b8 Revert "Block: Get rid of state bitmasks"
This reverts commit b7b05e729e4fcfbe74786342882d011f004658fa.

Apparently this was premature, because we still need these things to deal with default state remapping.
2019-02-24 18:30:18 +00:00
Dylan K. Taylor
6cb263fcca BlockFactory: enforce stricter checks
this can help catch out variant-related bugs.
2019-02-24 17:59:09 +00:00
Dylan K. Taylor
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
Dylan K. Taylor
023fecabac Added an annoying consistency check for BlockFactory
This test is intended to enforce that the BlockFactory always has the same blocks in it from one commit to the next. Since there are a lot of changes going on right now around this, it's important that this is checked because bugs can go under the radar when large changes are happening.

The consistency check will need to be regenerated whenever a new block is registered, new states are found or when things are removed.
2019-02-24 13:56:55 +00:00
Dylan K. Taylor
6edd4fd9c7 BlockFactory: added getAllKnownStates() 2019-02-24 13:40:59 +00:00
Dylan K. Taylor
73305a7425 oops, formatting issue 2019-02-24 13:22:11 +00:00
Dylan K. Taylor
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
Dylan K. Taylor
369a1e1472 Tripwire: fixed block picking 2019-02-24 12:41:44 +00:00
Dylan K. Taylor
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
Dylan K. Taylor
a3907377f5 Merge branch '3.6' 2019-02-24 12:14:40 +00:00
Dylan K. Taylor
0c3b136a8d Player: fixed removeWindow() sometimes removing GUI / crashing clients 2019-02-24 12:14:19 +00:00
Dylan K. Taylor
97687f2236 Dye, banner and bed items now store DyeColor objects instead of using magic meta values 2019-02-24 10:48:40 +00:00
Dylan K. Taylor
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
Dylan K. Taylor
ff35736bf9 ItemFrame: added ROTATIONS constant 2019-02-23 18:27:47 +00:00
Dylan K. Taylor
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
Dylan K. Taylor
878c704597 Remove another dead function 2019-02-23 17:15:50 +00:00
Dylan K. Taylor
49f9605620 Level: Allow tiles to be sent with regular block updates 2019-02-23 17:01:59 +00:00
Dylan K. Taylor
eadb1d310e Level->sendBlocks() now syncs tiles 2019-02-23 16:53:29 +00:00
Dylan K. Taylor
e1ef52c7c3 TileFactory: remove dead function 2019-02-23 15:57:53 +00:00
Dylan K. Taylor
991483938c SubChunk: remove legacy crap 2019-02-23 13:18:37 +00:00
Dylan K. Taylor
66a1b35767 Merge branch '3.6' 2019-02-23 11:05:23 +00:00
Dylan K. Taylor
79b7e08e60 Silence NetworkStackLatencyPacket spam from dev builds 2019-02-23 11:03:50 +00:00
Dylan K. Taylor
0daf695825 Merge branch '3.6' 2019-02-23 10:51:28 +00:00