Commit Graph

152 Commits

Author SHA1 Message Date
Spottedleaf
85c9fb622a Improve thread-safety of ownsRaid
It should null check the position and retrieve it only once.
2023-02-28 06:41:08 -08:00
Spottedleaf
30d90b4700 Make raids thread-safe
We don't need to worry about synchronisation for saving data,
as that is currently only done by the shutdown thread - after
all regions stop ticking.
2023-02-28 06:33:34 -08:00
Spottedleaf
36675a1b9f Make map data thread-safe to access
We can just synchronise on all of the map data accesses, but
this means we need to be careful about ensuring that no
sync loads occur, otherwise we could block other threads for
long periods of time.
2023-02-27 08:37:47 -08:00
Spottedleaf
19fd3efaa6 Increase parallelism for neighbour writing chunk statuses
Namely, everything after FEATURES. By creating a dependency
chain indicating what chunks are in use, we can safely
schedule completely independent tasks in parallel. This
will allow the chunk system to scale beyond 10 threads
per world.

Currently this patch needs some more testing.
2023-02-26 23:45:21 -08:00
Spottedleaf
5a4351d3b6 Improve thread-safety of combat tracker
The simple solution is that we ignore entities/positions that are not
in the current region. Making retrieval of items in inventory
thread-safe is not going to happen.
2023-02-24 00:23:10 -08:00
Spottedleaf
9b824e6406 Fix player chunk loader behaving poorly when limits are low
Need to use ceil() so that it always allows at least 1 addition
for the 50ms case.
2023-02-24 00:03:00 -08:00
Spottedleaf
b772012778 Make the StructureCheck class MT-Safe
This is so that it may be accessed concurrently
from many regions.

Additionally, make sure it does not leak memory by limiting
the number of entries it will cache.
2023-02-23 23:35:30 -08:00
Spottedleaf
6d922d4b48 Implement player sleep status / night skip
Now, all of the sleep status changes are pushed to the global
tick thread. Had to modify the wake up all players routine
to use the task scheduler to ensure the player is woken up
on the right region context.

Fix erroring while crashing on the global tick thread due to
region field being null.
2023-02-23 20:48:49 -08:00
Spottedleaf
f7e2fe2267 Force disable timings
Need a new profiler system with region threading
2023-02-23 20:13:44 -08:00
Spottedleaf
2474482685 Remove the remains of per-player mob spawns
Now, the spawning should be running Vanilla logic; except
that it is calculated per region (which is what per player
was effectively achieving anyways).
2023-02-23 20:07:56 -08:00
Spottedleaf
256f68d149 Regionise skip hopper event fields 2023-02-23 19:34:00 -08:00
Spottedleaf
fd7901d0f1 Implement TPA system for test server
Will be removed later once this is all public.

Fixed many issues with teleporting players on vehicles
while in the same region.

Additionaly, make sure dead players are dismounted - as
this logic was previously done by remove.

Re-add regiontodo.txt
2023-02-23 18:42:20 -08:00
Spottedleaf
fa05f7830c Implement BlockEntity#updateTicks
Because game time is now on the global tick thread, we no longer
need adjustments for any block entity. But, just in case we do
updateTicks functions now.
2023-02-23 12:52:39 -08:00
Spottedleaf
5f6b82862f Make BlockEntity#IGNORE_TILE_UPDATES a thread local
Ensures regions do not step over each other
2023-02-23 12:33:43 -08:00
Spottedleaf
18cac6b26e Use Folia comments in threaded regions patch
Other patches planned to be rebased
2023-02-23 08:35:07 -08:00
Spottedleaf
62c1166ee5 Initial commit 2023-02-23 08:13:45 -08:00
Jason Penilla
08b84c277d
Update gradle wrapper 2022-12-13 14:42:49 -07:00
Jason Penilla
b19eb28a37
Update 2022-12-13 14:27:38 -07:00
Jason Penilla
41be2256f0
Update README 2022-04-21 20:45:48 -07:00
Jason Penilla
aedd5067fd
Update upstream 2022-04-21 20:36:03 -07:00
Jason Penilla
90efbbe385
Update gradle plugins and remapper 2022-01-27 13:24:04 -07:00
Jason Penilla
c197882df1
update paperweight, gradle wrapper, and shadow 2021-12-23 19:56:45 -08:00
Jason Penilla
74b34eec95
Lowercase project names and exclude paper-api from paper-mojangapi 2021-12-02 20:58:35 -08:00
Jason Penilla
ad960f72e1
Update upstream 2021-12-02 00:00:38 -08:00
Jason Penilla
53dbd2bc9c
Update upstream & paperweight to 1.2.0 2021-11-16 21:27:00 -08:00
Jason Penilla
4881c096bc
Add blank reobf-mappings-patch.tiny 2021-11-03 21:34:49 -07:00
Jason Penilla
a46006e2be
Update upstream & paperweight to 1.1.14 2021-11-03 20:56:54 -07:00
Jason Penilla
ec10cc7b81
Update upstream & paperweight to 1.1.13 2021-11-03 19:59:43 -07:00
Jason Penilla
1a5f02ce1b
Update upstream 2021-10-08 22:39:53 -07:00
Jason Penilla
e0a85eb4c9
Update shadow to 7.1.0 2021-10-08 22:38:07 -07:00
Jason Penilla
fe0ed1609c
Update upstream & paperweight to 1.1.12 2021-10-02 18:58:17 -07:00
Jason Penilla
a90d11e921
Update upstream 2021-09-24 19:10:14 -07:00
Jason Penilla
37462a549b
Update Gradle wrapper to 7.2 2021-09-24 19:04:22 -07:00
Jason Penilla
a70929650f
Use tiny-remapper fat jar 2021-09-24 19:03:15 -07:00
Jason Penilla
d56348b64b
Update README 2021-08-24 21:35:00 -07:00
Jason Penilla
5288d83ece
Update to paperweight 1.1.11 2021-08-24 21:34:59 -07:00
Kyle Wood
a435d924c1
Update to paperweight 1.1.5 2021-06-20 02:56:23 -05:00
Kyle Wood
e3191f5ab9
Bump paperweight 2021-06-20 02:08:02 -05:00
Kyle Wood
bb4686d754
Add some gradle props 2021-06-20 00:16:56 -05:00
Kyle Wood
f9092af46f
Bump paperweight 2021-06-20 00:16:09 -05:00
MiniDigger | Martin
de3cac8793
add mcdev import dummy file 2021-06-18 10:24:38 +02:00
Kyle Wood
d64a2d0f15
Explain branches in readme 2021-06-16 02:11:04 -05:00
Kyle Wood
e203d90f78
Bump paperweight to 1.0.4 2021-06-16 02:05:27 -05:00
Kyle Wood
b683ff522e
Updates for paperweight 1.0.3 2021-06-16 01:28:10 -05:00
Kyle Wood
192618885a
Update patch for Paper 2021-06-13 15:47:02 -05:00
Kyle Wood
7a5fcc1249
Update for new paperweight 2021-06-12 23:44:00 -05:00
Kyle Wood
f9ce9a32d6
Use example group 2021-06-12 17:54:12 -05:00
Kyle Wood
01183d2c19
Minor improvements to build setup 2021-06-12 17:52:20 -05:00
MiniDigger
8bb2e1266f dum readme 2021-06-12 20:08:10 +02:00
MiniDigger
8001a714db its working now 2021-06-12 20:04:04 +02:00