-- Unified Skins for Minetest - based modified Bags from unfied_inventory and skins from inventory_plus -- Copyright (c) 2012 cornernote, Dean Montgomery -- Rework 2017 by bell07 -- License: GPLv3 -- Boilerplate to support localized strings if intllib mod is installed. skins = {} skins.modpath = minetest.get_modpath(minetest.get_current_modname()) skins.default = "character" local S if minetest.get_modpath("intllib") then skins.S = intllib.Getter() else skins.S = function(s) return s end end dofile(skins.modpath.."/skin_meta_api.lua") dofile(skins.modpath.."/api.lua") dofile(skins.modpath.."/skinlist.lua") dofile(skins.modpath.."/formspecs.lua") dofile(skins.modpath.."/chatcommands.lua") -- Unified inventory page/integration if minetest.get_modpath("unified_inventory") then dofile(skins.modpath.."/unified_inventory_page.lua") end if minetest.get_modpath("sfinv") then dofile(skins.modpath.."/sfinv_page.lua") end -- 3d_armor compatibility if minetest.global_exists("armor") then armor.get_player_skin = function(self, name) local skin = skins.get_player_skin(minetest.get_player_by_name(name)) return skin:get_texture() end armor.get_preview = function(self, name) local skin = skins.get_player_skin(minetest.get_player_by_name(name)) return skin:get_preview() end armor.update_player_visuals = function(self, player) if not player then return end local skin = skins.get_player_skin(player) skin:apply_skin_to_player(player) armor:run_callbacks("on_update", player) end end -- Update skin on join skins.ui_context = {} minetest.register_on_joinplayer(function(player) skins.update_player_skin(player) end) minetest.register_on_leaveplayer(function(player) skins.ui_context[player:get_player_name()] = nil end) default.player_register_model("skinsdb_3d_armor_character.b3d", { animation_speed = 30, textures = { "blank.png", "blank.png", "blank.png", "blank.png", }, animations = { stand = {x=0, y=79}, lay = {x=162, y=166}, walk = {x=168, y=187}, mine = {x=189, y=198}, walk_mine = {x=200, y=219}, sit = {x=81, y=160}, }, })