updated armor mod

This commit is contained in:
cale 2016-02-11 12:21:53 +01:00
parent 9f0d7ba1f5
commit 9ff9d46c89
2 changed files with 77 additions and 5 deletions

View File

@ -1,3 +1,75 @@
armor = {}
armor.invs = {}
function armor.register_armor(name, def)
minetest.register_craftitem(name .. "_chestplate", {
description = def.description .. " Chestplate",
inventory_image = def.tex .. "_chestplate.png",
protection = def.protection,
skin = def.skin .. "_chestplate.png",
})
minetest.register_craftitem(name .. "_cboots", {
description = def.description .. " Boots",
inventory_image = def.tex .. "_boots.png",
protection = def.protection,
skin = def.skin .. "_boots.png",
})
minetest.register_craftitem(name .. "_leggings", {
description = def.description .. " Leggings",
inventory_image = def.tex .. "_leggings.png",
protection = def.protection,
skin = def.skin .. "_leggings.png",
})
end
function armor.update_armor(name, pl)
local a = armor.invs[name]:get_list("main")
local p = 100
for k,v in pairs(a) do
if v:get_definition() and v:get_definition().protection then
p = p - v:get_definition().protection
end
end
pl:set_armor_groups({fleshy = p})
end
default.inv_form = default.inv_form .. "list[detached:armor_%s;main;0,0;1,3;]"
default.inv_form = default.inv_form.. default.itemslot_bg(0,0,1,3)
minetest.register_on_joinplayer(function(player)
if armor.invs[player:get_player_name()] then
return
end
armor.invs[player:get_player_name()] = minetest.create_detached_inventory("armor_" .. player:get_player_name(), {
on_put = function(inv, listname, index, stack, player)
armor.update_armor(player:get_player_name(), player)
end,
on_take = function(inv, listname, index, stack, player)
armor.update_armor(player:get_player_name(), player)
end,
})
armor.invs[player:get_player_name()]:set_size("main", 3)
end)
armor.register_armor("armor:iron", {
description = "Iron",
tex = "armor_iron",
protection = 15,
skin = "armor_skin_iron"
})
armor.register_armor("armor:copper", {
description = "Copper",
tex = "armor_copper",
protection = 20,
skin = "armor_skin_copper"
})
armor.register_armor("armor:diamond", {
description = "Diamond",
tex = "armor_diamond",
protection = 28,
skin = "armor_skin_diamond"
})

View File

@ -16,10 +16,10 @@ default.inv_form = default.inv_form..default.gui_colors
default.inv_form = default.inv_form..default.gui_bg
default.inv_form = default.inv_form.."list[current_player;main;0,3.5;8,4;]"
default.inv_form = default.inv_form..default.itemslot_bg(0,3.5,8,4)
default.inv_form = default.inv_form.."list[current_player;craft;1,1;3,1;]"
default.inv_form = default.inv_form..default.itemslot_bg(1,1,3,1)
default.inv_form = default.inv_form.."list[current_player;craftpreview;5,1;1,1;]"
default.inv_form = default.inv_form..default.itemslot_bg(5,1,1,1)
default.inv_form = default.inv_form.."list[current_player;craft;2.5,0.5;3,1;]"
default.inv_form = default.inv_form..default.itemslot_bg(2.5,0.5,3,1)
default.inv_form = default.inv_form.."list[current_player;craftpreview;3.5,1.5;1,1;]"
default.inv_form = default.inv_form..default.itemslot_bg(3.5,1.5,1,1)
default.craft_form = "size[8,7.5;]"
default.craft_form = default.craft_form..default.gui_colors
@ -36,7 +36,7 @@ default.craft_form = default.craft_form..default.itemslot_bg(5,1,1,1)
minetest.register_on_joinplayer(function(player)
player:hud_set_hotbar_image("gui_hotbar.png")
player:hud_set_hotbar_selected_image("gui_hotbar_selected.png")
player:set_inventory_formspec(default.inv_form)
player:set_inventory_formspec(default.inv_form:format(player:get_player_name()))
player:set_properties({
mesh = "character.x",