Dylan K. Taylor
b39eaaf91f
Merge branch 'next-minor' into next-major
2022-09-21 15:07:11 +01:00
Dylan K. Taylor
89e29448ee
Merge branch 'stable' into next-minor
2022-09-20 20:18:06 +01:00
Dylan K. Taylor
23e98a30f5
ItemEntity: don't ignore parent's savable state
2022-09-20 14:50:35 +01:00
Dylan K. Taylor
5bc7ca6569
ItemEntity: disable saving if the contained item is air or has a zero count
2022-09-20 14:45:10 +01:00
IvanCraft623
9f97654f6f
Update InstantDamage and Regeneration values ( #5279 )
2022-09-15 20:26:37 +01:00
Dylan K. Taylor
f80ffd8de0
Merge branch 'next-minor' into next-major
2022-09-15 13:59:21 +01:00
Eren A. Akyol
82ba7903c8
Fixed wrong key being used for entity type ID in save data ( #5288 )
...
closes #5260
2022-09-15 13:40:48 +01:00
Dylan K. Taylor
3d03bb1301
Fix CS
2022-09-15 12:01:26 +01:00
Dylan K. Taylor
88eafdd614
Improve type info for RegistryTrait::getAll() and its users
2022-09-02 19:57:22 +01:00
Dylan K. Taylor
6dd5fec4ea
ExperienceManager: remove superfluous doc comment
2022-09-02 19:38:23 +01:00
Dylan K. Taylor
f88c4d9a8c
Remove more unnecessary local static variable usages
...
these are never mutated. Local constants would be better, if we had those.
2022-09-02 19:19:04 +01:00
Dylan K. Taylor
1ecb10acba
Merge branch 'next-minor' into next-major
2022-08-21 19:19:07 +01:00
Dylan K. Taylor
c9626c610b
Skin: Correctly handle errors produced by commented JSON decoder
2022-08-16 17:35:23 +01:00
Dylan K. Taylor
dce8bd6d21
CS: Standardize new with braces
2022-08-15 17:16:23 +01:00
Dylan K. Taylor
43a3151de3
Merge branch 'next-minor' into next-major
2022-08-14 18:49:19 +01:00
Dylan K. Taylor
df7a1fcba6
Changes for 1.19.20
2022-08-09 19:06:05 +01:00
Dylan K. Taylor
c8a8e33fc1
Merge branch 'next-minor' into next-major
2022-07-24 21:24:08 +01:00
Dylan K. Taylor
5e3b3a0700
Fix assert spam on debug clients
2022-07-24 17:51:02 +01:00
Dylan K. Taylor
ba2baba7cc
Added netherite blocks and items
2022-07-14 20:39:09 +01:00
Dylan K. Taylor
d4f4fda442
Merge branch 'next-minor' into next-major
2022-07-14 19:54:50 +01:00
Dylan K. Taylor
baf75089f5
Entity: cancel fire damage for fireproof entities
2022-07-14 19:53:25 +01:00
Ali
705df7d508
EffectManager: remove redundant check ( #5153 )
2022-07-14 17:56:18 +01:00
Dylan K. Taylor
3dd4c42fd3
Merge branch 'next-minor' into next-major
2022-07-14 16:06:35 +01:00
Dylan K. Taylor
75d7adfb2d
WitherEffect: fixed incorrect damage interval
2022-07-14 16:05:35 +01:00
Dylan K. Taylor
dea0207e4e
Merge branch 'next-minor' into next-major
2022-07-13 17:06:04 +01:00
Dylan K. Taylor
06655bee78
Updated to 1.19.10
2022-07-13 00:59:49 +01:00
Dylan K. Taylor
c67e42a723
Add a hook to enable blocks to react to projectiles colliding with them
...
this enables implementing blocks such as the target block.
2022-07-07 01:44:13 +01:00
Dylan K. Taylor
0a23e91329
Rename BlockFactory::fromFullBlock() -> BlockFactory::fromStateId()
2022-07-05 13:46:19 +01:00
Dylan K. Taylor
f24f2d9ca9
Hit block legacy metadata with the biggest nuke you've ever seen
...
This commit completely revamps the way that blocks are represented in memory at runtime.
Instead of being represented by legacy Mojang block IDs and metadata, which are dated, limited and unchangeable, we now use custom PM block IDs, which are generated from VanillaBlocks.
This means we have full control of how they are assigned, which opens the doors to finally addressing inconsistencies like glazed terracotta, stripped logs handling, etc.
To represent state, BlockDataReader and BlockDataWriter have been introduced, and are used by blocks with state information to pack said information into a binary form that can be stored on a chunk at runtime.
Conceptually it's pretty similar to legacy metadata, but the actual format shares no resemblance whatsoever to legacy metadata, and is fully controlled by PM.
This means that the 'state data' may change in serialization format at any time, so it should **NOT** be stored on disk or in a config.
In the future, this will be improved using more auto-generated code and attributes, instead of hand-baked decodeState() and encodeState(). For now, this opens the gateway to a significant expansion of features.
It's not ideal, but it's a big step forwards.
2022-06-24 23:19:37 +01:00
Dylan K. Taylor
1533fcf8f6
Separate block legacy data upgrading from block deserialization
...
this commit provides a central place where all block data can go to be upgraded to the latest version (currently 1.19), irrespective of how old it is.
Previously I had issues during debugging, because it wasn't possible to just upgrade a block without deserializing it into a Block object, which isn't currently supported for many blocks.
This commit solves that problem by separating the upgrading from the deserialization.
2022-06-23 16:45:02 +01:00
Dylan K. Taylor
680615eed8
Namespace rename
2022-06-08 15:54:45 +01:00
Dylan K. Taylor
1ff69136a3
Merge branch 'next-major' into modern-world-support
2022-06-07 20:01:40 +01:00
Dylan K. Taylor
aa9f8781ff
Merge branch 'next-minor' into next-major
2022-06-07 19:56:26 +01:00
Dylan K. Taylor
1584768c80
PaintingMotive: fixed botched painting fix from 0ea3861d434b017055dfaac5c11e4c90f3779fac
...
I knew I should have used a singleton for this ...
2022-06-07 15:48:20 +01:00
Dylan K. Taylor
13bb1c26fb
ItemTranslator now operates directly using Item, rather than using item ID/meta + ItemFactory
...
in almost all cases where ItemTranslator is used, an Item already exists, so it doesn't make any sense to make ItemTranslator go and create another item instance just to pass to ItemSerializer.
2022-06-06 20:51:26 +01:00
Dylan K. Taylor
5c85aa6e58
Eliminate remaining usages of legacy block ID+meta on disk
...
flower pots loaded from vanilla worlds should now correctly display the plant inside
2022-06-05 21:49:51 +01:00
Dylan K. Taylor
d2613039ed
Replace BlockLegacyIds usages with BlockTypeIds where possible
2022-06-05 21:17:10 +01:00
Dylan K. Taylor
f2dc9187f0
Use covariant types for InventoryHolder and Container implementors
2022-06-05 18:49:48 +01:00
Dylan K. Taylor
083a35f970
Modernize property type declarations
2022-06-04 18:16:32 +01:00
Dylan K. Taylor
38d6284671
Use PHP-CS-Fixer to enforce file header presence
2022-06-04 17:34:49 +01:00
Dylan K. Taylor
2bb99fa677
Modernize Position and Location
...
[bc break]
2022-06-01 21:21:31 +01:00
Dylan K. Taylor
7b8eeb42f6
Use typed properties in src/entity package
...
[bc break]
2022-06-01 21:19:02 +01:00
Dylan K. Taylor
2029e3be20
Entity: remove dead code
...
[bc break]
2022-06-01 21:01:56 +01:00
Dylan K. Taylor
6ee551c5e1
Remove premature optimisation from World::getCollidingEntities()
...
this is already covered in more fine-grained detail by canCollideWith().
[bc break]
2022-06-01 21:00:54 +01:00
Dylan K. Taylor
b7e2b3e94a
Entity: Require declaration of gravity and drag via abstract methods
...
this guarantees that subclasses will actually declare them.
[bc break]
2022-06-01 20:51:18 +01:00
Dylan K. Taylor
3fcf6372e0
Merge branch 'stable' into next-minor
2022-06-01 15:32:37 +01:00
Dylan K. Taylor
39b8daeeec
Living: fixed a usage of hardcoded numeric ID
2022-05-25 22:23:14 +01:00
Dylan K. Taylor
6d941640a9
Merge branch 'stable' into next-minor
2022-05-20 11:14:59 +01:00
Dylan K. Taylor
0ea3861d43
Fixed paintings not working in newly generated worlds
...
Paintings would not work unless at least one entity was loaded from disk
(or saved).
2022-05-20 11:13:14 +01:00
Dylan K. Taylor
c0b15de504
Modernize private static property declarations
2022-05-17 21:55:16 +01:00