diff options
| -rw-r--r-- | api.lua | 153 | ||||
| -rw-r--r-- | gui.lua | 179 | ||||
| -rw-r--r-- | init.lua | 14 | ||||
| -rw-r--r-- | sfinv.lua | 25 | ||||
| -rw-r--r-- | triggers.lua | 9 | ||||
| -rw-r--r-- | unified_inventory.lua | 13 | 
6 files changed, 191 insertions, 202 deletions
@@ -352,159 +352,6 @@ function awards.unlock(name, award)  	end  end --- Backwards compatibility -awards.give_achievement = awards.unlock - ---[[minetest.register_chatcommand("gawd", { -	params = "award name", -	description = "gawd: give award to self", -	func = function(name, param) -		awards.unlock(name,param) -	end -})]]-- - -function awards.getFormspec(name, to, sid) -	local formspec = "" -	local listofawards = awards._order_awards(name) -	local playerdata = awards.player(name) - -	if #listofawards == 0 then -		formspec = formspec .. "label[3.9,1.5;"..minetest.formspec_escape(S("Error: No awards available.")).."]" -		formspec = formspec .. "button_exit[4.2,2.3;3,1;close;"..minetest.formspec_escape(S("OK")).."]" -		return formspec -	end - -	-- Sidebar -	if sid then -		local item = listofawards[sid+0] -		local def = awards.def[item.name] - -		if def and def.secret and not item.got then -			formspec = formspec .. "label[1,2.75;"..minetest.formspec_escape(S("(Secret Award)")).."]".. -								"image[1,0;3,3;awards_unknown.png]" -			if def and def.description then -				formspec = formspec	.. "textarea[0.25,3.25;4.8,1.7;;"..minetest.formspec_escape(S("Unlock this award to find out what it is."))..";]" -			end -		else -			local title = item.name -			if def and def.title then -				title = def.title -			end -			local status = "%s" -			if item.got then -				status = S("%s (got)") -			end - -      formspec = formspec .. "textarea[0.5,2.7;4.8,1.45;;" .. -				string.format(status, minetest.formspec_escape(title)) .. -				";]" - -			if def and def.icon then -				formspec = formspec .. "image[1,0;3,3;" .. def.icon .. "]" -			end -			local barwidth = 4.6 -			local perc = nil -			local label = nil -			if def.getProgress and playerdata then -				local res = def:getProgress(playerdata) -				perc = res.perc -				label = res.label -			end -			if perc then -				if perc > 1 then -					perc = 1 -				end -				formspec = formspec .. "background[0,4.80;" .. barwidth ..",0.25;awards_progress_gray.png;false]" -				formspec = formspec .. "background[0,4.80;" .. (barwidth * perc) ..",0.25;awards_progress_green.png;false]" -				if label then -					formspec = formspec .. "label[1.75,4.63;" .. minetest.formspec_escape(label) .. "]" -				end -			end -			if def and def.description then -				formspec = formspec	.. "textarea[0.25,3.75;4.8,1.7;;"..minetest.formspec_escape(def.description)..";]" -			end -		end -	end - -	-- Create list box -	formspec = formspec .. "textlist[4.75,0;6,5;awards;" -	local first = true -	for _,award in pairs(listofawards) do -		local def = awards.def[award.name] -		if def then -			if not first then -				formspec = formspec .. "," -			end -			first = false - -			if def.secret and not award.got then -				formspec = formspec .. "#707070"..minetest.formspec_escape(S("(Secret Award)")) -			else -				local title = award.name -				if def and def.title then -					title = def.title -				end -				if award.got then -					formspec = formspec .. minetest.formspec_escape(title) -				else -					formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title) -				end -			end -		end -	end -	return formspec .. ";"..sid.."]" -end - -function awards.show_to(name, to, sid, text) -	if name == "" or name == nil then -		name = to -	end -	local data = awards.player(to) -	if name == to and data.disabled then -		minetest.chat_send_player(S("You've disabled awards. Type /awards enable to reenable.")) -		return -	end -	if text then -		local listofawards = awards._order_awards(name) -		if #listofawards == 0 then -			minetest.chat_send_player(to, S("Error: No awards available.")) -			return -		elseif not data or not data.unlocked  then -			minetest.chat_send_player(to, S("You have not unlocked any awards.")) -			return -		end -		minetest.chat_send_player(to, string.format(S("%s’s awards:"), name)) - -		for _, str in pairs(data.unlocked) do -			local def = awards.def[str] -			if def then -				if def.title then -					if def.description then -						minetest.chat_send_player(to, string.format(S("%s: %s"), def.title, def.description)) -					else -						minetest.chat_send_player(to, def.title) -					end -				else -					minetest.chat_send_player(to, str) -				end -			end -		end -	else -		if sid == nil or sid < 1 then -			sid = 1 -		end -		local deco = "" -		if minetest.global_exists("default") then -			deco = default.gui_bg .. default.gui_bg_img -		end -		-- Show formspec to user -		minetest.show_formspec(to,"awards:awards", -			"size[11,5]" .. deco .. -			awards.getFormspec(name, to, sid)) -	end -end -awards.showto = awards.show_to -  minetest.register_on_player_receive_fields(function(player, formname, fields)  	if formname ~= "awards:awards" then  		return false @@ -0,0 +1,179 @@ +local S = awards.gettext + +function awards.get_formspec(name, to, sid) +	local formspec = "" +	local listofawards = awards._order_awards(name) +	local playerdata = awards.player(name) + +	if #listofawards == 0 then +		formspec = formspec .. "label[3.9,1.5;"..minetest.formspec_escape(S("Error: No awards available.")).."]" +		formspec = formspec .. "button_exit[4.2,2.3;3,1;close;"..minetest.formspec_escape(S("OK")).."]" +		return formspec +	end + +	-- Sidebar +	if sid then +		local item = listofawards[sid+0] +		local def = awards.def[item.name] + +		if def and def.secret and not item.got then +			formspec = formspec .. "label[1,2.75;"..minetest.formspec_escape(S("(Secret Award)")).."]".. +								"image[1,0;3,3;awards_unknown.png]" +			if def and def.description then +				formspec = formspec	.. "textarea[0.25,3.25;4.8,1.7;;"..minetest.formspec_escape(S("Unlock this award to find out what it is."))..";]" +			end +		else +			local title = item.name +			if def and def.title then +				title = def.title +			end +			local status = "%s" +			if item.got then +				status = S("%s (got)") +			end + +      formspec = formspec .. "textarea[0.5,2.7;4.8,1.45;;" .. +				string.format(status, minetest.formspec_escape(title)) .. +				";]" + +			if def and def.icon then +				formspec = formspec .. "image[1,0;3,3;" .. def.icon .. "]" +			end +			local barwidth = 4.6 +			local perc = nil +			local label = nil +			if def.getProgress and playerdata then +				local res = def:getProgress(playerdata) +				perc = res.perc +				label = res.label +			end +			if perc then +				if perc > 1 then +					perc = 1 +				end +				formspec = formspec .. "background[0,4.80;" .. barwidth ..",0.25;awards_progress_gray.png;false]" +				formspec = formspec .. "background[0,4.80;" .. (barwidth * perc) ..",0.25;awards_progress_green.png;false]" +				if label then +					formspec = formspec .. "label[1.75,4.63;" .. minetest.formspec_escape(label) .. "]" +				end +			end +			if def and def.description then +				formspec = formspec	.. "textarea[0.25,3.75;4.8,1.7;;"..minetest.formspec_escape(def.description)..";]" +			end +		end +	end + +	-- Create list box +	formspec = formspec .. "textlist[4.75,0;6,5;awards;" +	local first = true +	for _,award in pairs(listofawards) do +		local def = awards.def[award.name] +		if def then +			if not first then +				formspec = formspec .. "," +			end +			first = false + +			if def.secret and not award.got then +				formspec = formspec .. "#707070"..minetest.formspec_escape(S("(Secret Award)")) +			else +				local title = award.name +				if def and def.title then +					title = def.title +				end +				if award.got then +					formspec = formspec .. minetest.formspec_escape(title) +				else +					formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title) +				end +			end +		end +	end +	return formspec .. ";"..sid.."]" +end + + +function awards.show_to(name, to, sid, text) +	if name == "" or name == nil then +		name = to +	end +	local data = awards.player(to) +	if name == to and data.disabled then +		minetest.chat_send_player(S("You've disabled awards. Type /awards enable to reenable.")) +		return +	end +	if text then +		local listofawards = awards._order_awards(name) +		if #listofawards == 0 then +			minetest.chat_send_player(to, S("Error: No awards available.")) +			return +		elseif not data or not data.unlocked  then +			minetest.chat_send_player(to, S("You have not unlocked any awards.")) +			return +		end +		minetest.chat_send_player(to, string.format(S("%s’s awards:"), name)) + +		for _, str in pairs(data.unlocked) do +			local def = awards.def[str] +			if def then +				if def.title then +					if def.description then +						minetest.chat_send_player(to, string.format(S("%s: %s"), def.title, def.description)) +					else +						minetest.chat_send_player(to, def.title) +					end +				else +					minetest.chat_send_player(to, str) +				end +			end +		end +	else +		if sid == nil or sid < 1 then +			sid = 1 +		end +		local deco = "" +		if minetest.global_exists("default") then +			deco = default.gui_bg .. default.gui_bg_img +		end +		-- Show formspec to user +		minetest.show_formspec(to,"awards:awards", +			"size[11,5]" .. deco .. +			awards.get_formspec(name, to, sid)) +	end +end + +if minetest.get_modpath("sfinv") then +	sfinv.register_page("awards:awards", { +		title = S("Awards"), +		on_enter = function(self, player, context) +			context.awards_idx = 1 +		end, +		get = function(self, player, context) +			local name = player:get_player_name() +			return sfinv.make_formspec(player, context, +				awards.get_formspec(name, name, context.awards_idx or 1), +				false, "size[11,5]") +		end, +		on_player_receive_fields = function(self, player, context, fields) +			if fields.awards then +				local event = minetest.explode_textlist_event(fields.awards) +				if event.type == "CHG" then +					context.awards_idx = event.index +					sfinv.set_player_inventory_formspec(player, context) +				end +			end +		end +	}) +end + +if minetest.get_modpath("unified_inventory") ~= nil then +	unified_inventory.register_button("awards", { +		type = "image", +		image = "awards_ui_icon.png", +		tooltip = S("Awards"), +		action = function(player) +			local name = player:get_player_name() +			awards.show_to(name, name, nil, false) +		end, +	}) +end @@ -25,11 +25,21 @@ awards.gettext, awards.ngettext = dofile(minetest.get_modpath("awards").."/intll  dofile(minetest.get_modpath("awards").."/api_helpers.lua")  dofile(minetest.get_modpath("awards").."/api.lua")  dofile(minetest.get_modpath("awards").."/chat_commands.lua") -dofile(minetest.get_modpath("awards").."/sfinv.lua") -dofile(minetest.get_modpath("awards").."/unified_inventory.lua") +dofile(minetest.get_modpath("awards").."/gui.lua")  dofile(minetest.get_modpath("awards").."/triggers.lua")  -- dofile(minetest.get_modpath("awards").."/awards.lua") +-- Backwards compatibility +awards.give_achievement = awards.unlock +awards.getFormspec      = awards.get_formspec +awards.showto           = awards.show_to +awards.register_onDig   = awards.register_on_dig +awards.register_onPlace = awards.register_on_place +awards.register_onDeath = awards.register_on_death +awards.register_onChat  = awards.register_on_chat +awards.register_onJoin  = awards.register_on_join +awards.register_onCraft = awards.register_on_craft +  awards.register_achievement("award_saint_maclou",{  	title = "Saint-Maclou",  	description = "Place 20 coal checkers.", diff --git a/sfinv.lua b/sfinv.lua deleted file mode 100644 index e2b6eb4..0000000 --- a/sfinv.lua +++ /dev/null @@ -1,25 +0,0 @@ -if minetest.get_modpath("sfinv") then -	local S = awards.gettext - -	sfinv.register_page("awards:awards", { -		title = S("Awards"), -		on_enter = function(self, player, context) -			context.awards_idx = 1 -		end, -		get = function(self, player, context) -			local name = player:get_player_name() -			return sfinv.make_formspec(player, context, -				awards.getFormspec(name, name, context.awards_idx or 1), -				false, "size[11,5]") -		end, -		on_player_receive_fields = function(self, player, context, fields) -			if fields.awards then -				local event = minetest.explode_textlist_event(fields.awards) -				if event.type == "CHG" then -					context.awards_idx = event.index -					sfinv.set_player_inventory_formspec(player, context) -				end -			end -		end -	}) -end diff --git a/triggers.lua b/triggers.lua index 476ca7f..f3fe708 100644 --- a/triggers.lua +++ b/triggers.lua @@ -83,15 +83,6 @@ minetest.register_on_joinplayer(awards.notify_join)  -- 	end  -- }) - --- Backwards compatibility -awards.register_onDig   = awards.register_on_dig -awards.register_onPlace = awards.register_on_place -awards.register_onDeath = awards.register_on_death -awards.register_onChat  = awards.register_on_chat -awards.register_onJoin  = awards.register_on_join -awards.register_onCraft = awards.register_on_craft -  -- Trigger Handles  --  -- minetest.register_on_placenode(function(pos, node, digger) diff --git a/unified_inventory.lua b/unified_inventory.lua deleted file mode 100644 index 1042196..0000000 --- a/unified_inventory.lua +++ /dev/null @@ -1,13 +0,0 @@ -if minetest.get_modpath("unified_inventory") ~= nil then -	local S = awards.gettext - -	unified_inventory.register_button("awards", { -		type = "image", -		image = "awards_ui_icon.png", -		tooltip = S("Awards"), -		action = function(player) -			local name = player:get_player_name() -			awards.show_to(name, name, nil, false) -		end, -	}) -end  | 
