Commit Graph

3821 Commits

Author SHA1 Message Date
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