diff options
Diffstat (limited to 'player_textures')
-rw-r--r-- | player_textures/LICENSE | 24 | ||||
-rw-r--r-- | player_textures/README | 1 | ||||
-rw-r--r-- | player_textures/depends.txt | 2 | ||||
-rw-r--r-- | player_textures/init.lua | 38 |
4 files changed, 44 insertions, 21 deletions
diff --git a/player_textures/LICENSE b/player_textures/LICENSE new file mode 100644 index 0000000..68a49da --- /dev/null +++ b/player_textures/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to <http://unlicense.org/> diff --git a/player_textures/README b/player_textures/README new file mode 100644 index 0000000..c79fb32 --- /dev/null +++ b/player_textures/README @@ -0,0 +1 @@ +Works pretty much the same as every other version of this mod. Put skins in the textures directory, with the name following the pattern "player_%s.png", where %s is the player name. diff --git a/player_textures/depends.txt b/player_textures/depends.txt index 4ad96d5..5e78c21 100644 --- a/player_textures/depends.txt +++ b/player_textures/depends.txt @@ -1 +1 @@ -default +default? diff --git a/player_textures/init.lua b/player_textures/init.lua index c38b347..5aa2ec4 100644 --- a/player_textures/init.lua +++ b/player_textures/init.lua @@ -1,27 +1,25 @@ -local mod_path = minetest.get_modpath(minetest.get_current_modname()) -local got_tex = {} -local got_gdl = minetest.get_dir_list +local function pivot(table) + local ret = {} + for k,v in pairs(table) do + ret[v] = k + end + return ret +end -if got_gdl then - for _, name in pairs(minetest.get_dir_list(mod_path.."/textures")) do - if name:sub(1, 7) == "player_" then - local player_name = name:sub(8):match("(.+)%.") - got_tex[player_name] = true +local textures = pivot(minetest.get_dir_list(minetest.get_modpath("player_textures")..DIR_DELIM.."textures")) + +local function applyskin(player) + local name = player:get_player_name() + if textures[string.format("player_%s.png",name)] then + if minetest.get_modpath("default") then + default.player_set_textures(player,string.format("[combine:64x32:0,0=player_%s.png",name)) end + player:set_properties({textures={string.format("[combine:64x32:0,0=player_%s.png",name)}}) end + player:set_properties({visual="mesh",visual_size={x=1,y=1},mesh="character.b3d"}) end minetest.register_on_joinplayer(function(player) - local player_name = player:get_player_name() - local tex = "player_"..player_name..".png" - if got_gdl then - if not got_tex[player_name] then return end - else - if not io.open(mod_path.."/textures/"..tex) then - return - end - end - player:set_properties({textures = {tex}}) + applyskin(player) + minetest.after(10,applyskin,player) end) - - |