mirror of
https://github.com/minetest-mods/skinsdb.git
synced 2024-11-18 07:50:23 +01:00
63 lines
1.5 KiB
Lua
63 lines
1.5 KiB
Lua
-- Unified Skins for Minetest - based modified Bags from unfied_inventory and skins from inventory_plus
|
|
|
|
-- Copyright (c) 2012 cornernote, Dean Montgomery
|
|
-- License: GPLv3
|
|
-- Boilerplate to support localized strings if intllib mod is installed.
|
|
|
|
skins = {}
|
|
skins.modpath = minetest.get_modpath("skins")
|
|
skins.file = minetest.get_worldpath().."/skins.mt"
|
|
skins.default = "character_1"
|
|
skins.pages = {}
|
|
skins.skins = {}
|
|
skins.file_save = false
|
|
|
|
skins.type = { SPRITE=0, MODEL=1, ERROR=99 }
|
|
skins.get_type = function(texture)
|
|
if not skins.is_skin(texture) then
|
|
return skins.type.ERROR
|
|
end
|
|
return skins.type.MODEL
|
|
end
|
|
|
|
skins.is_skin = function(texture)
|
|
if not texture then
|
|
return false
|
|
end
|
|
if not skins.meta[texture] then
|
|
return false
|
|
end
|
|
return true
|
|
end
|
|
|
|
dofile(skins.modpath.."/skinlist.lua")
|
|
dofile(skins.modpath.."/players.lua")
|
|
|
|
|
|
skins.update_player_skin = function(player)
|
|
local name = player:get_player_name()
|
|
|
|
if not skins.is_skin(skins.skins[name]) then
|
|
skins.skins[name] = skins.default
|
|
end
|
|
player:set_properties({
|
|
textures = {skins.skins[name]..".png"},
|
|
})
|
|
end
|
|
|
|
-- Unified inventory page/integration
|
|
if minetest.get_modpath("unified_inventory") then
|
|
dofile(skins.modpath.."/unified_inventory_page.lua")
|
|
end
|
|
|
|
-- Change skin on join - reset if invalid
|
|
minetest.register_on_joinplayer(function(player)
|
|
local player_name = player:get_player_name()
|
|
if not skins.is_skin(skins.skins[player_name]) then
|
|
skins.skins[player_name] = skins.default
|
|
end
|
|
skins.update_player_skin(player)
|
|
end)
|
|
|
|
|