minetest_game/mods/playerskins/init.lua
2017-01-13 09:13:48 +01:00

48 lines
1.6 KiB
Lua

-- thanks for the support from tenplus1, kaeza and Shara <3
--
-- this is a kind of pre-version of the Illuna skinmod.
-- it is supposed to work together with a skinserver later.
-- since it is very basic and the base kindly rewritten by tenplus1,
-- i didn't yet decide about any license and so on.
-- get mod textures path
local path = minetest.get_modpath("playerskins") .. "/textures/"
-- this function runs every time player joins game
minetest.register_on_joinplayer(function(player)
-- get player name from player object
local name = player:get_player_name()
-- make name lower case and add .png extension
name = name:lower() .. ".png"
-- set skin to default
local skin = "character.png"
-- check if texture exists and set new skin
local f = io.open(path .. name, "r")
if f then
skin = name -- set new skin name
f:close() -- close file
-- apply player texture
minetest.after(1, function()
if minetest.get_modpath("3d_armor") then
-- FIXME: after function is a placeholder to validate function
minetest.after(0, function(player)
if not player then
return
end
local name = player:get_player_name()
armor.textures[player:get_player_name()].skin = skin
armor:set_player_armor(player)
end, player)
else
player:set_properties({
textures = {skin},
})
end
end)
end
end)