mirror of
https://gitlab.com/rubenwardy/awards.git
synced 2024-11-26 17:23:49 +01:00
Add optional default description for triggers
This commit is contained in:
parent
67946bf0c4
commit
13eb5dcdae
5
api.lua
5
api.lua
@ -140,6 +140,11 @@ function awards.register_achievement(name, def)
|
|||||||
|
|
||||||
-- Add Award
|
-- Add Award
|
||||||
awards.def[name] = def
|
awards.def[name] = def
|
||||||
|
|
||||||
|
local tdef = awards.def[name]
|
||||||
|
if def.description == nil and tdef.getDefaultDescription then
|
||||||
|
def.description = tdef:getDefaultDescription()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function awards.enable(name)
|
function awards.enable(name)
|
||||||
|
70
triggers.lua
70
triggers.lua
@ -26,7 +26,7 @@ awards.register_trigger("dig", function(def)
|
|||||||
local tmp = {
|
local tmp = {
|
||||||
award = def.name,
|
award = def.name,
|
||||||
node = def.trigger.node,
|
node = def.trigger.node,
|
||||||
target = def.trigger.target
|
target = def.trigger.target,
|
||||||
}
|
}
|
||||||
table.insert(awards.on.dig, tmp)
|
table.insert(awards.on.dig, tmp)
|
||||||
def.getProgress = function(self, data)
|
def.getProgress = function(self, data)
|
||||||
@ -36,13 +36,25 @@ awards.register_trigger("dig", function(def)
|
|||||||
label = string.format(S("%d/%d dug"), itemcount, tmp.target)
|
label = string.format(S("%d/%d dug"), itemcount, tmp.target)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
def.getDefaultDescription = function(self)
|
||||||
|
local nname = minetest.registered_nodes[self.trigger.node].description
|
||||||
|
if nname == nil then
|
||||||
|
nname = self.trigger.node
|
||||||
|
end
|
||||||
|
local ddesc
|
||||||
|
if self.trigger.target ~= 1 then
|
||||||
|
return string.format(S("Mine blocks: %d×%s"), self.trigger.target, nname)
|
||||||
|
else
|
||||||
|
return string.format(S("Mine a block: %s"), nname)
|
||||||
|
end
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
awards.register_trigger("place", function(def)
|
awards.register_trigger("place", function(def)
|
||||||
local tmp = {
|
local tmp = {
|
||||||
award = def.name,
|
award = def.name,
|
||||||
node = def.trigger.node,
|
node = def.trigger.node,
|
||||||
target = def.trigger.target
|
target = def.trigger.target,
|
||||||
}
|
}
|
||||||
table.insert(awards.on.place, tmp)
|
table.insert(awards.on.place, tmp)
|
||||||
def.getProgress = function(self, data)
|
def.getProgress = function(self, data)
|
||||||
@ -52,12 +64,23 @@ awards.register_trigger("place", function(def)
|
|||||||
label = string.format(S("%d/%d placed"), itemcount, tmp.target)
|
label = string.format(S("%d/%d placed"), itemcount, tmp.target)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
def.getDefaultDescription = function(self)
|
||||||
|
local nname = minetest.registered_nodes[self.trigger.node].description
|
||||||
|
if nname == nil then
|
||||||
|
nname = self.trigger.node
|
||||||
|
end
|
||||||
|
if self.trigger.target ~= 1 then
|
||||||
|
return string.format(S("Place blocks: %d×%s"), self.trigger.target, nname)
|
||||||
|
else
|
||||||
|
return string.format(S("Place a block: %s"), nname)
|
||||||
|
end
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
awards.register_trigger("death", function(def)
|
awards.register_trigger("death", function(def)
|
||||||
local tmp = {
|
local tmp = {
|
||||||
award = def.name,
|
award = def.name,
|
||||||
target = def.trigger.target
|
target = def.trigger.target,
|
||||||
}
|
}
|
||||||
table.insert(awards.on.death, tmp)
|
table.insert(awards.on.death, tmp)
|
||||||
def.getProgress = function(self, data)
|
def.getProgress = function(self, data)
|
||||||
@ -67,30 +90,43 @@ awards.register_trigger("death", function(def)
|
|||||||
label = string.format(S("%d/%d deaths"), itemcount, tmp.target)
|
label = string.format(S("%d/%d deaths"), itemcount, tmp.target)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
def.getDefaultDescription = function(self)
|
||||||
|
if self.trigger.target ~= 1 then
|
||||||
|
return string.format(S("Die %d times."), self.trigger.target)
|
||||||
|
else
|
||||||
|
return S("Die.")
|
||||||
|
end
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
awards.register_trigger("chat", function(def)
|
awards.register_trigger("chat", function(def)
|
||||||
local tmp = {
|
local tmp = {
|
||||||
award = def.name,
|
award = def.name,
|
||||||
target = def.trigger.target
|
target = def.trigger.target,
|
||||||
}
|
}
|
||||||
table.insert(awards.on.chat, tmp)
|
table.insert(awards.on.chat, tmp)
|
||||||
def.getProgress = function(self, data)
|
def.getProgress = function(self, data)
|
||||||
local itemcount = data.chats or 0
|
local itemcount = data.chats or 0
|
||||||
return {
|
return {
|
||||||
perc = itemcount / tmp.target,
|
perc = itemcount / tmp.target,
|
||||||
label = string.format(S("%d/%d lines of chat"), itemcount, tmp.target)
|
label = string.format(S("%d/%d chat messages"), itemcount, tmp.target)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
def.getDefaultDescription = function(self)
|
||||||
|
if self.trigger.target ~= 1 then
|
||||||
|
return string.format(S("Write %d chat messages."), self.trigger.target)
|
||||||
|
else
|
||||||
|
return S("Write something in chat.")
|
||||||
|
end
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
awards.register_trigger("join", function(def)
|
awards.register_trigger("join", function(def)
|
||||||
local tmp = {
|
local tmp = {
|
||||||
award = def.name,
|
award = def.name,
|
||||||
target = def.trigger.target
|
target = def.trigger.target,
|
||||||
}
|
}
|
||||||
table.insert(awards.on.join, tmp)
|
table.insert(awards.on.join, tmp)
|
||||||
|
|
||||||
def.getProgress = function(self, data)
|
def.getProgress = function(self, data)
|
||||||
local itemcount = data.joins or 0
|
local itemcount = data.joins or 0
|
||||||
return {
|
return {
|
||||||
@ -98,13 +134,20 @@ awards.register_trigger("join", function(def)
|
|||||||
label = string.format(S("%d/%d game joins"), itemcount, tmp.target)
|
label = string.format(S("%d/%d game joins"), itemcount, tmp.target)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
def.getDefaultDescription = function(self)
|
||||||
|
if self.trigger.target ~= 1 then
|
||||||
|
return string.format(S("Join the game %d times."), self.trigger.target)
|
||||||
|
else
|
||||||
|
return S("Join the game.")
|
||||||
|
end
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
awards.register_trigger("craft", function(def)
|
awards.register_trigger("craft", function(def)
|
||||||
local tmp = {
|
local tmp = {
|
||||||
award = def.name,
|
award = def.name,
|
||||||
item = def.trigger.item,
|
item = def.trigger.item,
|
||||||
target = def.trigger.target
|
target = def.trigger.target,
|
||||||
}
|
}
|
||||||
table.insert(awards.on.craft, tmp)
|
table.insert(awards.on.craft, tmp)
|
||||||
def.getProgress = function(self, data)
|
def.getProgress = function(self, data)
|
||||||
@ -114,6 +157,17 @@ awards.register_trigger("craft", function(def)
|
|||||||
label = string.format(S("%d/%d crafted"), itemcount, tmp.target)
|
label = string.format(S("%d/%d crafted"), itemcount, tmp.target)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
def.getDefaultDescription = function(self)
|
||||||
|
local iname = minetest.registered_items[self.trigger.item].description
|
||||||
|
if iname == nil then
|
||||||
|
iname = self.trigger.item
|
||||||
|
end
|
||||||
|
if self.trigger.target ~= 1 then
|
||||||
|
return string.format(S("Craft: %d×%s"), self.trigger.target, iname)
|
||||||
|
else
|
||||||
|
return string.format(S("Craft: %s"), iname)
|
||||||
|
end
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Backwards compatibility
|
-- Backwards compatibility
|
||||||
|
Loading…
Reference in New Issue
Block a user