Awards: Use custom triggers (#32)

* Awards: Use custom triggers

* Remove extra trigger

* Remove non-existent type

* Replace missed player arg
This commit is contained in:
Alex 2018-12-23 18:06:49 -08:00 committed by FaceDeer
parent bcc2f64c2e
commit cff5385881
4 changed files with 157 additions and 136 deletions

@ -5,118 +5,65 @@ if not minetest.get_modpath("awards") then
digtron.award_crate = function (layout, name) end digtron.award_crate = function (layout, name) end
return return
end end
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
-- internationalization boilerplate -- internationalization boilerplate
local MP = minetest.get_modpath(minetest.get_current_modname()) local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua") local S, NS = dofile(MP.."/intllib.lua")
digtron.award_item_dug = function (items_dropped, name) awards.register_trigger("digtron_dig", {
if table.getn(items_dropped) == 0 or not name or name == "" then type = "counted_key",
progress = "@1/@2 excavated",
auto_description = {"Excavate 1 @2 using a Digtron.", "Excavate @1 @2 using a Digtron."},
auto_description_total = {"Excavate @1 block using a Digtron.", "Excavate @1 blocks using a Digtron."},
get_key = function(self, def)
return minetest.registered_aliases[def.trigger.node] or def.trigger.node
end,
key_is_item = true,
})
digtron.award_item_dug = function(items_dropped, player)
if #items_dropped == 0 or not player then
return return
end end
local data = awards.player(name)
if not data.digtron_dug_groups then
data.digtron_dug_groups = {
tree = 0,
dirt = 0,
grass = 0,
}
end
if not data.digtron_dug then
data.digtron_dug = {}
end
for _, item in pairs(items_dropped) do for _, item in pairs(items_dropped) do
awards.increment_item_counter(data, "digtron_dug", item) awards.notify_digtron_dig(player, item)
if minetest.get_item_group(item, "tree") > 0 then
data["digtron_dug_groups"]["tree"] = data["digtron_dug_groups"]["tree"] + 1
end
if minetest.get_item_group(item, "dirt") > 0 then
data["digtron_dug_groups"]["dirt"] = data["digtron_dug_groups"]["dirt"] + 1
end
if minetest.get_item_group(item, "grass") > 0 then
data["digtron_dug_groups"]["grass"] = data["digtron_dug_groups"]["grass"] + 1
end
end
if awards.get_item_count(data, "digtron_dug", "default:mese_crystal") > 100 then
awards.unlock(name, "digtron_100mese_dug")
end
if awards.get_item_count(data, "digtron_dug", "default:diamond") > 100 then
awards.unlock(name, "digtron_100diamond_dug")
end
if awards.get_item_count(data, "digtron_dug", "default:coal_lump") > 1000 then
awards.unlock(name, "digtron_1000coal_dug")
if awards.get_item_count(data, "digtron_dug", "default:coal_lump") > 10000 then
awards.unlock(name, "digtron_10000coal_dug")
end
end
if awards.get_item_count(data, "digtron_dug", "default:iron_lump") > 1000 then
awards.unlock(name, "digtron_1000iron_dug")
end
if awards.get_item_count(data, "digtron_dug", "default:copper_lump") > 1000 then
awards.unlock(name, "digtron_1000copper_dug")
end
if awards.get_item_count(data, "digtron_dug", "default:gold_lump") > 100 then
awards.unlock(name, "digtron_100gold_dug")
end
local total_count = awards.get_total_keyed_count(data, "digtron_dug")
if total_count > 1000 then
awards.unlock(name, "digtron_1000_dug")
if total_count > 10000 then
awards.unlock(name, "digtron_10000_dug")
if total_count > 100000 then
awards.unlock(name, "digtron_100000_dug")
if total_count > 1000000 then
awards.unlock(name, "digtron_1000000_dug")
end
end
end
end
if data["digtron_dug_groups"]["tree"] > 1000 then
awards.unlock(name, "digtron_1000wood_dug")
if data["digtron_dug_groups"]["tree"] > 10000 then
awards.unlock(name, "digtron_10000wood_dug")
end
end
if data["digtron_dug_groups"]["dirt"] > 1000 then
awards.unlock(name, "digtron_1000dirt_dug")
end
if data["digtron_dug_groups"]["grass"] > 1000 then
awards.unlock(name, "digtron_1000grass_dug")
end end
end end
digtron.award_item_built = function(item_name, name) awards.register_trigger("digtron_build", {
if not name or name == "" then type = "counted_key",
progress = "@1/@2 built",
auto_description = {"Build 1 @2 using a Digtron.", "Build @1 @2 using a Digtron."},
auto_description_total = {"Build @1 block using a Digtron.", "Build @1 blocks using a Digtron."},
get_key = function(self, def)
return minetest.registered_aliases[def.trigger.node] or def.trigger.node
end,
key_is_item = true,
})
digtron.award_item_built = function(item_name, player)
if not player then
return return
end end
local data = awards.player(name) awards.notify_digtron_build(player, item_name)
if not data.digtron_built then
data.digtron_built = {}
end
awards.increment_item_counter(data, "digtron_built", item_name)
local total_count = awards.get_total_keyed_count(data, "digtron_built")
if total_count > 1000 then
awards.unlock(name, "digtron_1000_built")
if total_count > 10000 then
awards.unlock(name, "digtron_10000_built")
end
end
end end
digtron.award_layout = function(layout, name) awards.register_award("digtron_depth1000",{
if layout == nil or not name or name == "" then title = S("Digging Deeper"),
description = S("Operate a Digtron 1,000m underground"),
background = "awards_bg_mining.png",
icon = "default_cobble.png^[colorize:#0002^digtron_digger_yb_frame.png^awards_level2.png",
})
digtron.award_layout = function(layout, player)
if layout == nil or not player then
return return
end end
local name = player:get_player_name()
if layout.water_touching then if layout.water_touching then
awards.unlock(name, "digtron_water") awards.unlock(name, "digtron_water")
end end
@ -178,238 +125,312 @@ digtron.award_crate = function(layout, name)
end end
end end
awards.register_achievement("digtron_water",{ awards.register_award("digtron_water",{
title = S("Deep Blue Digtron"), title = S("Deep Blue Digtron"),
description = S("Encounter water while operating a Digtron."), description = S("Encounter water while operating a Digtron."),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_water.png^digtron_digger_yb_frame.png", icon = "default_water.png^digtron_digger_yb_frame.png",
}) })
awards.register_achievement("digtron_lava",{ awards.register_award("digtron_lava",{
title = S("Digtrons of Fire"), title = S("Digtrons of Fire"),
description = S("Encounter lava while operating a Digtron."), description = S("Encounter lava while operating a Digtron."),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_lava.png^digtron_digger_yb_frame.png", icon = "default_lava.png^digtron_digger_yb_frame.png",
}) })
awards.register_achievement("digtron_size10",{ awards.register_award("digtron_size10",{
title = S("Bigtron"), title = S("Bigtron"),
description = S("Operate a Digtron with 10 or more component blocks."), description = S("Operate a Digtron with 10 or more component blocks."),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^digtron_crate.png", icon = "digtron_plate.png^digtron_crate.png",
}) })
awards.register_achievement("digtron_size100",{ awards.register_award("digtron_size100",{
title = S("Really Bigtron"), title = S("Really Bigtron"),
description = S("Operate a Digtron with 100 or more component blocks."), description = S("Operate a Digtron with 100 or more component blocks."),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^digtron_crate.png", -- TODO: Visually distinguish this from Bigtron icon = "digtron_plate.png^digtron_crate.png", -- TODO: Visually distinguish this from Bigtron
}) })
awards.register_achievement("digtron_builder25",{ awards.register_award("digtron_builder25",{
title = S("Buildtron"), title = S("Buildtron"),
description = S("Operate a Digtron with 25 or more builder modules."), description = S("Operate a Digtron with 25 or more builder modules."),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^digtron_builder.png^digtron_crate.png", icon = "digtron_plate.png^digtron_builder.png^digtron_crate.png",
}) })
awards.register_achievement("digtron_digger25",{ awards.register_award("digtron_digger25",{
title = S("Digging Leviathan"), title = S("Digging Leviathan"),
description = S("Operate a Digtron with 25 or more digger heads."), description = S("Operate a Digtron with 25 or more digger heads."),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^digtron_motor.png^digtron_crate.png", icon = "digtron_plate.png^digtron_motor.png^digtron_crate.png",
}) })
awards.register_achievement("digtron_height1000",{ awards.register_award("digtron_height1000",{
title = S("Digtron In The Sky"), title = S("Digtron In The Sky"),
description = S("Operate a Digtron above 1000m elevation"), description = S("Operate a Digtron above 1000m elevation"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_river_water.png^default_snow_side.png^[transformR180^digtron_digger_yb_frame.png", icon = "default_river_water.png^default_snow_side.png^[transformR180^digtron_digger_yb_frame.png",
}) })
awards.register_achievement("digtron_height100",{ awards.register_award("digtron_height100",{
title = S("Digtron High"), title = S("Digtron High"),
description = S("Operate a Digtron above 100m elevation"), description = S("Operate a Digtron above 100m elevation"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_river_water.png^default_snow_side.png^digtron_digger_yb_frame.png", icon = "default_river_water.png^default_snow_side.png^digtron_digger_yb_frame.png",
}) })
awards.register_achievement("digtron_depth100",{ awards.register_award("digtron_depth100",{
title = S("Scratching the Surface"), title = S("Scratching the Surface"),
description = S("Operate a Digtron 100m underground"), description = S("Operate a Digtron 100m underground"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_cobble.png^digtron_digger_yb_frame.png^awards_level1.png", icon = "default_cobble.png^digtron_digger_yb_frame.png^awards_level1.png",
}) })
awards.register_achievement("digtron_depth1000",{ awards.register_award("digtron_depth1000",{
title = S("Digging Deeper"), title = S("Digging Deeper"),
description = S("Operate a Digtron 1,000m underground"), description = S("Operate a Digtron 1,000m underground"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_cobble.png^[colorize:#0002^digtron_digger_yb_frame.png^awards_level2.png", icon = "default_cobble.png^[colorize:#0002^digtron_digger_yb_frame.png^awards_level2.png",
}) })
awards.register_achievement("digtron_depth2000",{ awards.register_award("digtron_depth2000",{
title = S("More Than a Mile"), title = S("More Than a Mile"),
description = S("Operate a Digtron 2,000m underground"), description = S("Operate a Digtron 2,000m underground"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_cobble.png^[colorize:#0004^digtron_digger_yb_frame.png^awards_level3.png", icon = "default_cobble.png^[colorize:#0004^digtron_digger_yb_frame.png^awards_level3.png",
}) })
awards.register_achievement("digtron_depth4000",{ awards.register_award("digtron_depth4000",{
title = S("Digging Below Plausibility"), title = S("Digging Below Plausibility"),
description = S("The deepest mine in the world is only 3.9 km deep, you operated a Digtron below 4km"), description = S("The deepest mine in the world is only 3.9 km deep, you operated a Digtron below 4km"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_cobble.png^[colorize:#0006^digtron_digger_yb_frame.png^awards_level4.png", icon = "default_cobble.png^[colorize:#0006^digtron_digger_yb_frame.png^awards_level4.png",
}) })
awards.register_achievement("digtron_depth8000",{ awards.register_award("digtron_depth8000",{
title = S("Double Depth"), title = S("Double Depth"),
description = S("Operate a Digtron 8,000m underground"), description = S("Operate a Digtron 8,000m underground"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_cobble.png^[colorize:#0008^digtron_digger_yb_frame.png^awards_level5.png", icon = "default_cobble.png^[colorize:#0008^digtron_digger_yb_frame.png^awards_level5.png",
}) })
awards.register_achievement("digtron_depth16000",{ awards.register_award("digtron_depth16000",{
title = S("Halfway to the Core"), title = S("Halfway to the Core"),
description = S("Operate a Digtron 16,000m underground"), description = S("Operate a Digtron 16,000m underground"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_cobble.png^[colorize:#000A^digtron_digger_yb_frame.png^awards_level6.png", icon = "default_cobble.png^[colorize:#000A^digtron_digger_yb_frame.png^awards_level6.png",
}) })
awards.register_achievement("digtron_depth30000",{ awards.register_award("digtron_depth30000",{
title = S("Nowhere To Go But Up"), title = S("Nowhere To Go But Up"),
description = S("Operate a Digtron 30,000m underground"), description = S("Operate a Digtron 30,000m underground"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_cobble.png^[colorize:#000C^digtron_digger_yb_frame.png^awards_level7.png", icon = "default_cobble.png^[colorize:#000C^digtron_digger_yb_frame.png^awards_level7.png",
}) })
awards.register_achievement("digtron_100mese_dug",{ awards.register_award("digtron_100mese_dug",{
title = S("Mese Master"), title = S("Mese Master"),
description = S("Mine 100 Mese crystals with a Digtron"), description = S("Mine 100 Mese crystals with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_mese_crystal.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_mese_crystal.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "default:mese_crystal",
target = 100,
}
}) })
awards.register_achievement("digtron_100diamond_dug",{ awards.register_award("digtron_100diamond_dug",{
title = S("Diamond Vs. Diamond"), title = S("Diamond Vs. Diamond"),
description = S("Mine 100 diamonds with a Digtron"), description = S("Mine 100 diamonds with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_diamond.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_diamond.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "default:diamond",
target = 100,
}
}) })
awards.register_achievement("digtron_1000dirt_dug",{ awards.register_award("digtron_1000dirt_dug",{
title = S("Strip Mining"), title = S("Strip Mining"),
description = S("Excavate 1000 units of dirt with a Digtron"), description = S("Excavate 1000 units of dirt with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "default_dirt.png^digtron_digger_yb_frame.png", icon = "default_dirt.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "default:dirt",
target = 1000,
}
}) })
awards.register_achievement("digtron_1000_dug",{ awards.register_award("digtron_1000_dug",{
title = S("Digtron Miner"), title = S("Digtron Miner"),
description = S("Excavate 1000 blocks using a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_tool_bronzepick.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_tool_bronzepick.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
target = 1000,
}
}) })
awards.register_achievement("digtron_10000_dug",{ awards.register_award("digtron_10000_dug",{
title = S("Digtron Expert Miner"), title = S("Digtron Expert Miner"),
description = S("Excavate 10,000 blocks using a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_tool_steelpick.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_tool_steelpick.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
target = 10000,
}
}) })
awards.register_achievement("digtron_100000_dug",{ awards.register_award("digtron_100000_dug",{
title = S("Digtron Master Miner"), title = S("Digtron Master Miner"),
description = S("Excavate 100,000 blocks using a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_tool_diamondpick.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_tool_diamondpick.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
target = 100000,
}
}) })
awards.register_achievement("digtron_1000000_dug",{ awards.register_award("digtron_1000000_dug",{
title = S("DIGTRON MEGAMINER"), title = S("DIGTRON MEGAMINER"),
description = S("Excavate over a million blocks using a Digtron!"), description = S("Excavate over a million blocks using a Digtron!"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_tool_mesepick.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_tool_mesepick.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
target = 1000000,
}
}) })
awards.register_achievement("digtron_1000wood_dug",{ awards.register_award("digtron_1000wood_dug",{
title = S("Clear Cutting"), title = S("Clear Cutting"),
description = S("Chop down 1000 units of tree with a Digtron"), description = S("Chop down 1000 units of tree with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_sapling.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_sapling.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "group:tree",
target = 1000,
}
}) })
awards.register_achievement("digtron_10000wood_dug",{ awards.register_award("digtron_10000wood_dug",{
title = S("Digtron Deforestation"), title = S("Digtron Deforestation"),
description = S("Chop down 10,000 units of tree with a Digtron"), description = S("Chop down 10,000 units of tree with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_sapling.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_sapling.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "group:tree",
target = 10000,
}
}) })
awards.register_achievement("digtron_1000grass_dug",{ awards.register_award("digtron_1000grass_dug",{
title = S("Lawnmower"), title = S("Lawnmower"),
description = S("Harvest 1000 units of grass with a Digtron"), description = S("Harvest 1000 units of grass with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_grass_5.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_grass_5.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "group:grass",
target = 1000,
}
}) })
awards.register_achievement("digtron_1000iron_dug",{ awards.register_award("digtron_1000iron_dug",{
title = S("Iron Digtron"), title = S("Iron Digtron"),
description = S("Excavate 1000 units of iron ore with a Digtron"), description = S("Excavate 1000 units of iron ore with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_steel_ingot.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_steel_ingot.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "default:iron_lump",
target = 1000,
}
}) })
awards.register_achievement("digtron_1000copper_dug",{ awards.register_award("digtron_1000copper_dug",{
title = S("Copper Digtron"), title = S("Copper Digtron"),
description = S("Excavate 1000 units of copper ore with a Digtron"), description = S("Excavate 1000 units of copper ore with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_copper_ingot.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_copper_ingot.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "default:copper_lump",
target = 1000,
}
}) })
awards.register_achievement("digtron_1000coal_dug",{ awards.register_award("digtron_1000coal_dug",{
title = S("Coal Digtron"), title = S("Coal Digtron"),
description = S("Excavate 1,000 units if coal with a Digtron"), description = S("Excavate 1,000 units if coal with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_coal_lump.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_coal_lump.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "default:coal_lump",
target = 1000,
}
}) })
awards.register_achievement("digtron_10000coal_dug",{ awards.register_award("digtron_10000coal_dug",{
title = S("Bagger 288"), title = S("Bagger 288"),
description = S("Excavate 10,000 units of coal with a Digtron"), description = S("Excavate 10,000 units of coal with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_coal_block.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_coal_block.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "default:coal_lump",
target = 10000,
}
}) })
awards.register_achievement("digtron_100gold_dug",{ awards.register_award("digtron_100gold_dug",{
title = S("Digtron 49er"), title = S("Digtron 49er"),
description = S("Excavate 100 units of gold with a Digtron"), description = S("Excavate 100 units of gold with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^default_gold_ingot.png^digtron_digger_yb_frame.png", icon = "digtron_plate.png^default_gold_ingot.png^digtron_digger_yb_frame.png",
trigger = {
type = "digtron_dig",
node = "default:gold_lump",
target = 100,
}
}) })
awards.register_achievement("digtron_1000_built",{ awards.register_award("digtron_1000_built",{
title = S("Constructive Digging"), title = S("Constructive Digging"),
description = S("Build 1,000 blocks with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^digtron_builder.png", icon = "digtron_plate.png^digtron_builder.png",
trigger = {
type = "digtron_build",
target = 1000,
}
}) })
awards.register_achievement("digtron_10000_built",{ awards.register_award("digtron_10000_built",{
title = S("Highly Constructive Digging"), title = S("Highly Constructive Digging"),
description = S("Build 10,000 blocks with a Digtron"),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^digtron_axel_side.png^[transformR90^digtron_builder.png", icon = "digtron_plate.png^digtron_axel_side.png^[transformR90^digtron_builder.png",
trigger = {
type = "digtron_build",
target = 10000,
}
}) })
awards.register_achievement("digtron_crate10",{ awards.register_award("digtron_crate10",{
title = S("Digtron Packrat"), title = S("Digtron Packrat"),
description = S("Stored 10 or more Digtron blocks in one crate."), description = S("Stored 10 or more Digtron blocks in one crate."),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",
icon = "digtron_plate.png^digtron_crate.png", -- TODO: Visually distinguish this from Bigtron icon = "digtron_plate.png^digtron_crate.png", -- TODO: Visually distinguish this from Bigtron
}) })
awards.register_achievement("digtron_crate100",{ awards.register_award("digtron_crate100",{
title = S("Digtron Hoarder"), title = S("Digtron Hoarder"),
description = S("Stored 100 or more Digtron blocks in one crate."), description = S("Stored 100 or more Digtron blocks in one crate."),
background = "awards_bg_mining.png", background = "awards_bg_mining.png",

@ -164,7 +164,7 @@ function DigtronLayout.create(pos, player)
testpos, _ = to_test:pop() testpos, _ = to_test:pop()
end end
digtron.award_layout(self, player:get_player_name()) -- hook for achievements mod digtron.award_layout(self, player) -- hook for achievements mod
return self return self
end end

@ -291,7 +291,7 @@ minetest.register_node("digtron:builder", {
minetest.log("action", string.format("%s uses Digtron to build %s at (%d, %d, %d), displacing %s", player:get_player_name(), item_stack:get_name(), buildpos.x, buildpos.y, buildpos.z, oldnode.name)) minetest.log("action", string.format("%s uses Digtron to build %s at (%d, %d, %d), displacing %s", player:get_player_name(), item_stack:get_name(), buildpos.x, buildpos.y, buildpos.z, oldnode.name))
--flag this node as *not* to be dug. --flag this node as *not* to be dug.
nodes_dug:set(buildpos.x, buildpos.y, buildpos.z, false) nodes_dug:set(buildpos.x, buildpos.y, buildpos.z, false)
digtron.award_item_built(item_stack:get_name(), player:get_player_name()) digtron.award_item_built(item_stack:get_name(), player)
built_count = built_count + 1 built_count = built_count + 1
else else
--failed to build, target node probably obstructed. Put the item back in inventory. --failed to build, target node probably obstructed. Put the item back in inventory.

@ -297,7 +297,7 @@ digtron.execute_dig_cycle = function(pos, clicker)
for _, itemname in pairs(items_dropped) do for _, itemname in pairs(items_dropped) do
digtron.place_in_inventory(itemname, layout.inventories, oldpos) digtron.place_in_inventory(itemname, layout.inventories, oldpos)
end end
digtron.award_item_dug(items_dropped, clicker:get_player_name()) -- Achievements mod hook digtron.award_item_dug(items_dropped, clicker) -- Achievements mod hook
local building_fuel_cost = 0 local building_fuel_cost = 0
local strange_failure = false local strange_failure = false
@ -539,7 +539,7 @@ digtron.execute_downward_dig_cycle = function(pos, clicker)
for _, itemname in pairs(items_dropped) do for _, itemname in pairs(items_dropped) do
digtron.place_in_inventory(itemname, layout.inventories, oldpos) digtron.place_in_inventory(itemname, layout.inventories, oldpos)
end end
digtron.award_item_dug(items_dropped, clicker:get_player_name()) -- Achievements mod hook digtron.award_item_dug(items_dropped, clicker) -- Achievements mod hook
local status_text = "" local status_text = ""