Fix bugs. Add updating skin on join.

master
None 2014-08-04 11:36:56 +04:00
parent c75a15525d
commit 2ef67b6e01
1 changed files with 24 additions and 17 deletions

View File

@ -1,40 +1,47 @@
--{{{ Wear clothing (on_place)
local function put_on(item, player)
local wname = item:get_name()
item = player:get_inventory():add_item("wear", item)
print("DEBUG:", item)
local weared = player:get_inventory():get_list("wear")
local skin = default.player_get_animation(player).textures[1]
for _,itemstack in ipairs(weared) do
skin = skin .. "^" .. itemstack:get_definition().wear_image
end
default.player_set_textures(player, {skin})
minetest.log("action",
player:get_player_name() ..
" puts on a " ..
item:get_name()
wname
)
default.player_set_textures(player, {generate_skin(player)})
minetest.log("action",
"update skin for player " ..
player:get_player_name()
)
item:take_item()
return item
end
function generate_skin(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
return skin
end
--}}}
--{{{ Save data
minetest.register_on_joinplayer(function(player)
print(dump(player:get_inventory():get_lists()))
-- Work. Yeah.
-- player:get_inventory():set_list("wear",{})
default.player_set_textures(player, {generate_skin(player)})
end)
minetest.register_on_player_receive_fields(function(player, formname, fields)
print("DEBUG:", player, dump(formname), dump(fields))
end)
--minetest.register_on_player_receive_fields(function(player, formname, fields)
-- print("DEBUG:", player, dump(formname), dump(fields))
--end)
minetest.register_on_newplayer(function(player)
-- Add inventory list for clothing
player:get_inventory():set_list("wear", {})
player:get_inventory():set_size("wear", 36)
end)
--}}}