mirror of
https://gitlab.com/rubenwardy/awards.git
synced 2024-11-26 17:23:49 +01:00
Fix group total, fix item increment count argument, add player checks, resize award icon, fix log output
This commit is contained in:
parent
fb1670abc6
commit
589837e2f1
@ -43,6 +43,10 @@ end
|
|||||||
-- name - the name of the player
|
-- name - the name of the player
|
||||||
-- award - the name of the award to give
|
-- award - the name of the award to give
|
||||||
function awards.unlock(name, award)
|
function awards.unlock(name, award)
|
||||||
|
if not minetest.get_player_by_name(name) or not minetest.get_player_by_name(name):is_player() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
-- Access Player Data
|
-- Access Player Data
|
||||||
local data = awards.player(name)
|
local data = awards.player(name)
|
||||||
local awdef = awards.registered_awards[award]
|
local awdef = awards.registered_awards[award]
|
||||||
@ -60,7 +64,7 @@ function awards.unlock(name, award)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Unlock Award
|
-- Unlock Award
|
||||||
minetest.log("action", name.." has unlocked award "..name)
|
minetest.log("action", name.." has unlocked award "..award)
|
||||||
data.unlocked[award] = award
|
data.unlocked[award] = award
|
||||||
awards.save()
|
awards.save()
|
||||||
|
|
||||||
@ -91,7 +95,7 @@ function awards.unlock(name, award)
|
|||||||
local title = awdef.title or award
|
local title = awdef.title or award
|
||||||
local desc = awdef.description or ""
|
local desc = awdef.description or ""
|
||||||
local background = awdef.background or "awards_bg_default.png"
|
local background = awdef.background or "awards_bg_default.png"
|
||||||
local icon = awdef.icon or "awards_unknown.png"
|
local icon = awdef.icon.."^[resize:16x16" or "awards_unknown.png"
|
||||||
local sound = awdef.sound
|
local sound = awdef.sound
|
||||||
if sound == nil then
|
if sound == nil then
|
||||||
-- Explicit check for nil because sound could be `false` to disable it
|
-- Explicit check for nil because sound could be `false` to disable it
|
||||||
|
@ -62,6 +62,9 @@ function awards.register_trigger(tname, tdef)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function tdef.notify(player)
|
function tdef.notify(player)
|
||||||
|
if not player:is_player() or not minetest.get_player_by_name(player:get_player_name()) then
|
||||||
|
return
|
||||||
|
end
|
||||||
assert(player and player.is_player and player:is_player())
|
assert(player and player.is_player and player:is_player())
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local data = awards.player(name)
|
local data = awards.player(name)
|
||||||
@ -152,6 +155,10 @@ function awards.register_trigger(tname, tdef)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if not player:is_player() or not minetest.get_player_by_name(player:get_player_name()) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
assert(player and player.is_player and player:is_player() and key)
|
assert(player and player.is_player and player:is_player() and key)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local data = awards.player(name)
|
local data = awards.player(name)
|
||||||
@ -160,8 +167,9 @@ function awards.register_trigger(tname, tdef)
|
|||||||
data[tname] = data[tname] or {}
|
data[tname] = data[tname] or {}
|
||||||
local currentVal = (data[tname][key] or 0) + n
|
local currentVal = (data[tname][key] or 0) + n
|
||||||
data[tname][key] = currentVal
|
data[tname][key] = currentVal
|
||||||
|
data[tname].__total = (data[tname].__total or 0)
|
||||||
if key:sub(1, 6) ~= "group:" then
|
if key:sub(1, 6) ~= "group:" then
|
||||||
data[tname].__total = (data[tname].__total or 0) + n
|
data[tname].__total = data[tname].__total + n
|
||||||
end
|
end
|
||||||
|
|
||||||
tdef:run_callbacks(player, data, function(entry)
|
tdef:run_callbacks(player, data, function(entry)
|
||||||
@ -173,7 +181,6 @@ function awards.register_trigger(tname, tdef)
|
|||||||
else
|
else
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if current >= entry.target then
|
if current >= entry.target then
|
||||||
return entry.award
|
return entry.award
|
||||||
end
|
end
|
||||||
@ -201,7 +208,7 @@ end
|
|||||||
|
|
||||||
function awards.increment_item_counter(data, field, itemname, count)
|
function awards.increment_item_counter(data, field, itemname, count)
|
||||||
itemname = minetest.registered_aliases[itemname] or itemname
|
itemname = minetest.registered_aliases[itemname] or itemname
|
||||||
data[field][itemname] = (data[field][itemname] or 0) + 1
|
data[field][itemname] = (data[field][itemname] or 0) + (count or 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
function awards.get_item_count(data, field, itemname)
|
function awards.get_item_count(data, field, itemname)
|
||||||
|
Loading…
Reference in New Issue
Block a user