minetest-armor/api.lua
2012-09-17 19:01:06 +09:30

121 lines
2.8 KiB
Lua

--[[
Armor for Minetest
Copyright (c) 2012 cornernote, Brett O'Donnell <cornernote@gmail.com>
Source Code: https://github.com/cornernote/minetest-particles
License: GPLv3
API
]]--
-- expose api
armor = {}
-- get_armor_level
armor.get_armor_level = function(stack,armor_type)
if stack then
return stack:get_definition().groups[armor_type]
end
end
-- set_armor_groups
armor.set_armor_groups = function(player)
local level
local armor_groups = {level=4,fleshy=4,snappy=4,choppy=4}
player_inv = player:get_inventory()
-- helmet
level = armor.get_armor_level(player_inv:get_stack("armor_helmet", 1),"armor_helmet")
if level~=nil then
armor_groups.level = level
end
-- chest
level = armor.get_armor_level(player_inv:get_stack("armor_chest", 1),"armor_chest")
if level~=nil then
armor_groups.fleshy = level
end
-- boots
level = armor.get_armor_level(player_inv:get_stack("armor_boots", 1),"armor_boots")
if level~=nil then
armor_groups.snappy = level
end
-- shield
level = armor.get_armor_level(player_inv:get_stack("armor_shield", 1),"armor_shield")
if level~=nil then
armor_groups.choppy = level
end
player:set_armor_groups(armor_groups)
print(dump(armor_groups))
end
-- register armor
armor.register_armor = function(mod_name,name,label,material,level)
-- tools
minetest.register_tool(mod_name..":"..name.."helmet", {
description = label.." Helmet",
inventory_image = mod_name.."_"..name.."_helmet.png",
groups = {armor_helmet=level},
wear = 0,
})
minetest.register_tool(mod_name..":"..name.."_chest", {
description = label.." Chestplate",
inventory_image = mod_name.."_"..name.."_chest.png",
groups = {armor_chest=level},
wear = 0,
})
minetest.register_tool(mod_name..":"..name.."_boots", {
description = label.." Boots",
inventory_image = mod_name.."_"..name.."_boots.png",
groups = {armor_boots=level},
wear = 0,
})
minetest.register_tool(mod_name..":"..name.."shield", {
description = label.." Shield",
inventory_image = mod_name.."_"..name.."_shield.png",
groups = {armor_shield=level},
wear = 0,
})
-- crafts
minetest.register_craft({
output = mod_name..":"..name.."_helmet_",
recipe = {
{material, material, material},
{material, "", material},
{material, "", material},
},
})
minetest.register_craft({
output = mod_name..":"..name.."_chest_",
recipe = {
{material, material, material},
{material, material, material},
{"", material, ""},
},
})
minetest.register_craft({
output = mod_name..":"..name.."_boots_",
recipe = {
{material, "", material},
{material, "", material},
{material, "", material},
},
})
minetest.register_craft({
output = mod_name..":"..name.."_shield_",
recipe = {
{material, material, material},
{material, "", material},
{material, material, material},
},
})
end