Add comments and fix indents

This commit is contained in:
Andrew Ward 2013-02-27 12:34:38 +00:00
parent 647e7b8969
commit 67a0b5c515
1 changed files with 29 additions and 7 deletions

36
api.lua
View File

@ -31,6 +31,7 @@ dofile(minetest.get_modpath("awards").."/config.txt")
-- API Functions -- API Functions
function awards.register_achievement(name,data_table) function awards.register_achievement(name,data_table)
-- see if a trigger is defined in the achievement definition
if data_table['trigger'] and data_table['trigger']['type'] then if data_table['trigger'] and data_table['trigger']['type'] then
if data_table['trigger']['type']=="dig" then if data_table['trigger']['type']=="dig" then
local tmp={ local tmp={
@ -55,6 +56,7 @@ function awards.register_achievement(name,data_table)
end end
end end
-- check icon, background and custom_announce data
if data_table['icon'] == nil or data_table['icon'] == "" then if data_table['icon'] == nil or data_table['icon'] == "" then
data_table['icon'] = "unknown.png" data_table['icon'] = "unknown.png"
end end
@ -65,62 +67,82 @@ function awards.register_achievement(name,data_table)
data_table['custom_announce'] = "Achievement Unlocked:" data_table['custom_announce'] = "Achievement Unlocked:"
end end
-- add the achievement to the definition table
awards['def'][name] = data_table awards['def'][name] = data_table
end end
-- this function adds a trigger function or table to the ondig table
function awards.register_onDig(func) function awards.register_onDig(func)
table.insert(awards.onDig,func); table.insert(awards.onDig,func);
end end
-- this function adds a trigger function or table to the ondig table
function awards.register_onPlace(func) function awards.register_onPlace(func)
table.insert(awards.onPlace,func); table.insert(awards.onPlace,func);
end end
-- this function adds a trigger function or table to the ondeath table
function awards.register_onDeath(func) function awards.register_onDeath(func)
table.insert(awards.onDeath,func); table.insert(awards.onDeath,func);
end end
-- This function is called whenever a target condition is met.
-- It checks if a player already has that achievement, and if they do not,
-- it gives it to them
----------------------------------------------
--awards.give_achievement(name,award)
-- name - the name of the player
-- award - the name of the award to give
function awards.give_achievement(name,award) function awards.give_achievement(name,award)
-- load the player's data table
local data=player_data[name] local data=player_data[name]
-- check if the table that holds a player's achievements exists
if not data['unlocked'] then if not data['unlocked'] then
data['unlocked']={} data['unlocked']={}
end end
-- check to see if the player does not already have that achievement
if not data['unlocked'][award] or data['unlocked'][award]~=award then if not data['unlocked'][award] or data['unlocked'][award]~=award then
-- set player_data table -- save the achievement to the player_data table
data['unlocked'][award]=award data['unlocked'][award]=award
-- define local award data -- define local variables, so award data can be saved
local title = award local title = award
local desc = "" local desc = ""
-- check definition table -- check definition table to get values
if awards['def'][award] and awards['def'][award]['title'] and awards['def'][award]['description'] and awards['def'][award]['icon'] then if awards['def'][award] and awards['def'][award]['title'] and awards['def'][award]['custom_announce'] and awards['def'][award]['background'] and awards['def'][award]['icon'] then
title=awards['def'][award]['title'] title=awards['def'][award]['title']
background=awards['def'][award]['background'] background=awards['def'][award]['background']
icon=awards['def'][award]['icon'] icon=awards['def'][award]['icon']
custom_announce=awards['def'][award]['custom_announce'] custom_announce=awards['def'][award]['custom_announce']
end end
-- check definition table to get description
if awards['def'][award] and awards['def'][award]['description'] then if awards['def'][award] and awards['def'][award]['description'] then
desc=awards['def'][award]['description'] desc=awards['def'][award]['description']
end end
-- send award header -- send the won award message to the player
if Use_Formspec == true then if Use_Formspec == true then
minetest.show_formspec(name, "achievements:unlocked", "size[4,2]".. -- use a formspec to send it
minetest.show_formspec(name, "achievements:unlocked", "size[4,2]"..
"image_button_exit[0,0;4,2;"..background..";close1; ]".. "image_button_exit[0,0;4,2;"..background..";close1; ]"..
"image_button_exit[0.2,0.8;1,1;"..icon..";close2; ]".. "image_button_exit[0.2,0.8;1,1;"..icon..";close2; ]"..
"label[1.1,1;"..title.."]".. "label[1.1,1;"..title.."]"..
"label[0.3,0.1;"..custom_announce.."]") "label[0.3,0.1;"..custom_announce.."]")
else else
minetest.chat_send_player(name, "Achievement Unlocked: "..title) -- use the chat console to send it
minetest.chat_send_player(name, "Achievement Unlocked: "..title)
if desc~="" then if desc~="" then
minetest.chat_send_player(name, desc) minetest.chat_send_player(name, desc)
end end
end end
-- record this in the log
print(name.." Has unlocked"..title..".") print(name.." Has unlocked"..title..".")
-- save playertable -- save playertable
save_playerD() save_playerD()
end end