Commit Graph

10697 Commits

Author SHA1 Message Date
teknomunk
e34862d100 Change main spawning look to use adaptive delay based on last run with maximum period of 2.5 seconds, put some logging behind a flag, remove unused constants 2024-08-06 06:14:59 -05:00
teknomunk
6581757b88 Move raycast_line_of_sight function to mcl_mobs/functions.lua, rework group spawn point selection code, add line of sight check to group origin 2024-08-06 06:14:59 -05:00
teknomunk
2453406392 Change logging default and one log message 2024-08-06 06:14:57 -05:00
teknomunk
45ffe8ea27 Refactor spawn_group() so that each spawn point can only be used once and protection is respected 2024-08-06 06:10:36 -05:00
teknomunk
8cf0660f37 Fix passive spawning, disable some debug logging 2024-08-06 06:10:36 -05:00
teknomunk
6028cbaa88 Stop mobs that require ground from spawning in water, remove unused code and variables, some minor microoptimizations 2024-08-06 06:10:36 -05:00
teknomunk
4b3edcaed8 Drop biome group generation and replace with spawn state checks for much improved performance (but has regressions), change logging of failure to find spawn point, increase spawn attempts to 4 per second with no position retries and only a single mob or group per attempt 2024-08-06 06:10:36 -05:00
teknomunk
ba1ed47747 Replace biome_check() with table.find() 2024-08-06 06:10:36 -05:00
teknomunk
6abf980d98 Implement generating biome groups for spawning (not actually used yet) 2024-08-06 06:10:36 -05:00
teknomunk
d5edaaa688 Move table.* functions to separate file in mcl_utils, add table.find() and table.intersect() 2024-08-06 06:10:36 -05:00
teknomunk
9b958bed62 Move modpath to separate variable to make it easier to add new files without merge conflicts 2024-08-06 06:10:36 -05:00
teknomunk
f985fcf5c5 Have the list of biomes automatically generated 2024-08-06 06:10:36 -05:00
teknomunk
52f8814876 Initial changes to spawn_check() and spawn_a_mob(), add profiling for mob spawning 2024-08-06 06:10:34 -05: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
WillConker
6c614d8376 Added line breaks in water freezing condition 2024-08-03 14:21:33 +02:00
WillConker
a785be59d9 Changed node light check to artificial light so that water can freeze in the day 2024-08-03 14:21:33 +02:00
cora
f23014005f Only freeze water under open air
and if light level < 10
2024-08-03 14:21:33 +02:00
cora
c2098d777f Prevent water freezing and ice melting ABMs from fighting 2024-08-03 14:21:33 +02:00
cora
dc07eea590 Freeze water in cold areas 2024-08-03 14:21:33 +02:00
OgelGames
0012bdb71e Clear itemstring when picking up or merging items (#4530)
Prevents possible item duplication with other mods. Matches the behavior of the default `__builtin:item`.

See also https://github.com/mt-mods/pipeworks/issues/130

Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4530
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: OgelGames <ogelgames@noreply.git.minetest.land>
Co-committed-by: OgelGames <ogelgames@noreply.git.minetest.land>
2024-07-31 03:26:28 +02:00
kno10
b8d7139792 Fix iron golem attack animation (#4542)
C.f. MCLA

Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4542
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-07-31 03:18:53 +02:00
WillConker
cddc1982be Fix first loot pool not being used in shipwrecks or ocean temples (#4523)
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4523
Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
Co-authored-by: WillConker <willconker@noreply.git.minetest.land>
Co-committed-by: WillConker <willconker@noreply.git.minetest.land>
2024-07-31 03:00:27 +02:00
kno10
9595b0df59 Inconsistent bed bouncyness, make top match bottom (#4495)
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4495
Reviewed-by: teknomunk <teknomunk@protonmail.com>
Co-authored-by: kno10 <kno10@noreply.git.minetest.land>
Co-committed-by: kno10 <kno10@noreply.git.minetest.land>
2024-07-31 02:58:38 +02:00
WillConker
ff21d1eab1 Make eggs spawn chicks when hitting entities (#4484)
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4484
Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
Co-authored-by: WillConker <willconker@noreply.git.minetest.land>
Co-committed-by: WillConker <willconker@noreply.git.minetest.land>
2024-07-31 02:57:20 +02:00
WillConker
9d5b46c28a Slow ender dragon regeneration (#4481)
Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4481
Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
Co-authored-by: WillConker <waj01@joanes.net>
Co-committed-by: WillConker <waj01@joanes.net>
2024-07-31 02:56:33 +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
Mikita Wiśniewski
567d112942 Fix deprecated get_metadata() usage
Items are instead written as a serialized string into ItemStackMetaRef, and read from there as well. Old itemstacks get converted to the new format automatically.
2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
347305eaea Fix ender chests rotate crash 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
508bc19f6a Remove nil fields from trapped chest definition 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
c1e9e4b1a2 Fix typos in API.md 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
7bf15642ca Resolve teknomunk's comments 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
f1fa6240bb Fix shift-clicking and a few luacheck warnings 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
c5bc6ff189 Cleanup comments (don't use \=, it's annoying) 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
70e903b716 Simplify double inventory inv logic 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
209b24a2fb Move LBMs out of init.lua and fix API.md 2024-07-31 02:27:26 +02:00
cora
ac05f8bad6 Remove unused variables in chests example.lua 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
76cff76d91 Add an introduction text to API.md 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
49b6d09985 Add documentation (README.md, API.md) 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
a66c35a9ea Fix double chests once more (hoppers this time) 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
a28e55160f Make the chest opening/closing sound customizable + fix double chests 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
6bbb6b8dec Add title field for mcl_chests.register_chest 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
b4b5bf8391 Move some groups (api.lua → chests.lua) 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
16dd8694a6 Refactor mcl_chests.register_chest AGAIN + cleanup
Now you can define custom groups for the chests, as shown in the trapped
chests example (now they show up under "Mechanisms" tab in creative!).

I'm a bit suspicious of the new return-wrapped functions, as in *they
might break under some circumstances I didn't observe*. It will require
some heavy testing to make sure nothing crashes in the future.

Also, `on_rightclick` for double chests is something I really want to
return-wrap as well, but failed to do so. 🤷
2024-07-31 02:27:26 +02:00
Jürgen Rühle
7a5ee4e6e2 Better detection of properly serialized data
Remove entity if initialization data is missing. Downgrade message in that case
to a warning.
2024-07-31 02:27:26 +02:00
Jürgen Rühle
d0d9600709 Fix invisible chests
Pass chest entity initialization data to on_activate as staticdata so
initialization is atomic, preventing premature deletion of chest entity
by concurrent server steps.
2024-07-31 02:27:26 +02:00
cora
709b73295c Fix meta:set_string being called with nil 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
1d77017ca9 Refactor mcl_chests.register_chest and clean-up 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
d6d64d8837 Fix long doc strings 2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
e771f0e3ff Split ITEMS/mcl_chests/init.lua (fixes #281)
Shulker boxes can now be rotated.

The TODO will now be transferred to PR.
2024-07-31 02:27:26 +02:00
Mikita Wiśniewski
b10bfe27ce Clean-up ITEMS/mcl_chests code, part 2
Chest tile management has been reorganized to use postfixes, some slight
formatting fixes applied here and there, and roughly marked down where
the new files should (ideally) begin and end.
2024-07-31 02:27:26 +02:00