teknomunk
2fec9696b6
Implement mcl_util.remove_entity() and convert projectile code to use it
2024-11-16 19:46:37 -06:00
teknomunk
4731ae64f0
Fix condition on node collision for mob projectiles
2024-11-14 06:36:49 -06:00
teknomunk
7867168c41
Correct damage for mob projectiles
2024-11-14 06:25:30 -06:00
teknomunk
a6363f779f
Move arrow self-collision grace logic to vl_projectile then apply to mob projectiles and splash and linger potions, allow entity luaentity to be passed to mcl_util.get_entity_id()
2024-11-13 22:02:58 -06:00
teknomunk
b8250e4dcc
Replace _puncher with _owner, rework projectile code to make _owner a string, copy mcl_util.gen_uuid() from minecart branch, add mcl_util.get_entity_id(), fix crash
2024-11-12 01:00:42 +01:00
the-real-herowl
0cbe304c87
Fixed abnormal skull rotation
2024-11-12 01:00:42 +01:00
teknomunk
c6376f09e6
Stop wither from shooting itself
2024-11-12 01:00:42 +01:00
teknomunk
07ebebdc48
Fix unintentional collision box change
2024-11-12 01:00:42 +01:00
teknomunk
76d654762a
Fix luacheck findings for this PR: remove unused variables, remove overwritten value, add missing dependencies, fix undefined variable usage
2024-11-12 01:00:42 +01:00
teknomunk
9c11d0ce92
Allow mob projectiles to hit their owner after 2 seconds (used by ghast fireball)
2024-11-12 01:00:42 +01:00
teknomunk
b17c16804d
Remove redundant check
2024-11-12 01:00:42 +01:00
teknomunk
d2676da152
Correct behavior when ignore_gravity flag is true, fix mob projectile velocity calculation, add missing entity_def lookup
2024-11-12 01:00:42 +01:00
teknomunk
d195066d94
Convert mcl_mobs.register_arrow() to use vl_projectile, tested only with shulker bullet so far
2024-11-12 01:00:42 +01:00
kno10
b540e6c77b
Improve head swivel code ( #4622 )
...
* Utilize the minetest 5.9.0 API that uses radians not degree.
* Simplify computations to make this more efficient, in particular by querying and updating the bone position less frequently.
* Resolves minetest warning `Deprecated call to set_bone_position, use set_bone_override instead` in this location, but other uses remain.
* `mcl_util.set_bone_position` not modified, because it redundantly compares to the previous rotation once more.
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4622
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-11-10 02:41:55 +01:00
kno10
e293cbe631
Better handling of touching_ground for bouncing on beds ( #4689 )
...
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4689
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-10-27 14:03:50 +01:00
teknomunk
614518c6cd
Revert minetest.add_entity() -> mcl_mobs.spawn() from #4445 ( #4679 )
...
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4679
Reviewed-by: kno10 <kno10@noreply.git.minetest.land>
Co-authored-by: teknomunk <teknomunk@protonmail.com>
Co-committed-by: teknomunk <teknomunk@protonmail.com>
2024-10-08 15:34:30 +02:00
kno10
253a06fa08
Fix mob egg double-spawns ( #4657 )
...
If you spawn a mob clicking on a wall, two mobs will be spawned.
To reproduce: face a stack of stones, with a spawn egg click on the side of a stone. It does not happen when you click the top of a node, because spawning below fails and only the second one succeeds.
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4657
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: kno10 <kno10@noreply.git.minetest.land>
Co-committed-by: kno10 <kno10@noreply.git.minetest.land>
2024-09-30 19:21:40 +02:00
kno10
dcfd31d17a
Avoid random jumps when standing due to gravity (fewer villagers on the roofs) ( #4547 )
...
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4547
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-09-30 11:22:31 +02: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
d85febdb15
Cactus damage cleanup, drop redundant conditions ( #4625 )
...
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4625
Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-09-08 05:21:42 +02:00
kno10
ebee85db7e
Fix incorrect usages of math.random ( #4621 )
...
random() does not support float arguments
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4621
Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-09-07 14:58:12 +02:00
THE-NERD2
86e3446407
Update mount.lua to fix horse riding problem ( #4580 )
...
Previously, horses would continue to move even after the movement key was released. This was because mcl_mobs.drive was returning before stopping the horse. This commit makes mcl_mobs.drive stop the horse before returning.
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4580
Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
Co-authored-by: THE-NERD2 <pdp9729@gmail.com>
Co-committed-by: THE-NERD2 <pdp9729@gmail.com>
2024-08-16 22:21:18 +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
3928e12634
Fix two more crashes, stray space
2024-06-24 03:06:26 +02:00
teknomunk
304550d90c
Fix parameter name
2024-06-24 03:06:26 +02:00
teknomunk
0a2336ad82
Handle conversion of mobs that were incorrectly converted
2024-06-24 03:06:26 +02:00
teknomunk
7e0afd7e21
Remove debug logging
2024-06-24 03:06:26 +02:00
teknomunk
15fa925aae
More fields to strip
2024-06-24 03:06:26 +02:00
teknomunk
4935f5fdda
Add debug logging
2024-06-24 03:06:26 +02:00
teknomunk
41032ec999
Use correct variable name
2024-06-24 03:06:26 +02:00
teknomunk
d64ee18f75
Strip some fields from the mob's staticdata on conversion
2024-06-24 03:06:26 +02:00
teknomunk
1942384fe5
Move object remove after position check
2024-06-24 03:06:26 +02:00
teknomunk
9b50dd6565
Update to use new_object instead of obj
2024-06-24 03:06:26 +02:00