teknomunk
49bf10b6c7
Change from table indirection to getter/setter functions for dynamically updating local variables
2024-11-17 07:06:03 -06:00
teknomunk
fdd52bda90
Fix default value handling during set (allows bool settings to be set to false), add game rules: doMobSpawning, disableRaids, doWeatherCycle, doFireTick
2024-11-17 06:26:08 -06:00
teknomunk
0b62c827aa
Remove has_room debug data
2024-09-16 13:32:06 +02:00
teknomunk
626bdd13d8
Change several places where mobs are created to use mcl_mobs.spawn() instead of minetest.add_entity()
2024-09-16 13:32:06 +02:00
teknomunk
31a3788ce1
Address review comments
2024-09-16 13:32:06 +02:00
teknomunk
6c50e0a82b
Fix volume used for room check during spawn, make mcl_mobs.spawn check for room before adding entity, change iron golems and mob spawners to use mcl_mobs.spawn
2024-09-16 13:32:06 +02:00
teknomunk
8ef08128b1
Add short circuit if sub-node space check isn't possible:
2024-09-16 13:32:06 +02:00
teknomunk
15efd00a29
Replace second call to minetest.find_nodes_in_area with checking top layer for matching nodes, change p2 calculation to use ceil(value) - 1, fix dx*dy*dz calculation
2024-09-16 13:32:06 +02:00
teknomunk
fa3df0d8c6
Add check for presence of minetest.get_node_boxes before attempting sub-node space checks
2024-09-16 13:32:06 +02:00
teknomunk
4d58f63485
Implement partial node spawning check
2024-09-16 13:32:06 +02:00
teknomunk
fa09b65010
Add most of the code for sub-node accurate spawning volume check (needs a function to calculate bounding box height of nodes)
2024-09-16 13:32:06 +02:00
teknomunk
d8d39ffd52
Add spawnbox parameter that overrides collision box for spawn volume checks
2024-09-16 13:32:06 +02:00
teknomunk
b6aafedf25
Fix space check function has_room() in mcl_mobs/spawning.lua so it allows spiderproofing
2024-09-16 13:32:06 +02:00
kno10
f9290c6493
drop entirely
2024-09-15 22:21:23 +02:00
kno10
52124bd201
FIX spawning
2024-09-15 22:21:23 +02:00
kno10
7d763b7257
more mob spawn code improvements
2024-09-09 20:33:03 +02:00
kno10
bdd3ae2cd8
avoid spawning ground mobs in shallow water
2024-09-09 20:33:03 +02:00
kno10
2e1df31399
Refactor and clean up spawn checks, optimize.
2024-09-09 20:33:03 +02:00
kno10
382a35bb44
delay biome check when spawning
2024-09-09 20:33:03 +02:00
kno10
77382d930e
Typo in setting name, default should be false ( #4492 )
...
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4492
Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
Co-authored-by: kno10 <kno10@noreply.git.minetest.land>
Co-committed-by: kno10 <kno10@noreply.git.minetest.land>
2024-08-03 17:52:51 +02:00
kno10
80a6a6efb0
Choose direction vectors uniformly for spawning ( #4467 )
...
The previous code was biased towards placing mobs on top or below the
player, because it chose the theta inclination angle uniformly,
but the sphere is more narrow at the top and bottom.
This code is also simpler.
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4467
Reviewed-by: teknomunk <teknomunk@protonmail.com>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-07-31 02:30:29 +02:00
teknomunk
ecf12b85cc
Fix undefined global warning for variable distance in spawning code ( #4348 )
...
Fixes the warning about an undeclared global that occurs the first time a mob attempts to spawn.
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4348
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: teknomunk <teknomunk@protonmail.com>
Co-committed-by: teknomunk <teknomunk@protonmail.com>
2024-05-31 09:54:59 +00:00
the-real-herowl
651fb74be1
Fix a crash
2024-05-22 21:03:43 +02:00
the-real-herowl
7cd0cfede8
Further (mcl_)luck functionality
...
* XP from mob breeding impacted by luck
* eye of ender explosion chance impacted by luck
* fishing loot impacted by luck
* melee critical damage impacted by luck
* also fixed 2 scripts marked as "executable"
2024-05-22 21:02:25 +02:00
teknomunk
0279dde3d0
Limit check to +/- 16 nodes from goal position (maximum 33 nodes, 3 map blocks)
2024-05-22 15:25:38 +00:00
teknomunk
2a014ca79c
Change y range calculation to use outer zone distance and not middle to let mobs spawn far away from the player
2024-05-22 15:25:38 +00:00
teknomunk
1bc0a0b411
Implement a continuous distribution function using a piecewise linear function for selecting the distance from the player to spawn mobs with, fix crash when no nodes are found under air at the goal position
2024-05-22 15:25:38 +00:00
teknomunk
bd6c8d35c3
Change y_min/y_max calculations
2024-05-22 15:25:38 +00:00
teknomunk
3850fc1a9f
Limit y range to the same hemisphere (top/bottom)
2024-05-22 15:25:38 +00:00
teknomunk
74cf14ef0f
Close if statement
2024-05-22 15:25:38 +00:00
teknomunk
3a4a8799ea
Change mob spawning randomization from polar coordinates to spherical coordinates, move position validation code from find_spawning_position to get_next_mob_spawn_pos, minimize code remaining in find_spawning_position
2024-05-22 15:25:38 +00:00
ancientmarinerdev
ac4aff12ea
Enable custom biome check in spawning. This allows mods to overide the check in singlenode and other mapgens that do not support biome API. ( #4217 )
...
Some older mapgens do not support the MT biome API. Singlenode and I think v6 also. This allows mods to overide the biomecheck in mob spawning to return valid biomenames and customise this.
Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/4217
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: ancientmarinerdev <ancientmariner_dev@proton.me>
Co-committed-by: ancientmarinerdev <ancientmariner_dev@proton.me>
2024-04-01 15:40:14 +00:00
bakawun
4d90dfab0e
Spawning: add a comment to clarify what the random select is doing
2024-01-10 11:22:13 +01:00
bakawun
b2b63266b7
Spawning: break mob selection loop when out of bounds
2024-01-10 11:22:13 +01:00
bakawun
d151e79fb9
Spawning: remove unused summary_chance
2024-01-10 11:22:13 +01:00
bakawun
e419e6d63b
Spawning: remove another unused perlin var
2024-01-10 11:22:13 +01:00
cora
55517154bd
Mob spawning: Remove unused vars
2024-01-10 11:22:13 +01:00
bakawun
402e4e7b79
Spawning: fix random weighted choice
2024-01-10 11:22:13 +01:00
codiac
4cf865a36c
Fix passive threshold in nether and end ( #4030 )
...
Fix light check for passive mobs in other dimensions. It is apparently the same in all dimensions. If a mob has it's own spawn_check function then that should be used regardless of it's type.
Fixes #4029
Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/4030
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: codiac <codiac@inbox.lv>
Co-committed-by: codiac <codiac@inbox.lv>
2023-11-28 02:45:18 +00:00
codiac
d2d7887e0f
Handle bat and slime light checks
2023-09-21 14:53:32 +10:00
codiac
bf4c7e1913
Allow non monsters spawns too
2023-09-20 09:24:51 +10:00
codiac
11e3674926
Use MC 1.18 light levels to control mob spawning
2023-09-19 11:18:40 +10:00
ancientmarinerdev
c65f8c9e51
Improved early game spawn balance
2023-06-01 20:05:25 +00:00
ancientmarinerdev
812269264b
Add in caps for underground water and axolotl
2023-06-01 20:05:25 +00:00
ancientmarinerdev
afb4540408
Clean up
2023-06-01 20:05:25 +00:00
ancientmarinerdev
ae32ce4a0a
Split hostile and non-hostile mob caps
2023-06-01 20:05:25 +00:00
ancientmarinerdev
ea4ea3f05e
Standardise despawn logic and add asserts. Add persistent flag for mobs that have been interacted with.
2023-05-09 22:24:40 +00:00
ancientmarinerdev
bd579314ba
Remove logging and clean up
2023-03-19 02:44:35 +00:00
ancientmarinerdev
e7449a65d8
Fix check_position and change spawn check to stages
2023-03-19 02:44:35 +00:00
ancientmarinerdev
a25cced40e
Remove comment now resolved
2023-03-04 02:18:36 +00:00