write something there

This commit is contained in:
N-Nachtigal 2025-05-04 16:01:41 +02:00
commit b4b6c08f4f
8546 changed files with 309825 additions and 0 deletions

View file

@ -0,0 +1,36 @@
return function(award)
-- Process all applicable TMS and Caverealms glow gems/minerals
local goals = {}
for _,node in ipairs({
"caverealms:glow_amethyst",
"caverealms:glow_crystal",
"caverealms:glow_ruby",
"caverealms:glow_emerald",
"caverealms:glow_gem",
"too_many_stones:glow_apatite",
"too_many_stones:glow_calcite",
"too_many_stones:glow_esperite",
"too_many_stones:glow_fluorite",
"too_many_stones:glow_selenite",
"too_many_stones:glow_sodalite",
"too_many_stones:glow_willemite",
}) do
table.insert(goals,{
description = "Mine " .. minetest.registered_nodes[node].description,
trigger = {
type = "dig",
target = 1,
node = node,
},
})
end
-- Add triggers to award
return {
title = "At the End of the Tunnel",
description = "Mine every underground glow gem and glow mineral",
difficulty = 215,
icon = "[inventorycube{tms_glow_willemite.png{tms_glow_willemite.png{tms_glow_willemite.png",
goals = goals,
}
end

View file

@ -0,0 +1,25 @@
return function(award)
local goals = { target = 1 }
for node,def in pairs(minetest.registered_nodes) do
if node:find("^marinara:sand_with_seashells") then
table.insert(goals,{
id = node:gsub(":","_"),
description = "Dig " .. def.description,
trigger = {
type = "dig",
target = 1,
node = node,
},
})
end
end
return {
title = "By the Seashore",
description = "Dig up any seashells",
difficulty = 10,
icon = "[inventorycube{default_sand.png&marinara_seashells.png{default_sand.png&marinara_seashells.png{default_sand.png&marinara_seashells.png",
goals = goals,
}
end

View file

@ -0,0 +1,36 @@
return function(award)
-- Register goals for each base biome
local goals = {}
local biomes = {}
local excluded_biomes = {
mountain = true,
underground = true,
quicksand = true,
}
for _,biome in ipairs(asuna.biome_groups.base) do
if not excluded_biomes[biome] then
biomes[biome] = true
table.insert(goals,{
id = biome,
description = "Explore " .. asuna.biomes[biome].name,
})
end
end
-- Register interval callback to check player biome
asuna_awards.register_on_interval(award,function(player)
local biome = minetest.get_biome_name(minetest.get_biome_data(player:get_pos()).biome)
if biomes[biome] then
return award, biome
end
end)
-- Return award definition
return {
title = "Cosmopolitan",
description = "Explore all Asuna surface biomes",
difficulty = 400,
icon = "server_favorite.png",
goals = goals,
}
end

View file

@ -0,0 +1,15 @@
return function(award)
minetest.register_on_player_hpchange(function(player, hp_change, reason)
if reason.type == "node_damage" then
awards.unlock(player:get_player_name(),award)
end
end)
return {
title = "Don't Touch That",
description = "Take damage from a harmful node",
difficulty = 15,
icon = "fire_basic_flame.png",
condition = core.settings:get_bool("enable_damage"),
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Ea-nāṣir's Legacy",
description = "Mine copper ore",
difficulty = 20,
icon = "[inventorycube{default_stone.png&default_mineral_copper.png{default_stone.png&default_mineral_copper.png{default_stone.png&default_mineral_copper.png",
trigger = {
type = "dig",
node = "default:stone_with_copper",
target = 1,
},
}
end

View file

@ -0,0 +1,35 @@
-- Get beds skip night setting
local is_night_skip_enabled = minetest.settings:get_bool("enable_bed_night_skip",true)
return function(award)
-- Unlock for actual sleeping if night skip is enabled, else unlock for laying down
if is_night_skip_enabled then
local ogbsn = beds.skip_night
beds.skip_night = function()
for _,player in ipairs(minetest.get_connected_players()) do
local player_name = player and player:get_player_name() or nil
if player_name and beds.player[player_name] then
awards.unlock(player_name,award)
end
end
ogbsn()
end
else
local ogborc = beds.on_rightclick
beds.on_rightclick = function(pos, player)
local retval = ogborc(pos, player)
local player_name = player and player:get_player_name() or nil
if beds.player[player_name] then
awards.unlock(player_name,award)
end
return retval
end
end
return {
title = "Enter Sandman",
description = "Sleep in a bed",
difficulty = 240,
icon = "beds_bed_fancy.png",
}
end

View file

@ -0,0 +1,22 @@
return function(award)
minetest.override_item("default:mese_block",{
dropped_step = function(self,pos)
-- Check if player explicitly dropped it
local dropper = self.dropped_by
if dropper and minetest.get_player_by_name(dropper) then
local groups = minetest.registered_nodes[minetest.get_node(pos).name].groups
if groups and groups.lava and groups.lava > 0 then
awards.unlock(dropper,award)
end
end
return true
end,
})
return {
title = "Fellowship of the Mese",
description = "Drop a mese block into lava",
difficulty = 280,
icon = "[inventorycube{default_mese_block.png{default_mese_block.png{default_mese_block.png^fire_basic_flame.png",
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Fool's Gold",
description = "Mine pyrite ore",
difficulty = 25,
icon = "[inventorycube{default_stone.png&everness_mineral_pyrite.png{default_stone.png&everness_mineral_pyrite.png{default_stone.png&everness_mineral_pyrite.png",
trigger = {
type = "dig",
node = "everness:pyrite_ore",
target = 1,
},
}
end

View file

@ -0,0 +1,22 @@
return function(award)
local mese_fruit_on_dig = minetest.registered_nodes["everness:mese_tree_fruit"].on_dig
minetest.override_item("everness:mese_tree_fruit",{
on_dig = function(pos,node,digger)
if node.param2 == 0
and minetest.get_node({ x = pos.x, y = pos.y + 1, z = pos.z }).name == "everness:mese_leaves"
and digger
and digger:is_player()
then
awards.unlock(digger:get_player_name(),award)
end
return mese_fruit_on_dig(pos,node,digger)
end,
})
return {
title = "Fruit of the Heavens",
description = "Pluck a mese fruit from a mese tree",
difficulty = 140,
icon = "everness_mese_tree_fruit_item.png",
}
end

View file

@ -0,0 +1,28 @@
return function(award)
local goals = {
target = 20,
show_locked = false,
}
for item,def in pairs(minetest.registered_items) do
if def.on_use then
table.insert(goals,{
id = item:gsub(":","_"),
description = "Eat " .. def.description,
trigger = {
type = "eat",
target = 1,
item = item,
},
})
end
end
return {
title = "Gourmand",
description = "Eat 20 different food items",
difficulty = 180,
icon = "farming_bread.png",
goals = goals,
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Have a Heart",
description = "Mine tin ore",
difficulty = 30,
icon = "[inventorycube{default_stone.png&default_mineral_tin.png{default_stone.png&default_mineral_tin.png{default_stone.png&default_mineral_tin.png",
trigger = {
type = "dig",
node = "default:stone_with_tin",
target = 1,
},
}
end

View file

@ -0,0 +1,20 @@
return function(award)
local forc = minetest.registered_items["flowerpot:empty"].on_rightclick
minetest.override_item("flowerpot:empty",{
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local retval = forc(pos, node, clicker, itemstack, pointed_thing)
local node = minetest.get_node(pos).name
if node ~= "flowerpot:empty" and node:find("^flowerpot:") then
awards.unlock(clicker:get_player_name(),award)
end
return retval
end,
})
return {
title = "Home Gardening",
description = "Pot a flower in a flowerpot",
difficulty = 30,
icon = "pia.png",
}
end

View file

@ -0,0 +1,23 @@
return function(award)
for entity,def in pairs(minetest.registered_entities) do
if def._creatura_mob or def._cmi_is_mob then
local ogop = def.on_punch
def.on_punch = function(self,puncher,...)
if puncher and puncher:is_player() then
local player = puncher:get_player_name()
if not awards.player(player).unlocked[award] and puncher:get_wielded_item():get_name() == "" then
awards.unlock(player,award)
end
end
return ogop(self,puncher,...)
end
end
end
return {
title = "HOW CAN SHE SLAP???",
description = "Punch a critter with your bare hand",
difficulty = 45,
icon = "heart.png",
}
end

View file

@ -0,0 +1,17 @@
return function(award)
local oghou = farming.hoe_on_use
farming.hoe_on_use = function(itemstack, user, pointed_thing, uses)
local retval = oghou(itemstack, user, pointed_thing, uses)
if retval ~= nil then
awards.unlock(user:get_player_name(),award)
end
return retval
end
return {
title = "It's Honest Work",
description = "Till soil for farming using a hoe",
difficulty = 40,
icon = "farming_tool_stonehoe.png",
}
end

View file

@ -0,0 +1,29 @@
return function(award)
local goals = {
target = 25,
show_locked = false,
}
for node,def in pairs(minetest.registered_nodes) do
local groups = def.groups
if groups and groups.sapling and groups.sapling > 0 then
table.insert(goals,{
id = node:gsub(":","_"),
description = "Plant a " .. def.description,
trigger = {
type = "place",
target = 1,
node = node,
},
})
end
end
return {
title = "Johnny Appleseed",
description = "Plant " .. goals.target .. " different types of tree sapling",
difficulty = 130,
icon = "default_sapling.png",
goals = goals,
}
end

View file

@ -0,0 +1,29 @@
return function(award)
local goals = {
target = 50,
show_locked = false,
}
for node,def in pairs(minetest.registered_nodes) do
local groups = def.groups
if groups and groups.flower and groups.flower > 0 then
table.insert(goals,{
id = node:gsub(":","_"),
description = "Pick " .. def.description,
trigger = {
type = "dig",
target = 1,
node = node,
},
})
end
end
return {
title = "Joys of Spring",
description = "Pick " .. goals.target .. " different types of flower",
difficulty = 140,
icon = "flowers_rose.png",
goals = goals,
}
end

View file

@ -0,0 +1,28 @@
return function(award)
local goals = {
target = 1,
show_locked = false,
}
for node,def in pairs(minetest.registered_nodes) do
if def.light_source and def.light_source > 0 then
table.insert(goals,{
id = node:gsub(":","_"),
description = "Place a " .. def.description,
trigger = {
type = "place",
target = 1,
node = node,
},
})
end
end
return {
title = "Let There Be Light",
description = "Place any light",
difficulty = 15,
icon = "default_torch_on_floor.png",
goals = goals,
}
end

View file

@ -0,0 +1,16 @@
return function(award)
minetest.override_item("lootchests_default:stone_chest",{
on_rightclick = function(pos,node,clicker)
if clicker:is_player() then
awards.unlock(clicker:get_player_name(),award)
end
end,
})
return {
title = "Lost But Not Forgotten",
description = "Open an ancient stone chest",
difficulty = 240,
icon = "[inventorycube{lootchests_default_stone_chest_top.png{lootchests_default_stone_chest_front.png{lootchests_default_stone_chest_side.png",
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Lucy in the Sky",
description = "Mine diamond ore",
difficulty = 205,
icon = "[inventorycube{default_stone.png&default_mineral_diamond.png{default_stone.png&default_mineral_diamond.png{default_stone.png&default_mineral_diamond.png",
trigger = {
type = "dig",
node = "default:stone_with_diamond",
target = 1,
},
}
end

View file

@ -0,0 +1,14 @@
return function(award)
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname == "default:book" and fields.save and fields.title and fields.text then
awards.unlock(player:get_player_name(),award)
end
end)
return {
title = "Mightier Than the Sword",
description = "Write a book",
difficulty = 135,
icon = "default_book_written.png",
}
end

View file

@ -0,0 +1,30 @@
return function(award)
-- Process all soup items
local goals = { target = 1 }
for _,item in ipairs({
"farming:tomato_soup",
"ethereal:mushroom_soup",
"soup:chicken_noodle_soup",
"x_farming:beetroot_soup",
"farming:pea_soup",
"farming:onion_soup",
}) do
table.insert(goals,{
description = "Cook " .. minetest.registered_items[item].description,
trigger = {
type = "craft",
target = 1,
item = item,
},
})
end
-- Add triggers to award
return {
title = "Mod Soup",
description = "Cook any soup",
difficulty = 35,
icon = "chicken_noodle_soup.png",
goals = goals,
}
end

View file

@ -0,0 +1,15 @@
return function(award)
local ogtt = telemosaic.teleport
telemosaic.teleport = function(player,src,dst)
ogtt(player,src,dst)
awards.unlock(player:get_player_name(),award)
end
return {
title = "My God, It's Full of Stars",
description = "Teleport using a teleportation beacon",
difficulty = 60,
icon = "[inventorycube{telemosaic_beacon_top.png{telemosaic_beacon_side.png{telemosaic_beacon_side.png",
condition = asuna.content.wayfarer.worldgate,
}
end

View file

@ -0,0 +1,23 @@
return function(award)
for _,bug in ipairs({
"fireflies:firefly",
"butterflies:butterfly_red",
"butterflies:butterfly_white",
"butterflies:butterfly_violet",
}) do
minetest.override_item(bug,{
after_dig_node = function(pos,oldnode,oldmeta,digger)
if digger:is_player() and digger:get_wielded_item():get_name() == "fireflies:bug_net" then
awards.unlock(digger:get_player_name(),award)
end
end,
})
end
return {
title = "Net Worth",
description = "Use a bug net to catch a butterfly or a firefly",
difficulty = 55,
icon = "fireflies_bugnet.png",
}
end

View file

@ -0,0 +1,27 @@
return function(award)
-- Process all applicable TMS opal
local goals = { target = 1 }
for _,node in ipairs({
"too_many_stones:opal",
"too_many_stones:black_opal",
"too_many_stones:fire_opal",
}) do
table.insert(goals,{
description = "Mine " .. minetest.registered_nodes[node].description,
trigger = {
type = "dig",
target = 1,
node = node,
},
})
end
-- Add triggers to award
return {
title = "Opalescent",
description = "Mine any opal",
difficulty = 205,
icon = "[inventorycube{[combine:16x16:0,0=tms_opal_animated.png{[combine:16x16:0,0=tms_opal_animated.png{[combine:16x16:0,0=tms_opal_animated.png",
goals = goals,
}
end

View file

@ -0,0 +1,29 @@
return function(award)
local goals = {
target = 25,
show_locked = false,
}
for node,def in pairs(minetest.registered_nodes) do
local groups = def.groups
if groups and groups.tree and groups.tree > 0 then
table.insert(goals,{
id = node:gsub(":","_"),
description = "Chop " .. def.description,
trigger = {
type = "dig",
target = 1,
node = node,
},
})
end
end
return {
title = "Paul Bunyan",
description = "Chop " .. goals.target .. " different types of timber",
difficulty = 180,
icon = "[inventorycube{default_tree_top.png{default_tree.png{default_tree.png",
goals = goals,
}
end

View file

@ -0,0 +1,14 @@
return function(award)
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname == "music_settings" and fields.play then
awards.unlock(player:get_player_name(),award)
end
end)
return {
title = "Play That Funky Music",
description = "Use the music settings to play a music track",
difficulty = 4,
icon = "music_sfinv_buttons_icon.png",
}
end

View file

@ -0,0 +1,18 @@
return function(award)
local ogfsou = minetest.registered_items["fire:flint_and_steel"].on_use
minetest.override_item("fire:flint_and_steel",{
on_use = function(itemstack,user,pointed_thing)
ogfsou(itemstack,user,pointed_thing)
if pointed_thing.type == "node" and minetest.get_node(pointed_thing.above).name:find("^fire:") then
awards.unlock(user:get_player_name(),award)
end
end
})
return {
title = "Prometheus",
description = "Start a fire using Flint and Steel",
difficulty = 240,
icon = "fire_flint_steel.png",
}
end

View file

@ -0,0 +1,30 @@
return function(award)
local goals = {
target = 25,
show_locked = false,
}
for bottle,def in pairs(bottles.registered_filled_bottles) do
table.insert(goals,{
id = bottle:gsub(":","_"),
description = def.description:split("\n")[1],
})
end
local ogbf = bottles.fill
bottles.fill = function(itemstack,placer,target)
local retval, bottle = ogbf(itemstack,placer,target)
if bottle then
awards.unlock(placer:get_player_name(),award,bottle:gsub(":","_"))
end
return retval
end
return {
title = "Put a Cork in It",
description = "Fill bottles with " .. goals.target .. " different substances",
difficulty = 260,
icon = bottles.registered_filled_bottles["bottles:bottle_of_water"].image,
goals = goals,
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Rare Earth",
description = "Mine mese ore",
difficulty = 200,
icon = "[inventorycube{default_stone.png&default_mineral_mese.png{default_stone.png&default_mineral_mese.png{default_stone.png&default_mineral_mese.png",
trigger = {
type = "dig",
node = "default:stone_with_mese",
target = 1,
},
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Rarest Earth",
description = "Mine a mese block",
difficulty = 250,
icon = "[inventorycube{default_mese_block.png{default_mese_block.png{default_mese_block.png",
trigger = {
type = "dig",
node = "default:mese_block",
target = 1,
},
}
end

View file

@ -0,0 +1,18 @@
return function(award)
-- Register interval callback to look for nearby sequoia trunks
asuna_awards.register_on_interval(award,function(player)
local pos = player:get_pos()
local tree_nodes = minetest.find_nodes_in_area(pos:add(vector.new(-10,0,-10)),pos:add(vector.new(10,2,10)),{"everness:sequoia_tree"},false)
if #tree_nodes > 60 then
return award
end
end)
-- Award definition
return {
title = "Reach for the Sky",
description = "Find a giant sequoia tree",
difficulty = 115,
icon = "everness_sequoia_tree_sapling.png",
}
end

View file

@ -0,0 +1,29 @@
return function(award)
local goals = {
target = 50,
show_locked = false,
}
for node,def in pairs(minetest.registered_nodes) do
local groups = def.groups
if def.is_ground_content and groups and groups.stone and groups.stone > 0 then
table.insert(goals,{
id = node:gsub(":","_"),
description = "Mine " .. def.description,
trigger = {
type = "dig",
target = 1,
node = node,
},
})
end
end
return {
title = "Rock On",
description = "Mine " .. goals.target .. " different types of stone",
difficulty = 180,
icon = "[inventorycube{default_stone.png{default_stone.png{default_stone.png",
goals = goals,
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Sixteen Tons",
description = "Mine coal ore",
difficulty = 20,
icon = "[inventorycube{default_stone.png&default_mineral_coal.png{default_stone.png&default_mineral_coal.png{default_stone.png&default_mineral_coal.png",
trigger = {
type = "dig",
node = "default:stone_with_coal",
target = 1,
},
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Sleepy Hollow",
description = "Craft a pumpkin lantern",
difficulty = 60,
icon = "[inventorycube{x_farming_pumpkin_fruit_top.png{x_farming_pumpkin_fruit_side_on.png{x_farming_pumpkin_fruit_side.png",
trigger = {
type = "craft",
item = "x_farming:pumpkin_lantern",
target = 1,
}
}
end

View file

@ -0,0 +1,26 @@
return function(award)
-- Get set of slippery nodes
local slippery_nodes = {}
for node,def in pairs(minetest.registered_nodes) do
local groups = def.groups
if groups and groups.slippery and groups.slippery > 0 then
slippery_nodes[node] = true
end
end
-- Register interval callback to check node below players
asuna_awards.register_on_interval(award,function(player)
local below = minetest.get_node(player:get_pos():add(vector.new(0,-1,0))).name
if below and slippery_nodes[below] then
return award
end
end)
-- Award definition
return {
title = "Slip Slidin' Away",
description = "Walk on a slippery surface",
difficulty = 30,
icon = "[inventorycube{default_ice.png{default_ice.png{default_ice.png",
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Strike While It's Hot",
description = "Mine iron ore",
difficulty = 40,
icon = "[inventorycube{default_stone.png&default_mineral_iron.png{default_stone.png&default_mineral_iron.png{default_stone.png&default_mineral_iron.png",
trigger = {
type = "dig",
node = "default:stone_with_iron",
target = 1,
},
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Super Mushroom",
description = "Mine a giant red mushroom cap",
difficulty = 35,
icon = "[inventorycube{ethereal_mushroom_block.png{ethereal_mushroom_block.png{ethereal_mushroom_block.png",
trigger = {
type = "dig",
node = "ethereal:mushroom",
target = 1,
},
}
end

View file

@ -0,0 +1,20 @@
return function(award)
-- Register interval callback to check y value
asuna_awards.register_on_interval(award,function(player)
local pos = player:get_pos()
if minetest.get_item_group(minetest.get_node(pos:add(vector.new(0,-0.5,0))).name,"leaves") > 0 then
local tree_nodes = minetest.find_nodes_in_area(pos:add(vector.new(-3,-3,-3)),pos:add(vector.new(3,3,3)),{"group:tree"},false)
if #tree_nodes > 1 and #minetest.find_nodes_in_area(pos:add(vector.new(0,-3,0)),pos,{"group:soil","group:stone"},false) == 0 then
return award
end
end
end)
-- Award definition
return {
title = "Tarzan",
description = "Climb a tree",
difficulty = 20,
icon = "[inventorycube{default_leaves.png{default_leaves.png{default_leaves.png",
}
end

View file

@ -0,0 +1,17 @@
return function(award)
-- Register interval callback to check node at each player's location
asuna_awards.register_on_interval(award,function(player)
local at = minetest.get_node(player:get_pos()).name
if at == "x_farming:rope" then
return award
end
end)
-- Award definition
return {
title = "The Careful Way Down",
description = "Climb on a rope made from vines, hemp, or barley",
difficulty = 40,
icon = "x_farming_rope_item.png",
}
end

View file

@ -0,0 +1,14 @@
return function(award)
minetest.register_on_player_hpchange(function(player, hp_change, reason)
if reason.type == "fall" then
awards.unlock(player:get_player_name(),award)
end
end)
return {
title = "The Easy Way Down",
description = "Take fall damage",
icon = "drop_btn.png",
condition = core.settings:get_bool("enable_damage"),
}
end

View file

@ -0,0 +1,12 @@
return function(award)
return {
title = "The Matrix Reloaded",
description = "Enter the world a second time",
difficulty = 5,
icon = "server_public.png",
trigger = {
type = "join",
target = 2,
}
}
end

View file

@ -0,0 +1,20 @@
return function(award)
local ogbou = minetest.registered_craftitems["bucket:bucket_empty"].on_use
minetest.override_item("bucket:bucket_empty",{
on_use = function(itemstack, player, pointed_thing)
local was_lava = pointed_thing.type == "node" and (minetest.get_node(pointed_thing.under).name == "default:lava_source") or false
local retval = ogbou(itemstack, player, pointed_thing)
if retval and was_lava and minetest.get_node(pointed_thing.under).name ~= "default:lava_source" then
awards.unlock(player:get_player_name(),award)
end
return retval
end,
})
return {
title = "The New Hotness",
description = "Collect a bucket of lava",
difficulty = 45,
icon = "bucket_lava.png",
}
end

View file

@ -0,0 +1,19 @@
return function(award)
local ogacp = awards.clear_player
awards.clear_player = function(name)
local had_cosmopolitan = awards.player(name).unlocked["asuna_awards:cosmopolitan"]
local retval = ogacp(name)
if had_cosmopolitan then
awards.unlock(name,award)
end
return retval
end
return {
title = "The Prestige",
description = "Reset your awards after earning Cosmopolitan",
difficulty = 1000,
icon = "cdb_update.png",
secret = true,
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Timeless",
description = "Mine quartz ore",
difficulty = 25,
icon = "[inventorycube{default_stone.png&everness_quartz_ore.png{default_stone.png&everness_quartz_ore.png{default_stone.png&everness_quartz_ore.png",
trigger = {
type = "dig",
node = "everness:quartz_ore",
target = 1,
},
}
end

View file

@ -0,0 +1,18 @@
return function(award)
-- Register interval callback to check for deep water
asuna_awards.register_on_interval(award,function(player)
local pos = player:get_pos()
local y = pos.y
if y <= -20 and y >= -32 and minetest.get_node(pos).name:find("water") then
return award
end
end)
-- Award definition
return {
title = "Under the Sea",
description = "Dive into deep ocean",
difficulty = 50,
icon = "bubble.png",
}
end

View file

@ -0,0 +1,16 @@
return function(award)
-- Register interval callback to check y value
asuna_awards.register_on_interval(award,function(player)
if player:get_pos().y <= -1000 then
return award
end
end)
-- Award definition
return {
title = "Way Down Hadestown",
description = "Reach a depth of -1000",
difficulty = 110,
icon = "everness_weeping_obsidian.png",
}
end

View file

@ -0,0 +1,13 @@
return function(award)
return {
title = "Worth Its Weight",
description = "Mine gold ore",
difficulty = 90,
icon = "[inventorycube{default_stone.png&default_mineral_gold.png{default_stone.png&default_mineral_gold.png{default_stone.png&default_mineral_gold.png",
trigger = {
type = "dig",
node = "default:stone_with_gold",
target = 1,
},
}
end