summaryrefslogtreecommitdiff
path: root/api.lua
diff options
context:
space:
mode:
authorTraxie21 <sunrisecraft2@gmail.com>2013-02-25 13:15:40 -0600
committerTraxie21 <sunrisecraft2@gmail.com>2013-02-25 13:15:40 -0600
commitdd3de62572c61c803f051d40b5ab9853ade81370 (patch)
tree05971bb90262ef4d00144aec2af54d750768eae1 /api.lua
parent5cd8bfb491736c7e2140484bb6aff766dda1acbc (diff)
-Added formspec system
-Added 3 new api values for formspec (background, icon, and custom_announce) -Added configuration file -Fixed one glitch that happens when you mine stone and rejoin -Addded textures
Diffstat (limited to 'api.lua')
-rw-r--r--api.lua35
1 files changed, 27 insertions, 8 deletions
diff --git a/api.lua b/api.lua
index b80b797..ad1574b 100644
--- a/api.lua
+++ b/api.lua
@@ -1,6 +1,6 @@
-- Table Save Load Functions
-local function save_playerD()
+function save_playerD()
local file = io.open(minetest.get_worldpath().."/awards.txt", "w")
if file then
file:write(minetest.serialize(player_data))
@@ -28,6 +28,7 @@ awards.def={}
-- Load files
dofile(minetest.get_modpath("awards").."/triggers.lua")
+dofile(minetest.get_modpath("awards").."/config.txt")
-- API Functions
function awards.register_achievement(name,data_table)
@@ -53,8 +54,17 @@ function awards.register_achievement(name,data_table)
}
table.insert(awards.onDeath,tmp)
end
- end
+ if data_table['icon'] == nil or data_table['icon'] == "" then
+ data_table['icon'] = "unknown.png"
+ end
+ if data_table['background'] == nil or data_table['background'] == "" then
+ data_table['background'] = "bg_default.png"
+ end
+ if data_table['custom_announce'] == nil or data_table['custom_announce'] == "" then
+ data_table['custom_announce'] = "Achievement Unlocked:"
+ end
+ end
awards['def'][name] = data_table
end
@@ -86,8 +96,11 @@ function awards.give_achievement(name,award)
local desc = ""
-- check definition table
- if awards['def'][award] and awards['def'][award]['title'] then
+ if awards['def'][award] and awards['def'][award]['title'] and awards['def'][award]['description'] and awards['def'][award]['icon'] then
title=awards['def'][award]['title']
+ background=awards['def'][award]['background']
+ icon=awards['def'][award]['icon']
+ custom_announce=awards['def'][award]['custom_announce']
end
if awards['def'][award] and awards['def'][award]['description'] then
@@ -95,13 +108,19 @@ function awards.give_achievement(name,award)
end
-- send award header
+ if Use_Formspec == true then
+ minetest.show_formspec(name, "achievements:unlocked", "size[4,2]"..
+ "image_button_exit[0,0;4,2;"..background..";close1; ]"..
+ "image_button_exit[0.2,0.8;1,1;"..icon..";close2; ]"..
+ "label[1.1,1;"..title.."]"..
+ "label[0.3,0.1;"..custom_announce.."]")
+ else
minetest.chat_send_player(name, "Achievement Unlocked: "..title)
-
- -- send award content
- if desc~="" then
- minetest.chat_send_player(name, desc)
+ if desc~="" then
+ minetest.chat_send_player(name, desc)
+ end
end
-
+ print(name.." Has unlocked"..title..".")
-- save playertable
save_playerD()
end