48 lines
1.6 KiB
Lua
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)
|