Commit Graph

823 Commits

Author SHA1 Message Date
kno10
e78f5cdbe9 further movement tweaks 2024-12-01 00:53:42 +01:00
kno10
e4deb9c7b5 Movement and path finding improvements. 2024-12-01 00:53:42 +01:00
kno10
77c6c34d0e Mob pushing improvements 2024-12-01 00:53:42 +01:00
kno10
b91f48b419 add and use turn_by/turn_in_direction methods 2024-12-01 00:53:42 +01:00
kno10
5eda59dc13 reduce code duplication, add mob:stand() 2024-12-01 00:53:42 +01:00
kno10
8c2289686d cleanups 2024-12-01 00:53:42 +01:00
kno10
67055959c6 fix delay=0 in combat code, tune turning parameters 2024-12-01 00:53:42 +01:00
kno10
995f1386db More help getting out of water 2024-12-01 00:53:42 +01:00
kno10
1ac53b9c2a More movement code cleanups.
Closes #4506 #4502
2024-12-01 00:53:42 +01:00
kno10
114a7d2b17 More cleanup and improvements to movement code 2024-12-01 00:53:42 +01:00
kno10
33454d7545 More movement code improvements. 2024-12-01 00:53:42 +01:00
kno10
05d6a283a0 Try to reduce how much mobs fall off cliffs.
See #4464 and many more.
2024-12-01 00:53:41 +01:00
kno10
ef763e396c Adjust bones, animations slightly from b3d data.
Initialize bones on spawn.

Note: to obatin bone values, try in Blender

"%.3f, %.3f, %.3f" % tuple((bpy.context.object.pose.bones["head.control"].head - bpy.context.object.pose.bones["head.control"].tail) * Vector((1,-1,1)))

or

"{0:.3f}, {1:.3f}, {2:.3f}".format(*(bpy.context.object.pose.bones["head.control"].head - bpy.context.object.pose.bones["head.control"].tail) @ bpy.context.object.pose.bones["head.control"].matrix * Vector((1,-1,1)))
2024-12-01 00:31:48 +01:00
kno10
c6c77766e3 Rewrite the head swivel code math 2024-12-01 00:31:48 +01:00
teknomunk
2f4e23e403 Add parenthesis for clarity, check pos before using, endermen->rovers in comment 2024-11-30 09:03:36 -06:00
teknomunk
835f97a61e Add mcl_burning.is_affected_by_sunlight(), rework mob light/sunlight damage and burning code 2024-11-28 21:03:18 +01:00
teknomunk
42b7dc9ce8 Switch to using not mcl_burning.is_affected_by_rain() 2024-11-28 21:03:18 +01:00
seventeenthShulker
ae263a19c9 Remove unnecessary raycast from rover (and use the mcl_burning api where we can) 2024-11-28 21:03:18 +01:00
seventeenthShulker
14a0546dce Whoopsie 2024-11-28 21:03:18 +01:00
seventeenthShulker
dc8219fe31 Check mobs are not touching nodes in group:puts_out_fire BEFORE burninating. Should fix the remaining flashing (see #3655). 2024-11-28 21:03:18 +01:00
seventeenthShulker
b976c535ae Fix flashing fire on burning mob during rain/thunder 2024-11-28 21:03:18 +01:00
teknomunk
b582afeb1f Update documentation for Minetest rename to Luanti (#4706)
This updates the VoxeLibre documentation by replacing "Minetest" with "Luanti" and updating links.

Done:
* Update "Minetest" in documentation and comments to "Luanti"
* Update links to forums, ContentDB and Luanti project web page

Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4706
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-11-28 20:55:48 +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