Make player_api optional, fallback to properties
parent
0522e867b3
commit
747add56f1
3
mod.conf
3
mod.conf
|
@ -1,6 +1,7 @@
|
|||
name = epidermis
|
||||
description = Feature-fledged skin (painting) mod
|
||||
depends = modlib, moblib, player_api
|
||||
depends = modlib, moblib
|
||||
optional_depends = player_api
|
||||
author = appguru(eu)
|
||||
license = MIT
|
||||
min_minetest_version = 5.4
|
35
skin.lua
35
skin.lua
|
@ -1,14 +1,37 @@
|
|||
local player_api = rawget(_G, "player_api")
|
||||
|
||||
local function get_textures(player)
|
||||
local anim = player_api.get_animation(player)
|
||||
return anim.textures or player_api.registered_models[anim.model].textures
|
||||
if player_api then
|
||||
local anim = player_api.get_animation(player)
|
||||
return anim.textures or player_api.registered_models[anim.model].textures
|
||||
end
|
||||
return player:get_properties().textures
|
||||
end
|
||||
|
||||
local function get_texture(player, index)
|
||||
return assert(get_textures(player)[index])
|
||||
end
|
||||
|
||||
local function set_textures(player, textures)
|
||||
if player_api then
|
||||
player_api.set_textures(player, textures)
|
||||
return
|
||||
end
|
||||
player:set_properties{textures = textures}
|
||||
end
|
||||
|
||||
local function set_texture(player, index, texture)
|
||||
local textures = modlib.table.copy(get_textures(player))
|
||||
textures[index] = texture
|
||||
set_textures(player, textures)
|
||||
end
|
||||
|
||||
local skin_texture_index = 1
|
||||
|
||||
function epidermis.get_skin(player)
|
||||
return get_textures(player)[1]
|
||||
return get_texture(player, skin_texture_index)
|
||||
end
|
||||
|
||||
function epidermis.set_skin(player, skin)
|
||||
local textures = modlib.table.copy(get_textures(player))
|
||||
textures[1] = skin
|
||||
player_api.set_textures(player, textures)
|
||||
set_texture(player, skin_texture_index, skin)
|
||||
end
|
Loading…
Reference in New Issue