Commit Graph

256 Commits

Author SHA1 Message Date
Spottedleaf
30a79469e3 Correctly retrun true for empty input shapes in EntityGetter#isUnobstructed
Vanilla will return true for empty shapes, so we should as well.
2025-01-27 07:59:20 -08:00
Jason Penilla
254b331259 Exclude transitive deps provided by Minecraft 2024-12-04 10:19:20 -07:00
Jason Penilla
a21c44ad31 Use libraries from Paper repo (#82)
* Use YamlConfig from Paper repo

* Add comment to settings

* Use ConcurrentUtil from Paper repo and use release of YamlConfig

* Use ConcurrentUtil release
2024-12-03 20:33:24 -07:00
Spottedleaf
77ba4a4584 Throw when sync loading chunks after shutdown
The caller would block indefinitely if a sync load is requested
during shutdown. Rather than block indefinitely, we should throw
an exception to indicate to the caller that the chunk system is
unable to process requests.
2024-12-03 20:32:14 -07:00
Spottedleaf
a510acbd78 Set version to 0.1.0-SNAPSHOT 2024-12-01 15:57:47 -08:00
Spottedleaf
6fdc3cb1df Set version to 0.1.0-beta.10 v0.1.0-beta.10 2024-12-01 15:52:36 -08:00
Spottedleaf
04e2b976ac Fix several off-by-one errors in view distance calculations
1. For NearbyPlayers, we need to be using the view distance, and
   not the load distance (which is +1 of the view distance).
2. Correctly clamp tick distance to view distance. Since
   load distance is +1 of view distance, we need to subtract
   one from the load distance when clamping.

Additionally, add checks inside ViewDistances to ensure that
the inputs are in range to catch future errors.
2024-12-01 15:23:59 -08:00
Spottedleaf
bd938e6e35 Clamp simulation distance
Values above MAX_VIEW_DISTANCE do not make sense to configure,
as it is clamped to the load view distance.
2024-12-01 14:24:33 -08:00
Spottedleaf
3624d261f8 Adjust constant collision shape determination
Our previous hack did not actually catch every case. For now,
it will only assume a constant collision shape of EMPTY for
air blocks.

Fixes https://github.com/PaperMC/Paper/issues/11697
2024-12-01 13:33:31 -08:00
Spottedleaf
6c75d6935e Force LazyEntityCollisionContext#getEntity() to delegate
By delegating when the entity is retrieved, we can correctly catch
cases where the collision method is inspecting some entity state.
2024-12-01 13:33:14 -08:00
Spottedleaf
e40c40613d Only call config initialisers if reload succeeded 2024-12-01 13:33:01 -08:00
Jason Penilla
84e7106762 Disable immediate loading screen closure by default 2024-11-26 15:53:44 -07:00
Spottedleaf
0218cb5979 Move YamlConfig to own project 2024-11-25 09:39:41 -08:00
Jason Penilla
7d0d5a56dd Back to 0.1.0-SNAPSHOT 2024-11-17 11:32:05 -07:00
Jason Penilla
4597f04a6d 0.1.0-beta.9 v0.1.0-beta.9 2024-11-17 10:56:53 -07:00
Jason Penilla
20764890a7 Update lithium, NeoForge, loom 2024-11-16 17:37:11 -07:00
Jason Penilla
f719abdb64 Update NeoForge lithium overrides 2024-11-16 17:35:43 -07:00
Jason Penilla
0dce47bba6 Apply FerriteCore config overrides automatically
New versions of FC added this mechanism

closes #66
2024-11-05 16:13:46 -07:00
Jason Penilla
47584ceee1 Use declaration order for state holder property iteration
Mostly an aesthetic change for serialization, should not have any impact on performance or correctness.
2024-10-27 18:32:42 -07:00
Jason Penilla
2fc858a683 Back to 0.1.0-SNAPSHOT 2024-10-26 11:05:51 -07:00
Jason Penilla
68ea18bc51 0.1.0-beta.8 v0.1.0-beta.8 2024-10-26 11:03:18 -07:00
Jason Penilla
9944946b29 Update Fabric API and call ServerChunkEvents.CHUNK_GENERATE 2024-10-26 09:54:34 -07:00
Jason Penilla
ec1120ed10 Back to 0.1.0-SNAPSHOT 2024-10-24 11:48:08 -07:00
Jason Penilla
8040c7a264 0.1.0-beta.7 v0.1.0-beta.7 2024-10-24 11:40:46 -07:00
Jason Penilla
a9e36795e5 fabric: fix crash when fabric-lifecycle-events-v1 not present 2024-10-23 18:32:06 -07:00
Jason Penilla
a70073ae3e Setup issue templates (#53)
* Setup issue templates

* try to change order
2024-10-22 09:21:13 -07:00
Jason Penilla
6724814c02 Apply Lithium overrides on NeoForge (#57)
* Apply Lithium overrides on NeoForge

closes #56

* Update readme

* Sort overrides
2024-10-22 09:20:40 -07:00
Jason Penilla
f32a08738e Adjust min/max section optimizations (#55)
* Change min/max section optimisations

* Correctly init dimension type

We need to initialise the field as early as possible in the constructor
to avoid problems.

Also, do not cache min/max section in EntityLookup. Note that mods
that implement worlds with variable heights will not work still,
as the entity slices expect a fixed height.

* Cache calculated height values

---------

Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
2024-10-17 18:02:22 -07:00
Jason Penilla
56e48ed069 Back to 0.1.0-SNAPSHOT 2024-10-15 13:04:47 -07:00
Jason Penilla
9da99576a6 0.1.0-beta.6 v0.1.0-beta.6 2024-10-15 12:56:32 -07:00
Jason Penilla
dfbe1bcf8b Fix Mixin application failure in production
Work around https://github.com/FabricMC/tiny-remapper/issues/137
2024-10-15 12:45:22 -07:00
Jason Penilla
ae29196221 Back to 0.1.0-SNAPSHOT 2024-10-14 19:45:01 -07:00
Jason Penilla
f1eb61cc51 0.1.0-beta.5 v0.1.0-beta.5 2024-10-14 19:17:38 -07:00
Jason Penilla
58c933938f fabric: Call ServerChunkEvents.CHUNK_LOAD/CHUNK_UNLOAD, add and call FabricHooks.ON_EXPLOSION event (#52)
fixes #16
related to #45
2024-10-14 19:06:58 -07:00
Jason Penilla
1dc3cb5f14 Improve LeafProfiler output formatting (#28)
make it readable
2024-10-14 18:03:04 -07:00
Jason Penilla
2acfc6a68e Add missing require = 3 to util_threading_detector PalettedContainer constructor injection, and simplify fast_palette PalettedContainer constructor injection. 2024-10-02 10:54:52 -07:00
Jason Penilla
c22538c364 Back to 0.1.0-SNAPSHOT 2024-09-30 19:22:12 -07:00
Jason Penilla
e244c60375 0.1.0-beta.4 v0.1.0-beta.4 2024-09-30 19:10:12 -07:00
Jason Penilla
65253d5199 Re-fix dev-time conflict with lithium height overrides
See cfa80c44 and 2acd5cc2
2024-09-30 19:00:00 -07:00
Jason Penilla
6e82b034b7 Fix typo in previous commit
Also for some reason the issue resolved by cfa80c44 seems to be back...
2024-09-30 18:52:01 -07:00
Jason Penilla
a7cd78e63b Disable lithium mixin.util.entity_movement_tracking mixins, see #33 2024-09-30 18:43:25 -07:00
Jason Penilla
05ba7066d9 Add NeoForge/Mojang names for redirects in NaturalSpawnerMixin 2024-09-30 10:17:28 -07:00
Spottedleaf
340ac4e8f5 Fix incorrect fluid pushing velocity
Forgot to re-assign the flow vector variable with the scaled
flow.
2024-09-30 04:39:05 -07:00
Spottedleaf
a4770aca2b Fix performance regression in Entity#updateFluidHeightAndDoFluidPushing
The upper bounds from Vanilla are exclusive, but we were treating
them as inclusive which changes behavior and increases the number
of blocks read.
2024-09-30 04:39:05 -07:00
Spottedleaf
a8d4ce526b Optimise block/chunk reading in Entity#updateFluidHeightAndDoFluidPushing
Like other block reading code, a lot of time gets spent retrieving
the chunk and retrieving the section which we can avoid.
2024-09-30 04:39:05 -07:00
Spottedleaf
2acd5cc213 Optimise Level#isOutsideBuildHeight
We can cache the min/max build height to avoid the indirection
required to compute them.
2024-09-30 04:39:05 -07:00
Spottedleaf
07dce0ffe6 Change ShapesMixin#or to perform unoptimised intermediate joins
We can delay the shape optimisation to the final operation, which
should provide a perform boost for merging many shapes.
2024-09-30 04:39:05 -07:00
Spottedleaf
c2e2f0b9f2 Optimise countEntries for low size SimpleBitStorage
We can use a simple array lookup table by palette id when the
number of palette entries is low. This eliminates the need for
the map lookup on each entry.
2024-09-30 04:39:05 -07:00
Spottedleaf
1374ea34ee Replace ticking block coordinate set with ShortList
We can store a position (ranging from 0-4095) into a short,
so we can use ShortList to cut the memory usage in half.
2024-09-30 04:39:05 -07:00
Spottedleaf
fef4872a3a Do not calculate block counts on the client
It appears that this call is very expensive. We instead substitute
an exact check with setting the special colliding blocks to whether
the palette initially contains a special colliding block, and after
on block updating by whether any special colliding block was set.
2024-09-30 04:39:04 -07:00