]> git.lizzy.rs Git - Crafter.git/blobdiff - mods/armor/init.lua
Add in jetpacks
[Crafter.git] / mods / armor / init.lua
index e87c33ce3b446b2d695630eebc7e4a13caabe0fc..ba458994868444b45a50c66ea5f858758dd29ec8 100644 (file)
@@ -6,31 +6,27 @@ function recalculate_armor(player)
     local armor_skin = "blank_skin.png"
 
     local stack = inv:get_stack("armor_head",1):get_name()
-    stack = stack:gsub("_item.png","")
-    stack = stack:gsub("armor:","")
     if stack ~= "" then
-        player_skin = player_skin.."^"..stack..".png"
+        local skin_element = minetest.get_itemdef(stack, "wearing_texture")
+        player_skin = player_skin.."^"..skin_element
     end
 
     stack = inv:get_stack("armor_torso",1):get_name()
-    stack = stack:gsub("_item.png","")
-    stack = stack:gsub("armor:","")
     if stack ~= "" then
-        armor_skin = armor_skin.."^"..stack..".png"
+        local skin_element = minetest.get_itemdef(stack, "wearing_texture")
+        armor_skin = armor_skin.."^"..skin_element
     end
 
     stack = inv:get_stack("armor_legs",1):get_name()
-    stack = stack:gsub("_item.png","")
-    stack = stack:gsub("armor:","")
     if stack ~= "" then
-        armor_skin = armor_skin.."^"..stack..".png"
+        local skin_element = minetest.get_itemdef(stack, "wearing_texture")
+        armor_skin = armor_skin.."^"..skin_element
     end
 
     stack = inv:get_stack("armor_feet",1):get_name()
-    stack = stack:gsub("_item.png","")
-    stack = stack:gsub("armor:","")
     if stack ~= "" then
-        armor_skin = armor_skin.."^"..stack..".png"
+        local skin_element = minetest.get_itemdef(stack, "wearing_texture")
+        armor_skin = armor_skin.."^"..skin_element
     end
     player:set_properties({textures = {player_skin,armor_skin}})
 end
@@ -249,6 +245,7 @@ for material_id,material in pairs(materials) do
             },
             inventory_image = material_id.."_"..armor_id.."_item.png",
             stack_max = 1,
+            wearing_texture = material_id.."_"..armor_id..".png",
             tool_capabilities = {
                 full_punch_interval = 0,
                 max_drop_level = 0,
@@ -297,6 +294,16 @@ for material_id,material in pairs(materials) do
                     {"main:"..material_id, "", "main:"..material_id}
                 }
             })
+            minetest.register_node("armor:"..material_id.."_"..armor_id.."particletexture", {
+                description = "NIL",
+                tiles = {material_id.."_"..armor_id.."_item.png"},
+                groups = {},
+                drop = "",
+                drawtype = "allfaces",
+                on_construct = function(pos)
+                    minetest.remove_node(pos)
+                end,
+            })
         end
         
     end