Merge branch 'clothing'

master
None 2014-08-05 13:30:11 +04:00
commit a636aca006
1 changed files with 23 additions and 33 deletions

View File

@ -1,51 +1,41 @@
clothing = {}
--{{{ Wear clothing (on_place)
local function clothingPutOn(item, player)
local name = player:get_player_name()
local wear_image = item:get_definition().wear_image
local weared = clothing[name]
table.insert(weared, wear_image)
local skin = ""
for _,clothing in ipairs(weared) do
if skin ~= "" then
skin = skin .. "^" .. clothing
else
skin = clothing
--{{{ Wear clothing
clothing.update_skin = function(player)
local weared = player:get_inventory():get_list("wear")
local skin = default.player_get_animation(player).textures[1]
for _,itemstack in ipairs(weared) do
if not itemstack:is_empty() then
skin = skin .. "^" .. itemstack:get_definition().wear_image
end
end
default.player_set_textures(player, {skin})
minetest.log("action", name .. " puts on a " .. item:get_name())
item:take_item()
return item
minetest.log("action",
"update skin for player " ..
player:get_player_name()
)
end
--}}}
--{{{ Save and restore data
minetest.register_on_joinplayer(function(player)
clothing.update_skin(player)
end)
minetest.register_on_newplayer(function(player)
--TODO: default.player_get_animations().textures (returns nil, becouse
-- using default textures). Needs skin system.
local skin = default.registered_player_models["character.x"].textures
clothing[player:get_player_name()] = skin
end)
--{{{ Save data
minetest.register_on_shutdown(function()
end)
minetest.register_globalstep(function(dtime)
-- Add inventory list for clothing
player:get_inventory():set_list("wear", {})
player:get_inventory():set_size("wear", 36)
end)
--}}}
--{{{ Cloth
-- Required values is:
-- "wear_image" (this image is adding on player skin)
minetest.register_craftitem("clothing:test", {
decription = "Test cloth",
inventory_image = "clothing_test.png",
wield_image = "clothing_test.png",
wear_image = "clothing_test.png",
stack_max = 1,
on_place = clothingPutOn
})
--}}}