11686 Commits

Author SHA1 Message Date
Dylan K. Taylor
e4ed7bc4ea
Fixed Mushroom Stem blocks never dropping anything 2021-06-11 19:04:12 +01:00
Dylan K. Taylor
22b5e5db5e
AsyncPool: Do not drop pending tasks on shutdown
this creates an extra element of uncertainty for async pool usage.
2021-06-11 18:30:32 +01:00
Dylan K. Taylor
f245147c11
AsyncPool: make collectTasks() return value more accurate
during onCompletion() anything may happen, including scheduling new tasks, which the previous code did not account for.
2021-06-11 18:30:32 +01:00
Jason
532d57eec7
Arrow: Save and load critical state (#4241)
Fixes #3596
2021-06-09 14:00:36 +01:00
Dylan K. Taylor
2bbb24fab7
Merge branch 'stable' 2021-06-08 20:00:08 +01:00
Dylan K. Taylor
57d274901d
Protocol changes for 1.17.0 2021-06-08 19:40:28 +01:00
Dylan K. Taylor
908b627846
3.19.4 is next 2021-06-08 18:52:01 +01:00
Dylan K. Taylor
afb21c1df2
Release 3.19.3 2021-06-08 18:51:48 +01:00
Dylan K. Taylor
2d686e6dc0
Merge remote-tracking branch 'origin/stable' 2021-06-04 18:03:32 +01:00
Dylan K. Taylor
b257348a3a
Renamed fields of AddEntityPacket and RemoveEntityPacket 2021-06-04 17:18:24 +01:00
Dylan K. Taylor
12c66d3362
CraftingDataPacket: fixed assert failure on debug builds 2021-06-04 17:13:50 +01:00
Dylan K. Taylor
9702b51bd1
Utils: improve how boolean arguments are displayed in stack traces 2021-06-02 21:36:47 +01:00
Dylan K. Taylor
fadc96bb0e
Utils: include spl_object_id() in stack traces 2021-06-02 21:34:19 +01:00
Dylan K. Taylor
7d99b0115c
Added a getName() override for RakLibServer 2021-05-29 23:51:46 +01:00
Dylan K. Taylor
0402e7e697
Separate CommandReader impl from CommandReaderThread 2021-05-29 23:41:11 +01:00
Dylan K. Taylor
4bcc7e09cb
PacketSerializer: fix unnecessary FQN 2021-05-29 14:24:48 +01:00
Dylan K. Taylor
8171b18002
Separate ItemTypeDictionary implementation from initialization
we're not going to want implementation details like how it's setup getting in the way when we separate protocol from the core.
2021-05-29 14:24:05 +01:00
Carson
92fd2d35a4
SetDisplayObjectivePacket: added order and display slot constants (#4232) 2021-05-24 20:33:24 +01:00
Dylan K. Taylor
f68b9e79e1
Use typed properties in block namespace 2021-05-22 23:52:31 +01:00
Dylan K. Taylor
73c229a236
Block: fixed LSP violations in blocks using BlockIdentifierFlattened
a property's type can't be changed by a subclass
2021-05-22 23:40:54 +01:00
Dylan K. Taylor
285ad25168
BlockFactory: use the vars we already have, instead of repeated method calls 2021-05-22 12:45:08 +01:00
Dylan K. Taylor
f655d262be
Added stripped all-sided-log variants
again, these should be dynamic; but right now it's not possible.
2021-05-22 12:43:07 +01:00
Dylan K. Taylor
ac04911e88
BlockFactory: fix potential crash 2021-05-21 21:44:17 +01:00
Dylan K. Taylor
24405b63c1
Coarse is now a state of Dirt, instead of a separate block 2021-05-21 21:36:49 +01:00
Dylan K. Taylor
df260034cd
BlockFactory: Fill default state for all variants covered by bitmask when mismatch occurs 2021-05-21 21:12:34 +01:00
Dylan K. Taylor
e7b21cf9dc
World: remove obsolete TODO comment
[ci skip]
2021-05-21 13:10:48 +01:00
Dylan K. Taylor
2ab751f985
World: fixed potential bug scheduling async light updates multiple times 2021-05-21 13:09:38 +01:00
Dylan K. Taylor
f6f0938b3b
Merge branch 'stable' 2021-05-21 01:27:35 +01:00
Dylan K. Taylor
61077c48f1
Worker: fixed quit() usually being useless
Worker::isRunning() returns false after it exits the run() function, even if tasks are stacked and it isn't shutdown.
While this is mostly harmless (since the internal destructor will join the thread anyway), this should be fixed anyway.
2021-05-21 01:24:07 +01:00
Dylan K. Taylor
7968a72f0e
Eliminate some duplicated breakinfos 2021-05-20 23:18:33 +01:00
Dylan K. Taylor
376d2c4cd4
Consistently declare BlockBreakInfo at the constructor call site
instead of inside the class
2021-05-20 22:49:51 +01:00
Dylan K. Taylor
e0c61071e1
3.19.3 is next 2021-05-19 22:53:31 +01:00
Dylan K. Taylor
813d431208
Release 3.19.2 2021-05-19 22:53:30 +01:00
Dylan K. Taylor
af678f985d
All types of coral now have fully dynamic types 2021-05-19 22:49:44 +01:00
Dylan K. Taylor
69fa8e8db7
Added documentation to BlockFormEvent 2021-05-19 00:17:39 +01:00
Dylan K. Taylor
f8cfa191dd
Fixed confusing hierarchy of BlockGrow/Form/SpreadEvent, closes #2792 2021-05-19 00:17:38 +01:00
Dylan K. Taylor
e4750ad2cd
WorldTimings: apply native typehints 2021-05-17 23:23:46 +01:00
Dylan K. Taylor
7217ff5ff5
World: added an extra subtiming for random chunk updates 2021-05-17 23:18:56 +01:00
Dylan K. Taylor
4736b5968d
WorldTimings: change some idiotic timer names 2021-05-17 23:14:30 +01:00
Dylan K. Taylor
cdaf734470
World: Clean up ticking chunk loader tracking 2021-05-17 23:07:48 +01:00
Dylan K. Taylor
643c3ed14e
World: Require all adjacent chunks to a ticking chunk candidate to be unlocked, generated, loaded and light-populated
this should address the remaining problems with grass spread/death.
2021-05-17 20:59:40 +01:00
Dylan K. Taylor
7abf50f503
World: Extracted a tickChunk() method from tickChunks()
most of what's left in tickChunks() is just selecting the chunks, rather than actually ticking them.
2021-05-17 20:54:51 +01:00
Dylan K. Taylor
bab76f4a6e
World: extract some blocks of logic from tickChunks() into their own methods
the amount of nested loops, cx/dx/chunkx/etc clusterfuck in this code makes it very difficult to work with...
2021-05-17 20:50:46 +01:00
Dylan K. Taylor
10391be615
Remove useless class 2021-05-17 20:06:28 +01:00
Dylan K. Taylor
5a14c1cb89
Entity: don't rebuild metadata every tick unless an associated property changed
this should improve performance back to PM3 levels.
2021-05-17 20:05:52 +01:00
Dylan K. Taylor
bdce781c6d
Chunk: do not close preexisting tiles in addTile()
if it's desired to actually replace a tile, the old tile should be explicitly removed and closed first.
2021-05-12 12:32:36 +01:00
Dylan K. Taylor
b2e806e2fa
World: Harden chunk loading against bad data in entity/tile NBT 2021-05-12 12:26:41 +01:00
Dylan K. Taylor
42e915b902
Player: added locking variable to prevent reentry into respawn() while awaiting spawn terrain generation 2021-05-12 12:10:32 +01:00
Dylan K. Taylor
4a68e0219e
shut 2021-05-11 19:29:30 +01:00
Dylan K. Taylor
ab0500ae4f
Player: Fixed a multitude of bugs with respawning
the following things are changed:
- Player->getSpawn() no longer returns a safe spawn by default. Instead, if the player doesn't have a spawn set, it returns the world's stored spawn directly. This allows consistent behaviour of locating safe respawn positions without double calculation of safe spawn position, and also fixes crash issues during the login sequence if the player's spawn position referred to ungenerated terrain.
- Player->respawn() is now asynchronous, using the promise returned by orderChunkPopulation() to complete respawn after the terrain is generated. This allows consistently selecting a safe respawn position and fixes crashes when respawning if the spawn location was in ungenerated terrain.

There remains a problem that ragequit respawns are still only handled right after PlayerJoinEvent, which leads to the original spawn terrain being sent to the player, which is obviously very wasteful. However, that's a problem for a later commit.
2021-05-11 19:15:31 +01:00