12823 Commits

Author SHA1 Message Date
Dylan K. Taylor
84170ad3e1
Furnace: fixed deactivation after being reloaded from disk (regression from PM3)
closes #4430
2021-09-12 15:49:33 +01:00
Dylan K. Taylor
ace8841d5d
Explosion: allow the normal blockupdate mechanism to deal with explosions
in PM4, all blockupdates are buffered, so the old 7x performance penalty that used to be incurred by doing this is no longer a problem.
Also, this actually reduces the overhead of explosions themselves by moving the onNearbyBlockChange() burden off explodeB() and into the main world ticking function.
2021-09-12 15:45:02 +01:00
Dylan K. Taylor
5ddd94b7e8
Remove redundant World->isChunkGenerated() calls
isChunkGenerated() merely checks if the chunk can be loaded from disk, if it's not in the runtime cache already.
This is pointless in all of these cases, because the check is prefaced by an isChunkLoaded() check, which already limits the possibility anyway. If the chunk is not generated, it'll also be considered not loaded.
2021-09-12 15:21:09 +01:00
Dylan K. Taylor
f0fa561c2f
World: use arrow functions in useBreakOn() 2021-09-12 15:16:55 +01:00
Dylan K. Taylor
273aa8ab42
Drop useless usage translation strings for commands with no parameters 2021-09-11 17:06:26 +01:00
Dylan K. Taylor
3b7580688c
Stop auto-translating string descriptions/usages for commands
Require usage of Translatable for translations.
2021-09-11 16:46:40 +01:00
Dylan K. Taylor
b65e3c69b1
4.0.0-BETA3 is next 2021-09-10 17:18:32 +01:00
Dylan K. Taylor
26e3280fea
Release 4.0.0-BETA2 2021-09-10 17:18:31 +01:00
Dylan K. Taylor
33b5da3749
3.22.6 is next 2021-09-10 17:09:51 +01:00
Dylan K. Taylor
40e88f1686
Release 3.22.5 2021-09-10 17:09:50 +01:00
Dylan K. Taylor
7701e1ff98
InGamePacketHandler: fix regression in movement handling since 82c8fa696a2e8609d8ae086c52f96abe7c7705b6
fixes #4291
fixes #4398
2021-09-10 16:52:46 +01:00
Dylan T
4111d92b98
Stop hardcoding chunk dimensions everywhere (#4443) 2021-09-10 16:13:25 +01:00
Dylan K. Taylor
9d5a86fe53
Revert "World: make the second parameter for getCollidingEntities() mandatory and non-nullable"
This reverts commit e1b7bf31bbbf8a0c679bdf238cf7594881d0842b.

fixes #4447
2021-09-10 16:06:08 +01:00
Dylan K. Taylor
cf762d345d
Player: Log debug messages when canInteract() prevents block interaction 2021-09-10 15:58:38 +01:00
Dylan K. Taylor
f5c9c02e09
Improve documentation of Thread and Worker 2021-09-10 15:57:45 +01:00
Dylan K. Taylor
32588d79c8
ConsoleReaderThread: remove useless code 2021-09-10 13:54:42 +01:00
Dylan K. Taylor
1cc57afd25
Stop the ConsoleReaderThread explicitly, instead of letting ThreadManager do it
this hack dates back to the days when the console reader would get stuck on shutdown on some platforms.
2021-09-10 13:48:01 +01:00
Dylan K. Taylor
334bf1277d
BlockTransaction: Return failure if no blocks were changed
fixes #2813
2021-09-10 00:32:46 +01:00
Dylan K. Taylor
082f0f2d57
Player: Generate an InventoryTransaction (with event) for crafting grid/cursor evacuation
this fixes the crack in the armour that allows creative players to drop items even when all drops are being cancelled by plugins.

closes #3284
2021-09-09 17:11:59 +01:00
Dylan K. Taylor
5d4f14b388
Added TransactionBuilderInventory for server-side inventory transaction generation 2021-09-09 17:10:04 +01:00
Dylan K. Taylor
4a787769bf
Merge branch 'stable' 2021-09-09 16:06:16 +01:00
Dylan K. Taylor
4c65a0cdaa
LegacySkinAdapter: Use 64x64 for persona polyfilled skins
64x32 has some corruption issues and generally just looks really bad.
2021-09-09 16:04:43 +01:00
Dylan K. Taylor
e0e19c67ef
World: do not warn about leaked Player entities during world unload
this raises false-positives during shutdown if players were online.
The fact that the player entity leans on the World to clean up after it is slightly problematic, but I'm not sure what else to do about it for now.
2021-09-09 15:55:37 +01:00
Dylan K. Taylor
34f01a3ce3
World: Track entities separately from chunks
this allows entities to exist outside of generated chunks, with one caveat: they won't be saved in such cases.
Obviously, for player entities, this doesn't matter.

fixes #3947
2021-09-09 01:17:41 +01:00
Dylan K. Taylor
ba2bfe0e11
World: depopulate neighbourBlockUpdateQueueIndex sooner
this fixes 2 problems:
1) Blocks which set themselves to something else during onNearbyBlockChange() would not receive any block update
2) A memory leak when blocks in unloaded chunks were scheduled for an update.

I'm a little uneasy about this change, because there must have been some reason why I put this at the end of the block and not at the start, but whatever it is, I can't reason about it, and there's reasons not to put it at the end too.
2021-09-08 22:11:17 +01:00
marshall
b9b1ba9526
Include eye height in Living->lookAt() calculation (#4440) 2021-09-08 21:54:32 +01:00
Dylan K. Taylor
7c943880b2
Do not show update notifications to users running from git sources 2021-09-07 23:52:11 +01:00
Dylan K. Taylor
bc6e73e81d
SubChunk: fixed light array GC since native LightArray introduction
since this went native, there was no support for copy-on-write, so this was only lazy-inited, but never cleaned if the array remained empty.
2021-09-07 22:54:54 +01:00
Dylan K. Taylor
11d2e1ef08
Require ext-chunkutils ^0.3.0 2021-09-07 22:53:50 +01:00
Dylan K. Taylor
c605b54591
Accept dev versions of chunkutils2 2021-09-07 22:52:00 +01:00
Dylan K. Taylor
0f70348821
Remove noise 2021-09-07 20:31:13 +01:00
Dylan K. Taylor
72fb49b356
World: add notifyNeighbourBlockUpdate() to allow triggering neighbour block updates on blocks manually
this can be useful if blocks were modified asynchronously.
2021-09-07 20:18:53 +01:00
Dylan K. Taylor
ac55b21fb4
4.0.0-BETA2 is next 2021-09-07 14:19:29 +01:00
Dylan K. Taylor
210b9c7b75
Release 4.0.0-BETA1 2021-09-07 14:19:29 +01:00
Dylan K. Taylor
da0482d330
Solidify version comparison 2021-09-07 12:24:16 +01:00
Dylan K. Taylor
9a745ffc09
Do not enforce suffix checks for API versions 2021-09-07 12:06:36 +01:00
Cosmic
710345d4b0
Implemented Farmland turns to dirt when jumped on. (#4434) 2021-09-06 12:55:52 +01:00
Dylan K. Taylor
931c3ed77d
Entity: fixed current movement not being accounted for in fall height
this caused incorrect damage when falling from heights, as well as a bug in #4434.
2021-09-06 12:53:52 +01:00
Dylan K. Taylor
956780c6a6
Entity: add getters and setters for fallDistance 2021-09-05 23:59:04 +01:00
Dylan K. Taylor
df3b112877
Implemented slime blocks 2021-09-05 20:46:59 +01:00
Dylan K. Taylor
8e2486b96a
Bed: bounce doesn't apply if the entity was sneaking 2021-09-05 20:14:17 +01:00
Dylan K. Taylor
ded778f422
Implemented bed bouncing 2021-09-05 20:11:49 +01:00
Dylan K. Taylor
b0b28ec6ed
3.22.5 is next 2021-09-05 15:47:54 +01:00
Dylan K. Taylor
2fb4704269
Release 3.22.4 2021-09-05 15:47:54 +01:00
Dylan K. Taylor
4f59d3487a
3.22.4 is next 2021-09-05 15:42:39 +01:00
Dylan K. Taylor
65220b4f7f
Release 3.22.3 2021-09-05 15:42:38 +01:00
Dylan K. Taylor
85eb6b30a5
Player: do not allow doFirstSpawn() to be executed before the constructor is called
this problem doesn't exist on PM4.
2021-09-05 15:38:14 +01:00
Dylan K. Taylor
e1b7bf31bb
World: make the second parameter for getCollidingEntities() mandatory and non-nullable
the only reason to use getCollidingEntities() instead of getNearbyEntities() is if you have an entity that may or may not be collidable depending on certain conditions.
Really, I don't think this logic belongs in World at all, but for now it has to stay, because some other stuff depends on it.
2021-09-05 15:22:12 +01:00
Dylan K. Taylor
2fc33d3bff
World: remove unused variable 2021-09-05 15:15:48 +01:00
Dylan K. Taylor
19513c65f0
World: avoid code duplication between getCollidingEntities() and getNearbyEntities()
these two methods are very misleadingly named, but they do almost exactly the same thing - the only difference is that getCollidingEntities() does a couple of additional checks.
2021-09-05 15:13:22 +01:00