mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-12-01 23:11:11 +01:00
Merge pull request 'Change Achievements to Advancements, Part 1' (#2681) from advancement_mod_fixes into master
Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/2681 Reviewed-by: cora <cora@noreply.git.minetest.land>
This commit is contained in:
commit
0c21abf28a
7 changed files with 151 additions and 48 deletions
|
@ -217,7 +217,7 @@ function awards.unlock(name, award)
|
||||||
|
|
||||||
-- Get award
|
-- Get award
|
||||||
minetest.log("action", name.." has gotten award "..award)
|
minetest.log("action", name.." has gotten award "..award)
|
||||||
minetest.chat_send_all(S("@1 has made the achievement @2", name, minetest.colorize(mcl_colors.GREEN, "[" .. (awdef.title or award) .. "]")))
|
minetest.chat_send_all(S("@1 has made the advancement @2", name, minetest.colorize(mcl_colors.GREEN, "[" .. (awdef.title or award) .. "]")))
|
||||||
data.unlocked[award] = award
|
data.unlocked[award] = award
|
||||||
awards.save()
|
awards.save()
|
||||||
|
|
||||||
|
@ -257,9 +257,13 @@ function awards.unlock(name, award)
|
||||||
local custom_announce = awdef.custom_announce
|
local custom_announce = awdef.custom_announce
|
||||||
if not custom_announce then
|
if not custom_announce then
|
||||||
if awdef.secret then
|
if awdef.secret then
|
||||||
custom_announce = S("Secret achievement gotten:")
|
custom_announce = S("Secret Advancement Made:")
|
||||||
|
elseif awdef.type == "Goal" then
|
||||||
|
custom_announce = S("Goal Completed:")
|
||||||
|
elseif awdef.type == "Challenge" then
|
||||||
|
custom_announce = S("Challenge Completed:")
|
||||||
else
|
else
|
||||||
custom_announce = S("Achievement gotten:")
|
custom_announce = S("Advancement Made:")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -283,9 +287,13 @@ function awards.unlock(name, award)
|
||||||
elseif awards.show_mode == "chat" then
|
elseif awards.show_mode == "chat" then
|
||||||
local chat_announce
|
local chat_announce
|
||||||
if awdef.secret == true then
|
if awdef.secret == true then
|
||||||
chat_announce = S("Secret achievement gotten: @1")
|
chat_announce = S("Secret Advancement Made: @1")
|
||||||
|
elseif awdef.type == "Goal" then
|
||||||
|
chat_announce = S("Goal Completed: @1")
|
||||||
|
elseif awdef.type == "Challenge" then
|
||||||
|
chat_announce = S("Challenge Completed: @1")
|
||||||
else
|
else
|
||||||
chat_announce = S("Achievement gotten: @1")
|
chat_announce = S("Advancement Made: @1")
|
||||||
end
|
end
|
||||||
-- use the chat console to send it
|
-- use the chat console to send it
|
||||||
minetest.chat_send_player(name, string.format(chat_announce, title))
|
minetest.chat_send_player(name, string.format(chat_announce, title))
|
||||||
|
@ -306,9 +314,13 @@ function awards.unlock(name, award)
|
||||||
})
|
})
|
||||||
local hud_announce
|
local hud_announce
|
||||||
if awdef.secret == true then
|
if awdef.secret == true then
|
||||||
hud_announce = S("Secret achievement gotten!")
|
hud_announce = S("Secret Advancement Made!")
|
||||||
|
elseif awdef.type == "Goal" then
|
||||||
|
hud_announce = S("Goal Completed!")
|
||||||
|
elseif awdef.type == "Challenge" then
|
||||||
|
hud_announce = S("Challenge Completed!")
|
||||||
else
|
else
|
||||||
hud_announce = S("Achievement gotten!")
|
hud_announce = S("Advancement Made!")
|
||||||
end
|
end
|
||||||
local two = player:hud_add({
|
local two = player:hud_add({
|
||||||
hud_elem_type = "text",
|
hud_elem_type = "text",
|
||||||
|
@ -389,10 +401,10 @@ function awards.getFormspec(name, to, sid)
|
||||||
local def = awards.def[item.name]
|
local def = awards.def[item.name]
|
||||||
|
|
||||||
if def and def.secret and not item.got then
|
if def and def.secret and not item.got then
|
||||||
formspec = formspec .. "label[1,2.75;"..minetest.formspec_escape(S("(Secret achievement)")).."]"..
|
formspec = formspec .. "label[1,2.75;"..minetest.formspec_escape(S("(Secret Advancement)")).."]"..
|
||||||
"image[1,0;3,3;awards_unknown.png]"
|
"image[1,0;3,3;awards_unknown.png]"
|
||||||
if def and def.description then
|
if def and def.description then
|
||||||
formspec = formspec .. "textarea[0.25,3.25;4.8,1.7;;"..minetest.formspec_escape(S("Get this achievement to find out what it is."))..";]"
|
formspec = formspec .. "textarea[0.25,3.25;4.8,1.7;;"..minetest.formspec_escape(S("Make this advancement to find out what it is."))..";]"
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local title = item.name
|
local title = item.name
|
||||||
|
@ -450,7 +462,7 @@ function awards.getFormspec(name, to, sid)
|
||||||
first = false
|
first = false
|
||||||
|
|
||||||
if def.secret and not award.got then
|
if def.secret and not award.got then
|
||||||
formspec = formspec .. "#707070" .. minetest.formspec_escape(S("(Secret Award)"))
|
formspec = formspec .. "#707070" .. minetest.formspec_escape(S("(Secret Advancement)"))
|
||||||
else
|
else
|
||||||
local title = award.name
|
local title = award.name
|
||||||
if def and def.title then
|
if def and def.title then
|
||||||
|
|
|
@ -18,7 +18,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
minetest.register_chatcommand("awards", {
|
minetest.register_chatcommand("awards", {
|
||||||
params = S("[c|clear|disable|enable]"),
|
params = S("[c|clear|disable|enable]"),
|
||||||
description = S("Show, clear, disable or enable your achievements"),
|
description = S("Show, clear, disable or enable your advancements."),
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
if param == "clear" then
|
if param == "clear" then
|
||||||
if awards.player(name).disabled ~= nil then
|
if awards.player(name).disabled ~= nil then
|
||||||
|
@ -30,10 +30,10 @@ minetest.register_chatcommand("awards", {
|
||||||
end
|
end
|
||||||
elseif param == "disable" then
|
elseif param == "disable" then
|
||||||
awards.disable(name)
|
awards.disable(name)
|
||||||
minetest.chat_send_player(name, S("You have disabled your achievements."))
|
minetest.chat_send_player(name, S("You have disabled your advancements."))
|
||||||
elseif param == "enable" then
|
elseif param == "enable" then
|
||||||
awards.enable(name)
|
awards.enable(name)
|
||||||
minetest.chat_send_player(name, S("You have enabled your achievements."))
|
minetest.chat_send_player(name, S("You have enabled your advancements."))
|
||||||
elseif param == "c" then
|
elseif param == "c" then
|
||||||
if awards.player(name).disabled ~= nil then
|
if awards.player(name).disabled ~= nil then
|
||||||
minetest.chat_send_player(name, S("Awards are disabled, enable them first by using /awards enable!"))
|
minetest.chat_send_player(name, S("Awards are disabled, enable them first by using /awards enable!"))
|
||||||
|
@ -50,16 +50,16 @@ minetest.register_chatcommand("awards", {
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_privilege("achievements", {
|
minetest.register_privilege("advancements", {
|
||||||
description = S("Can give achievements to any player"),
|
description = S("Can give advancements to any player"),
|
||||||
give_to_singleplayer = false,
|
give_to_singleplayer = false,
|
||||||
give_to_admin = false,
|
give_to_admin = false,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_chatcommand("achievement", {
|
minetest.register_chatcommand("advancement", {
|
||||||
params = S("(grant <player> (<achievement> | all)) | list"),
|
params = S("(grant <player> (<advancement> | all)) | list"),
|
||||||
privs = { achievements = true },
|
privs = { advancements = true },
|
||||||
description = S("Give achievement to player or list all achievements"),
|
description = S("Give advancement to player or list all advancements"),
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
if param == "list" then
|
if param == "list" then
|
||||||
local list = {}
|
local list = {}
|
||||||
|
@ -92,7 +92,7 @@ minetest.register_chatcommand("achievement", {
|
||||||
awards.unlock(playername, achievement)
|
awards.unlock(playername, achievement)
|
||||||
return true, S("Done.")
|
return true, S("Done.")
|
||||||
else
|
else
|
||||||
return false, S("Achievement “@1” does not exist.", achievement)
|
return false, S("Advancement “@1” does not exist.", achievement)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
|
@ -11,9 +11,9 @@
|
||||||
(Secret Award)=
|
(Secret Award)=
|
||||||
<achievement ID>=
|
<achievement ID>=
|
||||||
<name>=
|
<name>=
|
||||||
Achievement gotten!=
|
Advancement Made!=
|
||||||
Achievement gotten:=
|
Advancement Made:=
|
||||||
Achievement gotten: @1=
|
Advancement: @1=
|
||||||
Achievement not found.=
|
Achievement not found.=
|
||||||
All your awards and statistics have been cleared. You can now start again.=
|
All your awards and statistics have been cleared. You can now start again.=
|
||||||
Awards=
|
Awards=
|
||||||
|
@ -27,16 +27,16 @@ Join the game.=
|
||||||
List awards in chat (deprecated)=
|
List awards in chat (deprecated)=
|
||||||
Place a block: @1=
|
Place a block: @1=
|
||||||
Place blocks: @1×@2=
|
Place blocks: @1×@2=
|
||||||
Secret achievement gotten!=
|
Secret Advancement Made!=
|
||||||
Secret achievement gotten:=
|
Secret Advancement Made:=
|
||||||
Secret achievement gotten: @1=
|
Secret Advancement Made: @1=
|
||||||
Show details of an achievement=
|
Show details of an achievement=
|
||||||
Show, clear, disable or enable your achievements=
|
Show, clear, disable or enable your advancements.=
|
||||||
Get this achievement to find out what it is.=
|
Make this advancement to find out what it is.=
|
||||||
Write @1 chat messages.=
|
Write @1 chat messages.=
|
||||||
Write something in chat.=
|
Write something in chat.=
|
||||||
You have disabled your achievements.=
|
You have disabled your advancements.=
|
||||||
You have enabled your achievements.=
|
You have enabled your advancements.=
|
||||||
You have not gotten any awards.=
|
You have not gotten any awards.=
|
||||||
You've disabled awards. Type /awards enable to reenable.=
|
You've disabled awards. Type /awards enable to reenable.=
|
||||||
[c|clear|disable|enable]=
|
[c|clear|disable|enable]=
|
||||||
|
@ -49,16 +49,22 @@ Place @1 block(s).=
|
||||||
Dig @1 block(s).=
|
Dig @1 block(s).=
|
||||||
Eat @1 item(s).=
|
Eat @1 item(s).=
|
||||||
Craft @1 item(s).=
|
Craft @1 item(s).=
|
||||||
Can give achievements to any player=
|
Can give advancements to any player=
|
||||||
(grant <player> (<achievement> | all)) | list=
|
(grant <player> (<advancement> | all)) | list=
|
||||||
Give achievement to player or list all achievements=
|
Give advancement to player or list all advancements=
|
||||||
@1 (@2)=
|
@1 (@2)=
|
||||||
Invalid syntax.=
|
Invalid syntax.=
|
||||||
Invalid action.=
|
Invalid action.=
|
||||||
Player is not online.=
|
Player is not online.=
|
||||||
Done.=
|
Done.=
|
||||||
Achievement “@1” does not exist.=
|
Advancement “@1” does not exist.=
|
||||||
@1 has made the achievement @2=
|
@1 has made the advancement @2=
|
||||||
Mine a block: @1=
|
Mine a block: @1=
|
||||||
Mine blocks: @1×@2=
|
Mine blocks: @1×@2=
|
||||||
Awards are disabled, enable them first by using /awards enable!=
|
Awards are disabled, enable them first by using /awards enable!=
|
||||||
|
Goal Completed:=
|
||||||
|
Goal Completed!=
|
||||||
|
Goal Completed: @1=
|
||||||
|
Challenge Completed:=
|
||||||
|
Challenge Completed!=
|
||||||
|
Challenge Completed: @1=
|
||||||
|
|
|
@ -15,7 +15,9 @@ awards.register_achievement("mcl_buildWorkBench", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_crafting_table:crafting_table",
|
item = "mcl_crafting_table:crafting_table",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:buildPickaxe", {
|
awards.register_achievement("mcl:buildPickaxe", {
|
||||||
title = S("Time to Mine!"),
|
title = S("Time to Mine!"),
|
||||||
|
@ -25,7 +27,9 @@ awards.register_achievement("mcl:buildPickaxe", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_tools:pick_wood",
|
item = "mcl_tools:pick_wood",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:buildFurnace", {
|
awards.register_achievement("mcl:buildFurnace", {
|
||||||
title = S("Hot Topic"),
|
title = S("Hot Topic"),
|
||||||
|
@ -35,7 +39,9 @@ awards.register_achievement("mcl:buildFurnace", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_furnaces:furnace",
|
item = "mcl_furnaces:furnace",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:buildHoe", {
|
awards.register_achievement("mcl:buildHoe", {
|
||||||
title = S("Time to Farm!"),
|
title = S("Time to Farm!"),
|
||||||
|
@ -45,7 +51,9 @@ awards.register_achievement("mcl:buildHoe", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_farming:hoe_wood",
|
item = "mcl_farming:hoe_wood",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Husbandry",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:makeBread", {
|
awards.register_achievement("mcl:makeBread", {
|
||||||
title = S("Bake Bread"),
|
title = S("Bake Bread"),
|
||||||
|
@ -55,7 +63,9 @@ awards.register_achievement("mcl:makeBread", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_farming:bread",
|
item = "mcl_farming:bread",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Husbandry",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:bakeCake", {
|
awards.register_achievement("mcl:bakeCake", {
|
||||||
|
@ -66,7 +76,9 @@ awards.register_achievement("mcl:bakeCake", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_cake:cake",
|
item = "mcl_cake:cake",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Husbandry",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:buildBetterPickaxe", {
|
awards.register_achievement("mcl:buildBetterPickaxe", {
|
||||||
title = S("Getting an Upgrade"),
|
title = S("Getting an Upgrade"),
|
||||||
|
@ -77,7 +89,9 @@ awards.register_achievement("mcl:buildBetterPickaxe", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_tools:pick_stone",
|
item = "mcl_tools:pick_stone",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:buildSword", {
|
awards.register_achievement("mcl:buildSword", {
|
||||||
title = S("Time to Strike!"),
|
title = S("Time to Strike!"),
|
||||||
|
@ -87,7 +101,9 @@ awards.register_achievement("mcl:buildSword", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_tools:sword_wood",
|
item = "mcl_tools:sword_wood",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Adventure",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:bookcase", {
|
awards.register_achievement("mcl:bookcase", {
|
||||||
|
@ -98,7 +114,9 @@ awards.register_achievement("mcl:bookcase", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_books:bookshelf",
|
item = "mcl_books:bookshelf",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:buildIronPickaxe", {
|
awards.register_achievement("mcl:buildIronPickaxe", {
|
||||||
|
@ -109,7 +127,9 @@ awards.register_achievement("mcl:buildIronPickaxe", {
|
||||||
type = "craft",
|
type = "craft",
|
||||||
item = "mcl_tools:pick_iron",
|
item = "mcl_tools:pick_iron",
|
||||||
target = 1
|
target = 1
|
||||||
}
|
},
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Item pickup achievements: These are awarded when picking up a certain item.
|
-- Item pickup achievements: These are awarded when picking up a certain item.
|
||||||
|
@ -118,46 +138,61 @@ awards.register_achievement("mcl:diamonds", {
|
||||||
title = S("DIAMONDS!"),
|
title = S("DIAMONDS!"),
|
||||||
description = S("Pick up a diamond from the floor."),
|
description = S("Pick up a diamond from the floor."),
|
||||||
icon = "mcl_core_diamond_ore.png",
|
icon = "mcl_core_diamond_ore.png",
|
||||||
|
type = "Advancement",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:blazeRod", {
|
awards.register_achievement("mcl:blazeRod", {
|
||||||
title = S("Into Fire"),
|
title = S("Into Fire"),
|
||||||
description = S("Pick up a blaze rod from the floor."),
|
description = S("Pick up a blaze rod from the floor."),
|
||||||
icon = "mcl_mobitems_blaze_rod.png",
|
icon = "mcl_mobitems_blaze_rod.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:killCow", {
|
awards.register_achievement("mcl:killCow", {
|
||||||
title = S("Cow Tipper"),
|
title = S("Cow Tipper"),
|
||||||
description = S("Pick up leather from the floor.\nHint: Cows and some other animals have a chance to drop leather, when killed."),
|
description = S("Pick up leather from the floor.\nHint: Cows and some other animals have a chance to drop leather, when killed."),
|
||||||
icon = "mcl_mobitems_leather.png",
|
icon = "mcl_mobitems_leather.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Adventure",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:mineWood", {
|
awards.register_achievement("mcl:mineWood", {
|
||||||
title = S("Getting Wood"),
|
title = S("Getting Wood"),
|
||||||
description = S("Pick up a wood item from the ground.\nHint: Punch a tree trunk until it pops out as an item."),
|
description = S("Pick up a wood item from the ground.\nHint: Punch a tree trunk until it pops out as an item."),
|
||||||
icon = "default_tree.png",
|
icon = "default_tree.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:whosCuttingOnions", {
|
awards.register_achievement("mcl:whosCuttingOnions", {
|
||||||
title = S("Who is Cutting Onions?"),
|
title = S("Who is Cutting Onions?"),
|
||||||
description = S("Pick up a crying obsidian from the floor."),
|
description = S("Pick up a crying obsidian from the floor."),
|
||||||
icon = "default_obsidian.png^mcl_core_crying_obsidian.png",
|
icon = "default_obsidian.png^mcl_core_crying_obsidian.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:hiddenInTheDepths", {
|
awards.register_achievement("mcl:hiddenInTheDepths", {
|
||||||
title = S("Hidden in the Depths"),
|
title = S("Hidden in the Depths"),
|
||||||
description = S("Pick up an Ancient Debris from the floor."),
|
description = S("Pick up an Ancient Debris from the floor."),
|
||||||
icon = "mcl_nether_ancient_debris_side.png",
|
icon = "mcl_nether_ancient_debris_side.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:PickUpDragonEgg", {
|
awards.register_achievement("mcl:PickUpDragonEgg", {
|
||||||
title = S("The Next Generation"),
|
title = S("The Next Generation"),
|
||||||
description = S("Hold the Dragon Egg.\nHint: Pick up the egg from the ground and have it in your inventory."),
|
description = S("Hold the Dragon Egg.\nHint: Pick up the egg from the ground and have it in your inventory."),
|
||||||
icon = "mcl_end_dragon_egg.png",
|
icon = "mcl_end_dragon_egg.png",
|
||||||
|
type = "Goal",
|
||||||
|
group = "End",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:skysTheLimit", {
|
awards.register_achievement("mcl:skysTheLimit", {
|
||||||
title = S("Sky's the Limit"),
|
title = S("Sky's the Limit"),
|
||||||
description = S("Find the elytra and prepare to fly above and beyond!"),
|
description = S("Find the elytra and prepare to fly above and beyond!"),
|
||||||
icon = "mcl_armor_inv_elytra.png",
|
icon = "mcl_armor_inv_elytra.png",
|
||||||
|
type = "Goal",
|
||||||
|
group = "End",
|
||||||
}) -- TODO: Make also unlock when moved to inventory, not just picking up from ground
|
}) -- TODO: Make also unlock when moved to inventory, not just picking up from ground
|
||||||
|
|
||||||
-- Smelting achivements: These are awarded when picking up an item from a furnace
|
-- Smelting achivements: These are awarded when picking up an item from a furnace
|
||||||
|
@ -166,11 +201,15 @@ awards.register_achievement("mcl:acquireIron", {
|
||||||
title = S("Aquire Hardware"),
|
title = S("Aquire Hardware"),
|
||||||
description = S("Take an iron ingot from a furnace's output slot.\nHint: To smelt an iron ingot, put a fuel (like coal) and iron ore into a furnace."),
|
description = S("Take an iron ingot from a furnace's output slot.\nHint: To smelt an iron ingot, put a fuel (like coal) and iron ore into a furnace."),
|
||||||
icon = "default_steel_ingot.png",
|
icon = "default_steel_ingot.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:cookFish", {
|
awards.register_achievement("mcl:cookFish", {
|
||||||
title = S("Delicious Fish"),
|
title = S("Delicious Fish"),
|
||||||
description = S("Take a cooked fish from a furnace.\nHint: Use a fishing rod to catch a fish and cook it in a furnace."),
|
description = S("Take a cooked fish from a furnace.\nHint: Use a fishing rod to catch a fish and cook it in a furnace."),
|
||||||
icon = "mcl_fishing_fish_cooked.png",
|
icon = "mcl_fishing_fish_cooked.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Husbandry",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Other achievements triggered outside of mcl_achievements
|
-- Other achievements triggered outside of mcl_achievements
|
||||||
|
@ -180,6 +219,8 @@ awards.register_achievement("mcl:onARail", {
|
||||||
title = S("On A Rail"),
|
title = S("On A Rail"),
|
||||||
description = S("Travel by minecart for at least 1000 meters from your starting point in a single ride."),
|
description = S("Travel by minecart for at least 1000 meters from your starting point in a single ride."),
|
||||||
icon = "default_rail.png",
|
icon = "default_rail.png",
|
||||||
|
type = "Challenge",
|
||||||
|
group = "Adventure",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_bows
|
-- Triggered in mcl_bows
|
||||||
|
@ -189,6 +230,8 @@ awards.register_achievement("mcl:snipeSkeleton", {
|
||||||
-- TODO: The range should be 50, not 20. Nerfed because of reduced bow range
|
-- TODO: The range should be 50, not 20. Nerfed because of reduced bow range
|
||||||
description = S("Hit a skeleton, wither skeleton or stray by bow and arrow from a distance of at least 20 meters."),
|
description = S("Hit a skeleton, wither skeleton or stray by bow and arrow from a distance of at least 20 meters."),
|
||||||
icon = "mcl_bows_bow.png",
|
icon = "mcl_bows_bow.png",
|
||||||
|
type = "Challenge",
|
||||||
|
group = "Adventure",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_portals
|
-- Triggered in mcl_portals
|
||||||
|
@ -196,18 +239,24 @@ awards.register_achievement("mcl:buildNetherPortal", {
|
||||||
title = S("We Need to Go Deeper"),
|
title = S("We Need to Go Deeper"),
|
||||||
description = S("Use obsidian and a fire starter to construct a Nether portal."),
|
description = S("Use obsidian and a fire starter to construct a Nether portal."),
|
||||||
icon = "mcl_fire_flint_and_steel.png",
|
icon = "mcl_fire_flint_and_steel.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:enterEndPortal", {
|
awards.register_achievement("mcl:enterEndPortal", {
|
||||||
title = S("The End?"),
|
title = S("The End?"),
|
||||||
description = S("Or the beginning?\nHint: Enter an end portal."),
|
description = S("Or the beginning?\nHint: Enter an end portal."),
|
||||||
icon = "mcl_end_end_stone.png",
|
icon = "mcl_end_end_stone.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:theNether", {
|
awards.register_achievement("mcl:theNether", {
|
||||||
title = S("The Nether"),
|
title = S("The Nether"),
|
||||||
description = S("Bring summer clothes.\nHint: Enter the Nether."),
|
description = S("Bring summer clothes.\nHint: Enter the Nether."),
|
||||||
icon = "mcl_nether_netherrack.png",
|
icon = "mcl_nether_netherrack.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_totems
|
-- Triggered in mcl_totems
|
||||||
|
@ -215,6 +264,8 @@ awards.register_achievement("mcl:postMortal", {
|
||||||
title = S("Postmortal"),
|
title = S("Postmortal"),
|
||||||
description = S("Use a Totem of Undying to cheat death."),
|
description = S("Use a Totem of Undying to cheat death."),
|
||||||
icon = "mcl_totems_totem.png",
|
icon = "mcl_totems_totem.png",
|
||||||
|
type = "Goal",
|
||||||
|
group = "Adventure",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_beds
|
-- Triggered in mcl_beds
|
||||||
|
@ -222,12 +273,16 @@ awards.register_achievement("mcl:sweetDreams", {
|
||||||
title = S("Sweet Dreams"),
|
title = S("Sweet Dreams"),
|
||||||
description = S("Sleep in a bed to change your respawn point."),
|
description = S("Sleep in a bed to change your respawn point."),
|
||||||
icon = "mcl_beds_bed_red_inv.png",
|
icon = "mcl_beds_bed_red_inv.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Adventure",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:notQuiteNineLives", {
|
awards.register_achievement("mcl:notQuiteNineLives", {
|
||||||
title = S('Not Quite "Nine" Lives'),
|
title = S('Not Quite "Nine" Lives'),
|
||||||
description = S("Charge a Respawn Anchor to the maximum."),
|
description = S("Charge a Respawn Anchor to the maximum."),
|
||||||
icon = "respawn_anchor_side4.png",
|
icon = "respawn_anchor_side4.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mobs_mc
|
-- Triggered in mobs_mc
|
||||||
|
@ -235,24 +290,32 @@ awards.register_achievement("mcl:whatAdeal", {
|
||||||
title = S("What A Deal!"),
|
title = S("What A Deal!"),
|
||||||
description = S("Successfully trade with a Villager."),
|
description = S("Successfully trade with a Villager."),
|
||||||
icon = "mcl_core_emerald.png",
|
icon = "mcl_core_emerald.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Adventure",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:tacticalFishing", {
|
awards.register_achievement("mcl:tacticalFishing", {
|
||||||
title = S("Tactical Fishing"),
|
title = S("Tactical Fishing"),
|
||||||
description = S("Catch a fish... without a fishing rod!"),
|
description = S("Catch a fish... without a fishing rod!"),
|
||||||
icon = "pufferfish_bucket.png",
|
icon = "pufferfish_bucket.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Husbandry",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:witheringHeights", {
|
awards.register_achievement("mcl:witheringHeights", {
|
||||||
title = S("Withering Heights"),
|
title = S("Withering Heights"),
|
||||||
description = S("Summon the wither from the dead."),
|
description = S("Summon the wither from the dead."),
|
||||||
icon = "mcl_mobitems_nether_star.png",
|
icon = "mcl_mobitems_nether_star.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:freeTheEnd", {
|
awards.register_achievement("mcl:freeTheEnd", {
|
||||||
title = S("Free the End"),
|
title = S("Free the End"),
|
||||||
description = S("Kill the ender dragon. Good Luck!"),
|
description = S("Kill the ender dragon. Good Luck!"),
|
||||||
icon = "(spawn_egg.png^[multiply:#252525)^(spawn_egg_overlay.png^[multiply:#b313c9)", -- TODO: Dragon Head Icon
|
icon = "(spawn_egg.png^[multiply:#252525)^(spawn_egg_overlay.png^[multiply:#b313c9)", -- TODO: Dragon Head Icon
|
||||||
|
type = "Advancement",
|
||||||
|
group = "End",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_fishing
|
-- Triggered in mcl_fishing
|
||||||
|
@ -260,6 +323,8 @@ awards.register_achievement("mcl:fishyBusiness", {
|
||||||
title = S("Fishy Business"),
|
title = S("Fishy Business"),
|
||||||
description = S("Catch a fish.\nHint: Catch a fish, salmon, clownfish, or pufferfish."),
|
description = S("Catch a fish.\nHint: Catch a fish, salmon, clownfish, or pufferfish."),
|
||||||
icon = "mcl_fishing_fishing_rod.png",
|
icon = "mcl_fishing_fishing_rod.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Husbandry",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_compass
|
-- Triggered in mcl_compass
|
||||||
|
@ -267,6 +332,8 @@ awards.register_achievement("mcl:countryLode", {
|
||||||
title = S("Country Lode,\nTake Me Home"),
|
title = S("Country Lode,\nTake Me Home"),
|
||||||
description = S("Use a compass on a Lodestone."),
|
description = S("Use a compass on a Lodestone."),
|
||||||
icon = "lodestone_side4.png",
|
icon = "lodestone_side4.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_smithing_table
|
-- Triggered in mcl_smithing_table
|
||||||
|
@ -274,6 +341,8 @@ awards.register_achievement("mcl:seriousDedication", {
|
||||||
title = S("Serious Dedication"),
|
title = S("Serious Dedication"),
|
||||||
description = S("Use a Netherite Ingot to upgrade a hoe, and then completely reevaluate your life choices."),
|
description = S("Use a Netherite Ingot to upgrade a hoe, and then completely reevaluate your life choices."),
|
||||||
icon = "farming_tool_netheritehoe.png",
|
icon = "farming_tool_netheritehoe.png",
|
||||||
|
type = "Challenge",
|
||||||
|
group = "Husbandry",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_brewing
|
-- Triggered in mcl_brewing
|
||||||
|
@ -281,6 +350,8 @@ awards.register_achievement("mcl:localBrewery", {
|
||||||
title = S("Local Brewery"),
|
title = S("Local Brewery"),
|
||||||
description = S("Brew a Potion.\nHint: Take a potion or glass bottle out of the brewing stand."),
|
description = S("Brew a Potion.\nHint: Take a potion or glass bottle out of the brewing stand."),
|
||||||
icon = "mcl_potions_potion_overlay.png^[colorize:#F82423:"..tostring(127).."^mcl_potions_potion_bottle.png",
|
icon = "mcl_potions_potion_overlay.png^[colorize:#F82423:"..tostring(127).."^mcl_potions_potion_bottle.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_enchanting
|
-- Triggered in mcl_enchanting
|
||||||
|
@ -288,6 +359,8 @@ awards.register_achievement("mcl:enchanter", {
|
||||||
title = S("Enchanter"),
|
title = S("Enchanter"),
|
||||||
description = S("Enchant an item using an Enchantment Table."),
|
description = S("Enchant an item using an Enchantment Table."),
|
||||||
icon = "mcl_enchanting_book_enchanted.png",
|
icon = "mcl_enchanting_book_enchanted.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
|
|
||||||
--Triggered in mcl_beacons
|
--Triggered in mcl_beacons
|
||||||
|
@ -295,12 +368,16 @@ awards.register_achievement("mcl:beacon", {
|
||||||
title = S("Bring Home the Beacon"),
|
title = S("Bring Home the Beacon"),
|
||||||
description = S("Use a beacon."),
|
description = S("Use a beacon."),
|
||||||
icon = "beacon_achievement_icon.png",
|
icon = "beacon_achievement_icon.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
awards.register_achievement("mcl:maxed_beacon", {
|
awards.register_achievement("mcl:maxed_beacon", {
|
||||||
title = S("Beaconator"),
|
title = S("Beaconator"),
|
||||||
description = S("Use a fully powered beacon."),
|
description = S("Use a fully powered beacon."),
|
||||||
icon = "beacon_achievement_icon.png",
|
icon = "beacon_achievement_icon.png",
|
||||||
|
type = "Goal",
|
||||||
|
group = "Nether",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Triggered in mcl_end
|
-- Triggered in mcl_end
|
||||||
|
@ -308,6 +385,8 @@ awards.register_achievement("mcl:theEndAgain", {
|
||||||
title = S("The End... Again..."),
|
title = S("The End... Again..."),
|
||||||
description = S("Respawn the Ender Dragon."),
|
description = S("Respawn the Ender Dragon."),
|
||||||
icon = "mcl_end_crystal_item.png",
|
icon = "mcl_end_crystal_item.png",
|
||||||
|
type = "Goal",
|
||||||
|
group = "End",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- NON-PC ACHIEVEMENTS (XBox, Pocket Edition, etc.)
|
-- NON-PC ACHIEVEMENTS (XBox, Pocket Edition, etc.)
|
||||||
|
@ -391,14 +470,20 @@ awards.register_achievement("mcl:stoneAge", {
|
||||||
title = S("Stone Age"),
|
title = S("Stone Age"),
|
||||||
description = S("Mine a stone with new pickaxe."),
|
description = S("Mine a stone with new pickaxe."),
|
||||||
icon = "default_cobble.png",
|
icon = "default_cobble.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:hotStuff", {
|
awards.register_achievement("mcl:hotStuff", {
|
||||||
title = S("Hot Stuff"),
|
title = S("Hot Stuff"),
|
||||||
description = S("Put lava in a bucket."),
|
description = S("Put lava in a bucket."),
|
||||||
icon = "bucket_lava.png",
|
icon = "bucket_lava.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
awards.register_achievement("mcl:obsidian", {
|
awards.register_achievement("mcl:obsidian", {
|
||||||
title = S("Ice Bucket Challenge"),
|
title = S("Ice Bucket Challenge"),
|
||||||
description = S("Obtain an obsidian block."),
|
description = S("Obtain an obsidian block."),
|
||||||
icon = "default_obsidian.png",
|
icon = "default_obsidian.png",
|
||||||
|
type = "Advancement",
|
||||||
|
group = "Overworld",
|
||||||
})
|
})
|
||||||
|
|
|
@ -392,7 +392,7 @@ function mcl_inventory.set_creative_formspec(player, start_i, pagenum, inv_size,
|
||||||
-- Achievements button
|
-- Achievements button
|
||||||
"image_button[9,3;1,1;mcl_achievements_button.png;__mcl_achievements;]" ..
|
"image_button[9,3;1,1;mcl_achievements_button.png;__mcl_achievements;]" ..
|
||||||
--"style_type[image_button;border=;bgimg=;bgimg_pressed=]" ..
|
--"style_type[image_button;border=;bgimg=;bgimg_pressed=]" ..
|
||||||
"tooltip[__mcl_achievements;"..F(S("Achievements")) .. "]" ..
|
"tooltip[__mcl_achievements;"..F(S("Advancements")) .. "]" ..
|
||||||
|
|
||||||
-- Switch stack size button
|
-- Switch stack size button
|
||||||
"image_button[9,4;1,1;default_apple.png;__switch_stack;]" ..
|
"image_button[9,4;1,1;default_apple.png;__switch_stack;]" ..
|
||||||
|
|
|
@ -119,7 +119,7 @@ local function set_inventory(player, armor_change_only)
|
||||||
form = form ..
|
form = form ..
|
||||||
-- Achievements button
|
-- Achievements button
|
||||||
"image_button[7,3;1,1;mcl_achievements_button.png;__mcl_achievements;]" ..
|
"image_button[7,3;1,1;mcl_achievements_button.png;__mcl_achievements;]" ..
|
||||||
"tooltip[__mcl_achievements;" .. F(S("Achievements")) .. "]" ..
|
"tooltip[__mcl_achievements;" .. F(S("Advancements")) .. "]" ..
|
||||||
|
|
||||||
-- For shortcuts
|
-- For shortcuts
|
||||||
"listring[current_player;main]" ..
|
"listring[current_player;main]" ..
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
Recipe book=
|
Recipe book=
|
||||||
Help=
|
Help=
|
||||||
Select player skin=
|
Select player skin=
|
||||||
Achievements=
|
Advancements=
|
||||||
Building Blocks=
|
Building Blocks=
|
||||||
Decoration Blocks=
|
Decoration Blocks=
|
||||||
Redstone=
|
Redstone=
|
||||||
|
|
Loading…
Reference in a new issue