awards/readme.md

125 lines
2.8 KiB
Markdown
Raw Normal View History

2015-06-10 19:39:22 +02:00
# Awards
2013-02-22 18:53:42 +01:00
2015-06-04 14:13:58 +02:00
by Andrew "Rubenwardy" Ward, LGPL 2.1 or later.
2013-02-22 18:53:42 +01:00
This mod adds achievements to Minetest.
Majority of awards are back ported from Calinou's
old fork in Carbone, under same license.
2013-02-22 18:53:42 +01:00
2015-06-10 19:39:22 +02:00
# Basic API
2013-02-22 18:53:42 +01:00
2015-06-10 19:39:22 +02:00
* awards.register_achievement(name, def)
2013-02-22 18:53:42 +01:00
* name
* desciption
* sound [optional]
2015-06-10 19:39:22 +02:00
* image [optional] - texture name, eg: award_one.png
* background [optional] - texture name, eg: award_one.png
2013-02-23 13:02:02 +01:00
* trigger [optional] [table]
2016-06-01 19:41:24 +02:00
* type - "dig", "place", "craft", "death", "chat" or "join"
2013-02-23 13:02:02 +01:00
* (for dig/place type) node - the nodes name
2016-06-01 19:41:24 +02:00
* (for craft type) item - the items name
2013-02-23 16:13:21 +01:00
* (for all types) target - how many to dig / place
2015-06-10 19:39:22 +02:00
* See Triggers
2014-05-02 21:09:54 +02:00
* secret [optional] - if true, then player needs to unlock to find out what it is.
2015-06-10 20:15:16 +02:00
* on_unlock [optional] - func(name, def)
* name is player name
* return true to cancel register_on_unlock callbacks and HUD
2015-06-10 19:39:22 +02:00
* awards.register_trigger(name, func(awardname, def))
* Note: awards.on[name] is automatically created for triggers
2015-06-10 20:15:16 +02:00
* awards.register_on_unlock(func(name, def))
* name is the player name
* def is the award def.
* return true to cancel HUD
* awards.give_achievement(name, award)
* gives an award to a player
* name is the player name
2015-06-10 19:39:22 +02:00
# Included in the Mod
2015-06-10 20:15:16 +02:00
The API, above, allows you to register awards
and triggers (things that look for events and unlock awards, they need
to be registered in order to get details from award_def.trigger).
However, all awards and triggers are separate from the API.
They can be found in init.lua and triggers.lua
2015-06-10 19:39:22 +02:00
## Triggers
2015-06-10 20:15:16 +02:00
Callbacks (register a function to be run)
### dig
trigger = {
type = "dig",
node = "default:dirt",
target = 50
}
### place
trigger = {
type = "place",
node = "default:dirt",
target = 50
}
### death
trigger = {
type = "death",
target = 5
}
### chat
trigger = {
type = "chat",
target = 100
}
### join
trigger = {
type = "join",
target = 100
}
## Callbacks relating to triggers
2015-06-10 19:39:22 +02:00
* awards.register_on_dig(func(player, data))
2015-06-10 20:15:16 +02:00
* data is player data (see below)
* return award name or null
2015-06-10 19:39:22 +02:00
* awards.register_on_place(func(player, data))
2015-06-10 20:15:16 +02:00
* data is player data (see below)
* return award name or null
2015-06-10 19:39:22 +02:00
* awards.register_on_death(func(player, data))
2015-06-10 20:15:16 +02:00
* data is player data (see below)
* return award name or null
2015-06-10 19:39:22 +02:00
* awards.register_on_chat(func(player, data))
2015-06-10 20:15:16 +02:00
* data is player data (see below)
* return award name or null
* awards.register_on_join(func(player, data)
* data is player data (see below)
* return award name or null
2013-02-22 18:53:42 +01:00
2015-06-10 19:39:22 +02:00
# Player Data
2013-02-22 18:53:42 +01:00
A list of data referenced/hashed by the player's name.
2013-02-23 13:02:02 +01:00
* player name
* name [string]
* count [table] - dig counter
* modname [table]
* itemname [int]
* place [table] - place counter
* modname [table]
2014-05-02 21:09:54 +02:00
* itemname [int]
2016-06-01 19:41:24 +02:00
* craft [table] - craft counter
* modname [table]
* itemname [int]
2014-05-02 21:09:54 +02:00
* deaths
* chats
* joins