315 Commits

Author SHA1 Message Date
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
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
Dylan K. Taylor
ec6769a6fc
Modernize private property declarations in src/entity 2022-05-17 20:42:17 +01:00
Duo Incure
89cc449808
Update exhaustion values for 1.18.30 (#5034) 2022-05-17 18:28:19 +01:00
Dylan K. Taylor
9ff1bf6deb
Merge remote-tracking branch 'origin/stable' into next-minor 2022-05-11 13:12:45 +01:00
Dylan K. Taylor
6e372d9e36
Entity: fixed setNameTagVisible not having immediately visible effect 2022-05-01 14:54:41 +01:00
Dylan K. Taylor
937bb4c6ce
Merge branch 'stable' into next-minor 2022-04-28 21:00:23 +01:00
Dylan K. Taylor
20ff5d5a3d
Modernize property declarations in src/entity/animation 2022-04-28 15:33:13 +01:00
Dylan K. Taylor
c085bf0db4
Changes for 1.18.30 2022-04-20 13:59:50 +01:00
Dylan K. Taylor
e388cb1643
Merge branch 'stable' into next-minor 2022-04-10 21:23:04 +01:00
Dylan T
d1dfbd95e2
Entity: workaround teleport client bug #4394 by despawning and respawning the entity (#4870)
this is a sucky solution but it works well enough for this scenario.

From my research it appears that while the client-side MovementInterpolator is active on the client and hasn't yet reached its target, any teleport sent during the lerp will get overridden by the lerp.
This appears to last 3-4 ticks (about 150-200 ms) which explains why this can be reproduced by stopping movement just before the ender pearl lands (human reaction times would make the reproduction unreliable otherwise).

Things to note:
- All entities are affected by this bug.
- MovePlayerPacket appears not to have the problem, but we can't use it because it doesn't work for non-players.
- MoveActorAbsolute and MoveActorDelta are both handled by the same code and will have the same lerping bug.

This is the cleanest solution I could come up with.
2022-04-08 23:12:01 +01:00
Dylan K. Taylor
ab93135b84
Merge branch 'stable' into next-minor 2022-03-22 15:49:58 +00:00
Dylan K. Taylor
2b8a54f8ff
Entity: added a guard to prevent __construct() from running multiple times
this typically happens due to flawed logic in child classes in plugins which causes parent::__construct() to get called multiple times.
2022-03-22 15:33:31 +00:00
Dylan K. Taylor
05fdd94754
fix CS 2022-03-12 00:57:32 +00:00
Dylan K. Taylor
05792826bc
EntityFactory: use import aliases to improve readability slightly 2022-03-09 23:39:45 +00:00
Dylan K. Taylor
5c0eb92d81
Entity: harden setRotation(), setMotion(), addMotion() and teleport() against NaN/INF values 2022-03-09 22:36:44 +00:00
Dylan K. Taylor
1e88412a8f
Entity: harden constructor against dodgy locations containing NaN/INF components 2022-03-09 22:31:24 +00:00
Dylan K. Taylor
6d584cf008
EntityDataHelper: prevent INF/NaN being loaded from disk to come back and break things after the fact 2022-03-09 22:16:07 +00:00
Dylan K. Taylor
5ef73ca9aa
Entity: Remove outdated comment 2022-03-09 18:02:57 +00:00
IvanCraft623
90a369f0b6
Humans can now do emotes (#4610)
added the following API methods:
- Human::emote()
2022-03-03 18:19:30 +00:00
Dylan K. Taylor
fc53f3721a
Avoid direct mutations of Entity->location 2022-01-20 21:49:14 +00:00
Dylan K. Taylor
8f525ab399
Replace disallowed operators in src/entity/ 2022-01-20 19:14:28 +00:00
Dylan K. Taylor
661848c5e7
fix more EOF newlines 2022-01-07 20:39:43 +00:00
Dylan K. Taylor
75fc7a2d1f
Merge branch 'stable' into next-minor 2022-01-07 20:16:35 +00:00
Dylan K. Taylor
6d249026cc
Merge branch 'legacy/pm3' into stable 2022-01-07 20:15:15 +00:00
Dylan K. Taylor
fb29653ed7
Merge remote-tracking branch 'origin/stable' into next-minor 2022-01-06 22:43:57 +00:00
Dylan T
6492cac5c1
Merge pull request from GHSA-c6fg-99pr-25m9 2022-01-04 20:40:55 +00:00
Dylan K. Taylor
e04dfe96af
Merge branch 'stable' into next-minor 2022-01-01 17:55:17 +00:00
Dylan K. Taylor
54d6b83fc2
Entity: pass the appropriate value for AFFECTED_BY_GRAVITY 2022-01-01 15:39:46 +00:00
Dylan K. Taylor
eedea38669
Improve performance of loading player inventories 2022-01-01 15:26:42 +00:00
Dylan K. Taylor
62afa2f28d
Entity: extract getBlocksIntersected() from getBlocksAroundWithEntityInsideActions() 2021-12-29 23:04:54 +00:00
Dylan K. Taylor
c858c0dc79
Merge remote-tracking branch 'origin/stable' into next-minor 2021-12-27 16:09:20 +00:00
XenialDan
d41f933e7b
Implement swimming/gliding including AABB recalculation (#4446)
- The following events have been added:
  - PlayerToggleGlideEvent
  - PlayerToggleSwimEvent
- The following API methods have been added:
  - Entity->getSize()
  - Living->isSwimming()
  - Living->setSwimming()
  - Living->isGliding()
  - Living->setSwimming()
  - Player->toggleSwim()
  - Player->toggleGlide()
2021-12-19 17:10:41 +00:00
Dylan K. Taylor
e3614d1a82
Entity: fixed game performance issue with large scale entities
this->size refers to the scaled height, but the client wants the base (unscaled) size in these properties.
This caused immense lag when, for example, setting the scale of a player to 10, because their collision box would become 180 by 60, instead of the expected 18 by 6.
2021-12-18 22:38:45 +00:00
ShockedPlot7560
de82424fb2
XpManager: add APIs to prevent owning Human from attracting XP orbs (#4623)
Fixes #4589

The following API methods are added:

- `XpManager->canAttractXpOrbs()`
- `XpManager->setCanAttractXpOrbs()`

Possible future scope: flip this on its head to allow spectator players to attract XP orbs, in case someone wants that for some reason ???

Co-authored-by: Dylan K. Taylor <dktapps@pmmp.io>
2021-12-15 04:40:46 +00:00
Dylan K. Taylor
dbad5dd611
Merge branch 'stable' into next-minor 2021-12-14 23:16:01 +00:00
Dylan K. Taylor
ea1fceece2
Merge branch 'legacy/pm3' into stable 2021-12-14 23:15:53 +00:00