diff options
Diffstat (limited to 'api.lua')
-rw-r--r-- | api.lua | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -0,0 +1,40 @@ +-- get current skin +skins.get_player_skin = function(player) + local skin = player:get_attribute("skin") + if not skins.textures[skin] then + skin = skins.default + end + return skin +end + +-- Set skin +skins.set_player_skin = function(player, skin) + if skin == skins.default then + skin = "" + end + player:set_attribute("skin", skin) + skins.update_player_skin(player) +end + +-- update visuals +skins.update_player_skin = function(player) + local skin = skins.get_player_skin(player) + player:set_properties({ + textures = {skins.textures[skin]}, + }) +end + +-- Update skin on join +minetest.register_on_joinplayer(function(player) + skins.update_player_skin(player) +end) + +-- 3d_armor compatibility +if minetest.global_exists("armor") then + armor.get_player_skin = function(self, name) + return skins.get_player_skin(minetest.get_player_by_name(name)) + end + armor.get_preview = function(self, name) + return skins.preview[skins.get_player_skin(minetest.get_player_by_name(name))] + end +end |