35 Commits

Author SHA1 Message Date
Elias Åström
bcdf22b7c2 Add language files so weblate can find mods 2024-12-18 16:34:19 +00:00
Elias Åström
64388c1155 update-tr.sh 2024-12-14 16:02:04 +01:00
cora
e9e2e921e3 Fix a few instances of get_objects_inside_radius to use iterator
these seem to have snuck back in, the ones in mcl_pistons are fixed in
another PR
2024-12-12 16:00:24 +00:00
cora
4da948c9b4 Vaults: spawn loot items a little higher to prevent them getting stuck
in the vault
2024-11-24 17:14:26 +00:00
Jürgen Rühle
411bd48f6b Change auto activation to use node timer
Inactive vaults have a 1 second node timer started by on_construct, lbm,
or vault deactivation. Activating requires a player within distance 3
while deactivating only happens if there is no player within distance 5.
2024-11-24 17:14:26 +00:00
Jürgen Rühle
7bca6fcce9 Only auto activate if player can open vault
Otherwise it wouldn't be useful to deactivate the vault after ejecting the
loot. This resolves the activate/deactivate cycle between auto activation
and active vault deactivation when no eligible player is near.

Also guard can_open and try_open against non player clickers.
2024-11-24 17:14:26 +00:00
Jürgen Rühle
5cb18fed5e Slightly reduce visual_size of vault item entity
To prevent clipping into the node textures.
2024-11-24 17:14:26 +00:00
Jürgen Rühle
ea3aa4946d Verify vault and ominous vault loot table
Add failure chance to unique loot table, adapt potion levels and
enchantments to wiki values.

To compensate for the missing trident, slightly reduced the failure chance
for the unique loot. The missing trident enchantments now give a high
chance to create a mending book, which seems appropriate.
2024-11-24 17:14:26 +00:00
Jürgen Rühle
351ac5c351 Auto activate vaults when a player is near
Don't require any other condition for activation.
2024-11-24 17:14:26 +00:00
Jürgen Rühle
3e73e23605 Only activate inactive vaults
Provide node as bonus result from get_vault_def
2024-11-24 17:14:26 +00:00
Jürgen Rühle
2b613bba20 Fix vault loot getting lost on server shutdown
Store loot list in private node meta data, handle ejection in the item entity,
and recreate the entity for active and ejecting vaults in a LBM.

This also fixes active vaults having no item display after server restart and
ejecting vaults having display of the ejected items.
2024-11-24 17:14:26 +00:00
Jürgen Rühle
2b8c43428a Fix vault deactivating while ejecting
Vault item entity on_step must check for presence of active vault node
before swapping to inactive vault.
2024-11-24 17:14:26 +00:00
Jürgen Rühle
c722ecb41b Make vault looter ringbuffer size configurable
Note that currently the smallest supported size is 1, so in a singleplayer
world each vault can be looted at most once.
2024-11-24 17:14:26 +00:00
Jürgen Rühle
01ba6bf061 Optionally register trial key in register_vault
Add (optipng-ed) ominous trial key image from
https://github.com/NovaWostra/Pixel-Perfection-Chorus-Eddit.git
2024-11-24 17:14:26 +00:00
Jürgen Rühle
70a0070184 Refactor vaults api to use ringbuffer node meta handling 2024-11-24 17:14:26 +00:00
Jürgen Rühle
2420172812 Refactor vaults api
Use constants for size and node meta key, ringbuffer.deserialize, and
return value from insert_if_not_exists to save extra can_open call.
2024-11-24 17:14:26 +00:00
Jürgen Rühle
9369c3ed76 Fix ominous vault bottom texture 2024-11-24 17:14:26 +00:00
cora
b088104961 Add ominous vaults 2024-11-24 17:14:26 +00:00
cora
29d647fe65 Don't show active and ejecting vault types in creative inventory 2024-11-24 17:14:26 +00:00
cora
53bb76288b Make vaults use ringbuffer class to only store the last 180 players 2024-11-24 17:14:26 +00:00
cora
6999797a4c Use private node meta fields instead of mod storage 2024-11-24 17:14:26 +00:00
cora
7e89469fac Add global vault activation function 2024-11-24 17:14:26 +00:00
cora
dcc4e6869d Deactivate vault when no eligible players are near 2024-11-24 17:14:26 +00:00
cora
ba31fd6ba5 Use variable key items per vault type 2024-11-24 17:14:26 +00:00
cora
6072a0538e Use PcgRandom instead of PseudoRandom 2024-11-24 17:14:26 +00:00
cora
3e60be285d Save visited players in mod_storage 2024-11-24 17:14:26 +00:00
cora
0bf709671f Only show entity in active vaults 2024-11-24 17:14:26 +00:00
cora
3bf68a3b22 Remove item entity when node is removed 2024-11-24 17:14:26 +00:00
cora
40502c99ac Add item entity within active vault 2024-11-24 17:14:26 +00:00
cora
6119eb9b6a Fix min>max in vault loot 2024-11-24 17:14:26 +00:00
cora
ae0f335e2a Vault hardness is 50 2024-11-24 17:14:26 +00:00
cora
08ae07ebcd Add basic asserts to vault registration function 2024-11-24 17:14:26 +00:00
cora
839f5932bf Move vaults API to separate file 2024-11-24 17:14:26 +00:00
cora
9a0d6dd3ac Turn vault off after ejecting is done 2024-11-24 17:14:26 +00:00
cora
9b330f5376 Add basic vault API 2024-11-24 17:14:26 +00:00