minetest-mods / 3d_armor

Visible player armor & wielded items for minetest
Other
17 stars 39 forks source link

admin boots or other admin armor doesn't protect against lack of air damage #130

Closed scr267 closed 9 months ago

scr267 commented 10 months ago

Hi, not sure if this is a feature or a bug:

3d_armor's admin_boots or other pieces of admin armor used to protect against drowning, but that is no longer the case. If I stay in water for a bit, as an admin I end up drowning.

fluxionary commented 10 months ago

the admin helmet should reset your breath counter every so often. then again, i agree that the admin armor should shield you from all damage from any source.

SmallJoker commented 10 months ago

Cannot reproduce. The admin helmet does protect against suffocating (similar to a diving helmet).

EDIT: The default value is set here: https://github.com/minetest-mods/3d_armor/blob/467709c935a511912ee079cea352fc7c95b607e0/3d_armor/api.lua#L182

It can be changed by specifying a custom armor.conf file within the world or mod directory.

EDIT2: @za267 does this produce the result that you would expect? (git diff)

diff --git a/armor_admin/init.lua b/armor_admin/init.lua
index 9b94fcc..9d81b3f 100644
--- a/armor_admin/init.lua
+++ b/armor_admin/init.lua
@@ -41,7 +41,7 @@ armor:register_armor(":3d_armor:chestplate_admin", {
        description = S("Admin Chestplate"),
        inventory_image = "3d_armor_inv_chestplate_admin.png",
        armor_groups = {fleshy=100},
-       groups = {armor_torso=1, armor_heal=100, armor_use=0,
+       groups = {armor_torso=1, armor_heal=100, armor_use=0, armor_water=1,
                        not_in_creative_inventory=1},
        on_drop = function(itemstack, dropper, pos)
                return
@@ -61,7 +61,7 @@ armor:register_armor(":3d_armor:leggings_admin", {
        description = S("Admin Leggings"),
        inventory_image = "3d_armor_inv_leggings_admin.png",
        armor_groups = {fleshy=100},
-       groups = {armor_legs=1, armor_heal=100, armor_use=0,
+       groups = {armor_legs=1, armor_heal=100, armor_use=0, armor_water=1,
                        not_in_creative_inventory=1},
        on_drop = function(itemstack, dropper, pos)
                return
@@ -81,7 +81,7 @@ armor:register_armor(":3d_armor:boots_admin", {
        description = S("Admin Boots"),
        inventory_image = "3d_armor_inv_boots_admin.png",
        armor_groups = {fleshy=100},
-       groups = {armor_feet=1, armor_heal=100, armor_use=0,
+       groups = {armor_feet=1, armor_heal=100, armor_use=0, armor_water=1,
                        not_in_creative_inventory=1},
        on_drop = function(itemstack, dropper, pos)
                return
scr267 commented 10 months ago

@SmallJoker Yes, that worked for me. The breath counter get's reset no matter which piece of armor I use now. Thank you!