6be92ea6f7
fix CS
2022-07-05 14:14:27 +01:00
325f1cf82e
Generalize runtime block data serialization
...
we want to reuse this code for item type data
2022-07-05 14:13:37 +01:00
0a23e91329
Rename BlockFactory::fromFullBlock() -> BlockFactory::fromStateId()
2022-07-05 13:46:19 +01:00
a059d03b37
Remove BlockFactory::get(), optimise fromFullBlock() pathway
2022-07-05 13:43:26 +01:00
bd773c2f84
VanillaBlocks: use BlockFactory::fromTypeId()
2022-07-05 13:40:07 +01:00
d9544b5d0e
Added soul fire
2022-07-04 22:32:35 +01:00
cbebb70af6
Planks: remove useless constructor
2022-07-03 19:58:04 +01:00
6604d22ceb
BlockLegacyIdHelper: clean up code
2022-07-03 19:53:34 +01:00
dd615c775d
Added various blocks made from mangrove, crimson and warped wood
2022-07-03 19:01:34 +01:00
33eef99d1f
Added axis support for all-sided logs
2022-07-03 17:27:25 +01:00
3e7d34c8ad
BlockFactory: remove TODO list
...
we're tracking this somewhere else now
2022-07-03 14:33:42 +01:00
e302e5a85f
Implemented chiseled deepslate, chiseled nether brick and cracked nether brick
2022-07-03 03:04:06 +01:00
4acf7aadbd
Added quartz bricks
2022-07-03 02:11:50 +01:00
a3016abf53
Added polished deepslate block/slab/stair/wall
2022-07-03 02:00:43 +01:00
89632f3514
Added deepslate, cobbled/tiles/bricks walls/slabs/stairs/cubes
2022-07-03 01:43:27 +01:00
c7ba791ff8
Block: remove obsolete note from Block::isSameType()
2022-07-03 00:49:57 +01:00
db9c7de35c
Remove obsolete shim items for Bed and Skull
...
now that the colour and skull type are included in the block type data, it's no longer necessary to maintain shim items to retain this information in the item data.
2022-07-03 00:47:42 +01:00
3f937605ac
Added calcite
2022-07-02 23:54:51 +01:00
0e0b858b69
Added raw copper, gold and iron blocks
2022-07-02 23:17:10 +01:00
0d0296d535
Light block brightness can be changed by right-clicking on it
2022-07-02 22:48:10 +01:00
2a0fade893
Implemented Light blocks
2022-07-02 22:39:11 +01:00
30149c6ed4
wtf happened here ...
2022-07-02 22:06:47 +01:00
172214386a
Added a batch of simple blocks from 1.16 and 1.17
2022-07-02 21:53:59 +01:00
ff90c83d66
Implemented log stripping via axe right-click
2022-07-02 19:16:15 +01:00
248eacd042
GlazedTerracotta: make colour dynamic, like all other coloured blocks
...
made possible by stripping out legacy mess
2022-07-02 18:30:23 +01:00
7430e1fbc0
Coral: remove obsolete workaround
2022-07-02 17:51:48 +01:00
b125d4d25f
Strip all remaining legacy item ID/meta stuff from blocks
...
the doors are now finally open, we can:
- make all the wood types dynamic
- fix glazed terracotta
- add all the new blocks
LET'S GOOOOOOOOOOOO
2022-07-02 17:48:11 +01:00
323c563684
Break Block's dependence on ItemFactory, and item legacy IDs
...
let's GOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
2022-07-02 17:29:28 +01:00
9740891a2f
Move BlockLegacyMetadata to pocketmine\data package
2022-07-02 17:01:10 +01:00
3792ef5a50
Move blockstate data runtime serialization to a more appropriate package
2022-07-02 16:48:41 +01:00
ba079bd9aa
Avoid implicit ItemFactory reliance for blocks with special items
...
this hasn't yet been addressed for signs, since they are a bit of a pain in the ass.
2022-06-30 20:00:41 +01:00
4bd087fc83
Fix CS
2022-06-30 19:09:49 +01:00
af8f2c47f3
ShulkerBoxInventory: avoid usage of legacy ItemIds
2022-06-30 19:03:07 +01:00
2a0b500010
Block: Separate encoding of type and state data
...
the terminology of this needs improvement, but...
the basic concept here is that 'type' data will persist on an itemstack, while 'state' data will not.
Type data consists of things like:
- Colour
- Coral type
- Wet/dry (sponges)
- Live/dead (coral)
- Wood type
State data consists of things like:
- Facing
- Axis
- Powered/unpowered
- Open/closed
In the past, with the old system, this information was separated by way of getStateBitmask(). This solution was fraught with problems, but achieved the basic goal: removing unwanted block properties from items.
2022-06-30 18:08:34 +01:00
c22a840d27
Update VanillaBlocks:
...
for some reason some stuff was returned using non-default states
2022-06-30 17:52:07 +01:00
cab56b0479
fix PHPStan
2022-06-29 17:18:44 +01:00
8831dff61b
Leaves: remove ItemFactory dependency
...
this is ugly, but it should only be temporary while we liberate the core from legacy nastiness.
Once the liberation is complete, we'll be able to do a lot of cool stuff like making wood types dynamic.
2022-06-29 16:09:55 +01:00
dd63681f94
Assign auto-generated runtime type IDs to all items
2022-06-29 13:50:58 +01:00
c0e178c19c
fix CS
2022-06-27 17:15:16 +01:00
2fd9b751b6
Log: remove dead code
2022-06-27 16:26:53 +01:00
7deee31502
Block: make decodeStateData() and computeStateData() final
2022-06-27 15:40:39 +01:00
0afb67be7d
Improve BlockFactory initialization performance
...
as expected, expanding data range unconditionally resulted in some performance issues ...
2022-06-27 15:37:05 +01:00
27d7672273
Item frames can now be placed on the up or down faces of blocks
2022-06-25 16:10:39 +01:00
db8bf672f0
fix item frames
2022-06-25 16:10:06 +01:00
f57e02849a
Wall: move function for consistency
2022-06-25 16:01:11 +01:00
1da4c45979
Add runtime support for wall connections
...
this doesn't match the 1.16+ behaviour yet, but it at least recognizes walls that are already in the post-1.16 way and doesn't break them if not interacted with.
2022-06-25 15:59:38 +01:00
b9542b4908
ItemFactory: fix isRegistered() again
...
we really need to get rid of the ItemFactory legacy nasties so we can burn this code
2022-06-25 15:52:43 +01:00
00b4e4016c
Obliterate BlockLegacyIds
2022-06-25 14:42:32 +01:00
1bce583cf3
Removed BlockIdentifierFlattened
...
this was necessary to inform BlockFactory of how to map blocks with multiple IDs; this is no longer necessary under the revamped system
2022-06-24 23:31:05 +01:00
5f7521027e
FlowerPot: remove usage of legacy variant
2022-06-24 23:24:03 +01:00