add error checks, tweak & tidy code

This commit is contained in:
TenPlus1 2018-08-04 10:07:32 +01:00
parent 2fe4c474ed
commit a67927f75a
3 changed files with 16 additions and 15 deletions

View File

@ -1,5 +1,4 @@
default
inventory_plus?
3d_armor?
intllib?
sfinv?
inventory_plus?
intllib?

View File

@ -126,24 +126,21 @@ skins.update_player_skin = function(player)
local name = player:get_player_name()
player:set_properties({
textures = {skins.skins[name] .. ".png"},
})
default.player_set_textures(player, skins.skins[name] .. ".png")
end
-- register sfinv tab when inv+ not active
if skins.sfinv and not skins.invplus then
sfinv.register_page("skins:skins", {
title = "Skins",
sfinv.register_page("skins:skins", {title = "Skins",
get = function(self, player, context)
local name = player:get_player_name()
return sfinv.make_formspec(player, context,skins.formspec.main(name))
end,
on_player_receive_fields = function(self, player, context, fields)
local name = player:get_player_name()
on_player_receive_fields = function(self, player, context, fields)
local event = minetest.explode_textlist_event(fields["skins_set"])
@ -153,6 +150,8 @@ sfinv.register_page("skins:skins", {
if index > id then index = id end
local name = player:get_player_name()
skins.skins[name] = skins.list[index]
skins.update_player_skin(player)
@ -179,12 +178,14 @@ end
minetest.register_on_joinplayer(function(player)
local name = player:get_player_name()
local skin = player:get_attribute("simple_skins:skin")
-- do we already have a skin in player attributes?
local skin = player:get_attribute("simple_skins:skin")
if skin then
skins.skins[name] = skin
else -- otherwise use default skin
-- otherwise use skin from simple_skins.mt file or default if not set
elseif not skins.skins[name] then
skins.skins[name] = "character_1"
end
@ -207,7 +208,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if fields.skins then
inventory_plus.set_inventory_formspec(player,
skins.formspec.main(name) .. "button[0,.75;2,.5;main;Back]")
skins.formspec.main(name) .. "button[0,.75;2,.5;main;Back]")
end
local event = minetest.explode_textlist_event(fields["skins_set"])
@ -224,7 +225,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if skins.invplus then
inventory_plus.set_inventory_formspec(player,
skins.formspec.main(name) .. "button[0,.75;2,.5;main;Back]")
skins.formspec.main(name) .. "button[0,.75;2,.5;main;Back]")
end
skins.update_player_skin(player)
@ -268,7 +269,7 @@ minetest.register_chatcommand("setskin", {
S("Your skin has been set to") .. " character_" .. skin)
return true, "** " .. playername .. S("'s skin set to")
.. " character_" .. skin .. ".png"
.. " character_" .. skin .. ".png"
end,
})

View File

@ -7,6 +7,7 @@ https://forum.minetest.net/viewtopic.php?id=9100
Change log:
- 0.7 - Add some error checks, improve /setskin and tweak & tidy code
- 0.6 - Updated to use Minetest 0.4.16 functions
- 0.5 - Added compatibility with default sfinv inventory, disabled /skin command for now
- 0.4 - Added /skin command to set player skin, no longer dependent on Inventory+, also /setskin command for server admin to set custom skins for player.