b7b2b8095c
Revert "Remove otmRandom"
...
This reverts commit 5a016bef
The way OTM uses random generator in its code will quickly cause LCG used in Minecraft to show its bias
because LCG in minecraft samples its highest 48 bits, which gives us at best 2^16 period in the lowest bit returned by LCG.
Which it doesn't sound bad, it quickly causes RNG become biased the quicker/more it is sampled on each tick, especially considering
some may use `level.random.nextInt(chance) == 0` to determine chance of something happening,
which will get extremely biased on heavy RNG congested environment
If we avoid sampling Level's generator this much, we won't suffer from bias in our own code, as well as avoid biasing other mods this much.
The "2^16 period" problem is also might be the reason why Entities get their own instance of RandomSource, and Mob Goals use random exactly the way described above (`nextInt(chance)`), which can and will suffer from bias the moment mob exists in world for more than 2^16 ticks (but actual bias will happen sooner because RNG is not sampled only once per tick, obviously)
2025-03-15 10:04:16 +07:00
bc5ad7f37b
кипяточек
2025-03-14 19:47:13 +07:00
579445fbbe
Nerf food for androids further
2025-03-14 17:44:26 +07:00
80ff50b937
Nullify excess hunger when eating as android
2025-03-14 17:40:16 +07:00
ca37b4959f
Bring back old behavior where exhaustion is immediately nullified by energy buffer on Androids
2025-03-14 17:36:55 +07:00
5d8f2d5a4a
Add REGENERATE_ENERGY_EFFICIENCY_FOOD and REGENERATE_ENERGY_EFFICIENCY_SATURATION
2025-03-14 12:04:16 +07:00
e06928a4b5
Update mixin signature
2025-03-14 11:24:58 +07:00
d10b1b4ee1
Aeugh
2025-03-14 11:21:08 +07:00
922f94b9de
e
2025-03-14 11:02:08 +07:00
b23bda2f6a
Move android package to player package
2025-03-14 10:54:08 +07:00
c4d5ffefa5
Move all logic regarding food / regeneration to MatteryFoodData
2025-03-14 10:37:54 +07:00
a34b485e68
Base replacement for FoodData
2025-03-14 08:52:36 +07:00
c3b2681e89
Rename AndroidConfig to PlayerConfig
2025-03-12 20:57:57 +07:00
cfd6b101d8
Fix addEatEffect hook
2025-03-12 20:31:59 +07:00
0424dd1944
Rename mattery player reference in coremod
2025-03-12 19:34:26 +07:00
05a081d9cb
Move MatteryPlayer to player subpackage
2025-03-12 19:33:20 +07:00
b68b1d724a
Move IMatteryPlayer as well as shortcuts to player subpackage
2025-03-12 19:28:54 +07:00
97c4922765
a
2025-03-11 18:26:50 +07:00
d2e7971726
Merge branch '1.21' into worldgen-placement-providers
2025-03-11 18:01:55 +07:00
4df51ce126
Add better random to recommended mods
2025-03-11 17:53:18 +07:00
a6ba428518
Remove custom random generators except for gjrand64 which is used for worldgen
2025-03-11 16:56:51 +07:00
5a016bef1b
Remove otmRandom
2025-03-11 16:55:55 +07:00
0159931930
Faster otmRandom
2025-03-11 11:39:22 +07:00
6c0265582a
Don't create own random provider if Better Random is present
2025-03-10 20:33:28 +07:00
08ae897c6f
Make Medical Pill provide only Regeneration III for 8 seconds
...
Because it completely overshadows Enchanted Golden Apples with current state of things
2025-03-09 22:36:55 +07:00
e7f2e0551a
Merge branch '1.21' into worldgen-placement-providers
2025-03-09 22:01:00 +07:00
755d15fc0b
Replace PCG32 with GJRAND64
2025-03-09 21:52:21 +07:00
9ffee79687
Provide "no seed" initialization for GJRAND64
2025-03-09 21:49:49 +07:00
84ca0c2a24
Use GJRAND64 for enormous placement
2025-03-09 21:47:17 +07:00
326490b73c
Merge branch '1.21' into worldgen-placement-providers
2025-03-09 21:29:52 +07:00
3a08552345
private the internal state of positional random
2025-03-09 21:29:43 +07:00
32fe6e754c
Provide GJRAND64RandomSource
2025-03-09 21:26:44 +07:00
436606abf4
Now Bread monster can spawn when thrown as item
...
And when killed, inert version is dropped
2025-03-09 21:11:42 +07:00
29edf383cd
Use thread local non-cryptographic random for Quantum Battery UUIDs
...
since they dont need to be cryptographically secure
2025-03-09 20:07:06 +07:00
9b6fa89850
Add matter value to imperfect bread so it can be replicated
2025-03-09 19:55:35 +07:00
1a30f4d203
Gold Disk, for spawning in dungeons, add Imperfect Bread to dungeons as Gold Disk
2025-03-09 19:54:03 +07:00
3f677ad353
Update bread item
2025-03-09 18:35:55 +07:00
f1c87ed5ad
Specify effect source as attacker in Wither Steel Sword
2025-03-09 16:22:11 +07:00
df7465a59f
Wither skeleton sword and helmet server config
2025-03-09 16:20:58 +07:00
6f2adfd6d3
Withered Steel Sword fixes
2025-03-09 16:17:27 +07:00
e97967903b
Update WitheredSkeletonSpawnHandler implementation
2025-03-09 16:12:24 +07:00
67ea3b977b
Further improve performance of UpgradeContainer
2025-03-09 16:00:51 +07:00
ed04a8c4d2
Drastically reduce tritanium clusters generated
2025-03-09 15:39:20 +07:00
611f4055e9
Ellipsoid heart with worms tritanium placement
2025-03-09 15:38:20 +07:00
00ff8fa91e
damn
2025-03-09 15:01:23 +07:00
3ee539bc9d
Back to debug placement
2025-03-09 13:57:31 +07:00
44b0bcd776
Use nested caches for enormous placements instead of weak hash map
...
Should recycle memory better
2025-03-09 13:34:47 +07:00
cc456958e1
Remove duplicates from positions provided by enormous placement
2025-03-09 13:31:42 +07:00
5f76aa1661
AlwaysTrue and AlwaysFalse boolean providers
2025-03-09 13:06:46 +07:00
bd8c5ed97b
Clarify docs
2025-03-09 13:04:31 +07:00